Dela via


Prestandaoptimering för cache- och minneshantering

Som standard cachelagrar Windows fildata som läss från diskar och skrivs till diskar. Detta innebär att läsåtgärder läser fildata från ett område i systemminnet, som kallas systemfilcachen, i stället för från den fysiska disken. På motsvarande sätt skriver skrivåtgärder fildata till systemfilcachen i stället för till disken, och den här typen av cache kallas för en tillbakaskrivningscache. Cachelagring hanteras per filobjekt. Cachelagring sker under ledning av Cachehanteraren, som körs kontinuerligt medan Windows körs.

Fildata i systemfilcachen skrivs till disken med intervall som bestäms av operativsystemet. Tömda sidor förblir antingen i systemcachens arbetsuppsättning (när FILE_FLAG_RANDOM_ACCESS har angetts och filhandtaget inte stängdes) eller i väntelägeslistan där dessa blir en del av tillgängligt minne.

Principen för att fördröja skrivning av data till filen och hålla den i cacheminnet tills cachen töms kallas för lat skrivning, och den utlöses av Cachehanteraren vid ett bestämt tidsintervall. Tiden då ett block med fildata töms baseras delvis på hur lång tid det har lagrats i cacheminnet och hur lång tid sedan data senast användes i en läsåtgärd. Detta säkerställer att fildata som läses ofta förblir tillgängliga i systemfilcacheminnet under den maximala tiden.

Den här cachelagringsprocessen för fildata illustreras i följande bild:

cachelagring av fildata

Som illustreras av de fasta pilarna i föregående bild läses en 256 KB-dataregion in i ett 256 KB cachefack i systemadressutrymmet när den först begärs av Cachehanteraren under en filläsningsåtgärd. En process i användarläge kopierar sedan data i det här facket till sitt eget adressutrymme. När processen har slutfört sin dataåtkomst skriver den tillbaka ändrade data till samma plats i systemcachen, vilket visas av den prickade pilen mellan processadressutrymmet och systemcachen. När cachehanteraren har fastställt att data inte längre behövs under en viss tid skriver den tillbaka ändrade data till filen på disken, vilket visas med den prickade pilen mellan systemcachen och disken.

I det här avsnittet: