Share via


RAM-minne, virtuellt minne, sidfil och minneshantering i Windows

Gäller för: Windows 7 Service Pack 1, Windows Server 2012 R2
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 i 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-bitarsversioner 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 anges 2 gb (GB) av det här virtuella adressutrymmet 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) endast 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 adress för virtuellt minne 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

Växlingsfilen

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 delar) av en 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. Plats och storlek för 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 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 råder brist och så att sidfilen inte används. I 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) inte orsakar 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 vissa resurser har en kritisk bristvara och har blivit en flaskhals.

Vid något tillfälle kan resursen som är en bristvara inte ökas. Det innebär att en arkitekturgräns har nåtts. Några vanliga arkitekturgränser som rapporteras i Windows är 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 lagringsutrymme för växlingspool (Windows Server 2003 och tidigare)
  • 256 MB lagringsutrymme för icke-växlingsbara pooler (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 växlingsbart och icke-växlingsbart minne. Detta gör det också möjligt för PTE:er och sessionspooler att växa utöver de gränser som diskuterades tidigare, fram till den punkt där hela kerneln är slut.

Ofta hittade 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 har gjorts i Windows Server 2003 för att minska sannolikheten för att dessa arkitekturgränser faktiskt kommer att uppnås i praktiken. Till exempel flyttades vissa processer som fanns i kerneln till processer som inte är kernel 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 övervakning av 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, bekräftade 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). När bekräftade byte växer större än det tillgängliga RAM-minnet ökar sidindelningen 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 arbetsminnet för att optimera tillgänglig RAM-användning och minimera sidindelning.

  • Växlingsfil, %pagefile används: Den här räknaren är ett mått på hur mycket av växlingsfilen 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 en stor del av sidfilen används kan det förbättra prestandan att ha fler än en på olika fysiska diskar.

  • Minne, sidor/s: 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 flaskhalsen för prestanda beror på brist på RAM-minne. Operativsystemet använder växlingssystemet för andra syften än att byta sidor på grund av överåtagande av minne.

  • Minne, sidor utdata/sek: 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 syften varje sekund.

    Detta är den bästa räknaren för att övervaka om du misstänker att sidindelning är din prestandaflaskhals. Även om bekräftade byte är större än det installerade RAM-minnet, finns det inga betydande prestandaproblem från otillräckligt RAM-minne om pages Output/sec är låg eller noll för det mesta.

  • Minne, cachebyte, minne, icke-sidiga poolbyte, minne, poolsidiga byte, minne, systemkod, totalt antal byte, minne, systemdrivrutins totalt antal byte:

    Summan av dessa räknare är ett mått på hur mycket av de 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 är en bristvara (till exempel om bekräftade byte är större än installerat RAM-minne) kommer operativsystemet att försöka 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. Den här räknaren når därför inte noll och är inte nödvändigtvis en bra indikation på om systemet saknar RAM-minne.

Referenser

Adressfönstertillägg