Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ursprungligt KB-nummer: 2160852
Sammanfattning
Den här artikeln innehåller grundläggande information om implementeringen av virtuellt minne i 32-bitarsversioner av Windows.
I moderna operativsystem som Windows refererar program och många systemprocesser alltid till minne med hjälp av virtuella minnesadresser. Virtuella minnesadresser översätts automatiskt till verkliga (RAM)-adresser av maskinvaran. Endast kärndelar av operativsystemets kernel kringgår den här adressöversättningen och använder verkliga minnesadresser direkt.
Virtuellt minne används alltid, även om det minne som krävs av alla processer som körs inte överskrider mängden RAM-minne som är installerat på systemet.
Processer och adressutrymmen
Alla processer (till exempel körbara program) som körs under 32-bitars versioner av Windows tilldelas virtuella minnesadresser (ett virtuellt adressutrymme), från 0 till 4 294 967 295 (2*32–1 = 4 GB), oavsett hur mycket RAM-minne som installeras på datorn.
I standardkonfigurationen för Windows är 2 gb av det här virtuella adressutrymmet avsedda för privat användning av varje process, och de andra 2 GB delas mellan alla processer och operativsystemet. Vanligtvis använder program (till exempel Anteckningar, Word, Excel och Acrobat Reader) bara en bråkdel av det privata adressutrymmet på 2 GB. Operativsystemet tilldelar endast RAM-sidramar till de virtuella minnessidor som används.
Fysiskt adresstillägg (PAE) är funktionen i Intel 32-bitarsarkitekturen som utökar ram-adressen (fysiskt minne) till 36 bitar. PAE ändrar inte storleken på det virtuella adressutrymmet (som förblir på 4 GB), utan bara volymen av det faktiska RAM-minnet som kan åtgärdas av processorn.
Översättningen mellan den 32-bitars virtuella minnesadressen som används av koden som körs i en process och 36-bitars RAM-adressen hanteras automatiskt och transparent av datorns maskinvara enligt översättningstabeller som underhålls av operativsystemet. Alla virtuella minnessidor (32-bitars adress) kan associeras med valfri fysisk RAM-sida (36-bitars adress).
I följande lista beskrivs hur mycket RAM-minne de olika Windows-versionerna och utgåvorna stöder (från och med maj 2010):
Windows-version | RAM |
---|---|
Windows NT 4.0 | 4 GB |
Windows 2000 Professional | 4 GB |
Windows 2000 Standard Server | 4 GB |
Windows 2000 Advanced Server | 8 GB |
Windows 2000 Datacenter Server | 32 GB |
Windows XP Professional | 4 GB |
Windows Server 2003 Web Edition | 2 GB |
Windows Server 2003 Standard Edition | 4 GB |
Windows Server 2003 Enterprise Edition | 32 GB |
Windows Server 2003 Datacenter Edition | 64 GB |
Windows Vista | 4 GB |
Windows Server 2008 Standard | 4 GB |
Windows Server 2008 Enterprise | 64 GB |
Windows Server 2008 Datacenter | 64 GB |
Windows 7 | 4 GB |
Sidfil
RAM är en begränsad resurs, medan virtuellt minne för de flesta praktiska ändamål är obegränsat. Det kan finnas många processer och varje process har ett eget 2 GB privat virtuellt adressutrymme. När minnet som används av alla befintliga processer överskrider det tillgängliga RAM-minnet, flyttar operativsystemet sidor (4 KB bitar) av ett eller flera virtuella adressutrymmen till datorns hårddisk. Detta frigör ramramen för andra användningsområden. I Windows-system lagras dessa sidor i en eller flera filer (Pagefile.sys filer) i roten på en partition. Det kan finnas en sådan fil i varje diskpartition. Platsen och storleken på sidfilen konfigureras i Systemegenskaper (klicka på Avancerat, klicka på Prestanda och klicka sedan på knappen Inställningar).
Användare frågar ofta hur stor bör jag göra sidfilen? Det finns inget enskilt svar på den här frågan eftersom det beror på mängden installerat RAM-minne och hur mycket virtuellt minne som arbetsbelastningen kräver. Om det inte finns någon annan information tillgänglig är den typiska rekommendationen på 1,5 gånger det installerade RAM-minnet en bra startpunkt. På serversystem vill du vanligtvis ha tillräckligt med RAM-minne så att det aldrig uppstår brist och så att sidfilen inte används. På dessa system kanske det inte har något användbart syfte att underhålla en stor sidfil. Å andra sidan, om diskutrymmet är rikligt, underhåll av en stor sidfil (till exempel 1,5 gånger det installerade RAM-minnet) orsakar inte ett problem, och detta eliminerar också behovet av att oroa sig över hur stor för att göra det.
Prestanda, arkitekturgränser och RAM-minne
I alla datorsystem, när belastningen ökar (antalet användare, arbetsvolymen), minskar prestandan, men på ett icke-linjärt sätt. En ökning av belastningen eller efterfrågan, utöver en viss punkt, orsakar en betydande minskning av prestanda. Det innebär att en del resurser har en kritisk brist och har blivit en flaskhals.
Någon gång kan inte resursen som är en bristvara ökas. Det innebär att en arkitekturgräns har nåtts. Några ofta rapporterade arkitekturgränser i Windows inkluderar följande:
- 2 GB delat virtuellt adressutrymme för systemet (kernel)
- 2 GB privat virtuellt adressutrymme per process (användarläge)
- 660 MB PTE-systemlagring (Windows Server 2003 och tidigare)
- 470 MB sidsidig poollagring (Windows Server 2003 och tidigare)
- 256 MB lagringsutrymme för icke-sidsidig pool (Windows Server 2003 och tidigare)
Detta gäller specifikt för Windows Server 2003, men detta kan även gälla för Windows XP och Windows 2000. Windows Vista, Windows Server 2008 och Windows 7 delar dock inte alla dessa arkitekturgränser. Gränserna för användar- och kernelminne (nummer 1 och 2 här) är desamma, men kernelresurser som PTE och olika minnespooler är dynamiska. Den här nya funktionen möjliggör både sid- och icke-sidsidigt minne. Detta gör det också möjligt för ptes och sessionspool att växa utöver de gränser som diskuterades tidigare, fram till den punkt där hela kerneln är uttömd.
Vanliga och citerade instruktioner, till exempel följande:
Med en terminalserver används 2 GB delat adressutrymme helt innan 4 GB RAM-minne används.
Detta kan vara sant i vissa fall. Du måste dock övervaka systemet för att veta om de gäller för ditt specifika system eller inte. I vissa fall är dessa instruktioner slutsatser från specifika Windows NT 4.0- eller Windows 2000-miljöer och gäller inte nödvändigtvis för Windows Server 2003. Betydande ändringar gjordes i Windows Server 2003 för att minska sannolikheten för att dessa arkitekturgränser faktiskt kommer att nås i praktiken. Vissa processer som fanns i kerneln flyttades till andra processer än kernelprocesser för att minska det minne som används i det delade virtuella adressutrymmet.
Övervaka RAM-minne och användning av virtuellt minne
Prestandaövervakaren är huvudverktyget för att övervaka systemets prestanda och för att identifiera platsen för flaskhalsen. Starta Prestandaövervakaren genom att klicka på Start, klicka på Kontrollpanelen, klicka på Administrationsverktyg och sedan dubbelklicka på Prestandaövervakaren. Här är en sammanfattning av några viktiga räknare och vad de säger:
Minne, incheckade byte: Den här räknaren är ett mått på efterfrågan på virtuellt minne.
Detta visar hur många byte som har allokerats av processer och till vilka operativsystemet har checkat in en RAM-sidram eller ett sidfack i sidfilen (eller kanske båda). I takt med att incheckade byte växer större än det tillgängliga RAM-minnet ökar växlingen, och sidfilstorleken som används ökar också. Vid något tillfälle börjar växlingsaktiviteten påverka prestanda avsevärt.
Process, Arbetsuppsättning, _Total: Den här räknaren är ett mått på det virtuella minnet som används aktivt .
Den här räknaren visar hur mycket RAM-minne som krävs så att det virtuella minnet som används för alla processer finns i RAM-minnet. Det här värdet är alltid en multipel av 4 096, vilket är sidstorleken som används i Windows. När efterfrågan på virtuellt minne ökar utöver det tillgängliga RAM-minnet justerar operativsystemet hur mycket av en process virtuella minne som finns i arbetsuppsättningen för att optimera tillgänglig RAM-användning och minimera växling.
Växlingsfil, %pagefile används: Den här räknaren är ett mått på hur mycket av sidfilen som faktiskt används.
Använd den här räknaren för att avgöra om sidfilen är en lämplig storlek. Om den här räknaren når 100 är sidfilen full och saker slutar fungera. Beroende på arbetsbelastningens volatilitet vill du förmodligen att sidfilen ska vara tillräckligt stor så att den inte används mer än 50–075 procent. Om mycket av sidfilen används kan det förbättra prestanda med fler än en på olika fysiska diskar.
Minne, sidor/sekund: Den här räknaren är ett av de mest missförstådda måtten.
Ett högt värde för den här räknaren innebär inte nödvändigtvis att din prestandaflaskhals beror på brist på RAM-minne. Operativsystemet använder växlingssystemet för andra syften än att byta sidor på grund av minnesövertagande.
Minne, sidutdata/s: Den här räknaren visar hur många virtuella minnessidor som skrivits till sidfilen för att frigöra RAM-sidramar för andra ändamål varje sekund.
Detta är den bästa räknaren att övervaka om du misstänker att växling är din prestandaflaskhals. Även om incheckade byte är större än det installerade RAM-minnet, finns det för det mesta inga betydande prestandaproblem från otillräckligt RAM-minne om utdata för sidor/sek är låg eller noll för det mesta.
Minne, Cache byte, minne, pool icke-sidiga byte, minne, pool sidade byte, minne, systemkod totalt byte, minne, systemdrivrutin totalt byte:
Summan av dessa räknare är ett mått på hur mycket av 2 GB av den delade delen av det virtuella adressutrymmet på 4 GB som faktiskt används. Använd dessa för att avgöra om systemet når en av de arkitekturgränser som diskuterades tidigare.
Minne, tillgängliga MByte: Den här räknaren mäter hur mycket RAM-minne som är tillgängligt för att uppfylla kraven på virtuellt minne (antingen nya allokeringar eller för att återställa en sida från sidfilen).
När RAM-minnet är en bristvara (till exempel om incheckade byte är större än installerat RAM-minne) försöker operativsystemet hålla en viss del av det installerade RAM-minnet tillgängligt för omedelbar användning genom att kopiera virtuella minnessidor som inte används aktivt till sidfilen. Därför kommer den här räknaren inte att nå noll och är inte nödvändigtvis en bra indikation på om systemet saknar RAM-minne.