Pāriet uz saturu

Windows atmiņas pārvaldnieks un sistēmas kešatmiņa: paging, page combining un lazy write

Šajā lapā

Šajā sērijā pārbaudīti septiņi parametri, kas saistīti ar lapošanu, identisku lapu apvienošanu, kodola kaudzēm un failu kešatmiņu. Windows 11 25H2 ir atrasts katra no tiem nolasīšanas kods. Praktiskā lietderība ir atkarīga no parametra un darbības apstākļiem.

DisablePageCombining izslēdz fonu lapu apvienošanu: atmiņas pārvaldnieks pārstāj veikt šo darbu, taču RAM patēriņš var pieaugt. DisablePagingExecutive notur izlādējamu draiveru kodu fiziskajā atmiņā; lietderība parasti ir maza. Pārējie parametri ir piemērojami tikai atsevišķiem kodola vai diskdzinis uzdevumiem, vai arī 25H2 jau ir piemērotas noklusējuma vērtības.

Katram parametram tika pārbaudīts:

  1. precīzs ceļš reģistrā un tips;
  2. noklusējuma vērtība, ko nosaka Windows 11 25H2 kods;
  3. saistītās tās pašas apakšsistēmas vērtības;
  4. sistēmas nolasīšanas kods un tā izpildes brīdis;
  5. diapazona ierobežojumi, vērtību pārveide un mērvienības;
  6. tiešā ietekme un piemērojamības robežas.

Papildus nolasīšanas kodam mēs pārbaudījām, kur parametrs tiek lietots, kādas sekas ir tā maiņai un kādos scenārijos tā var būt noderīga. Ar pašu parametra esamību nepietiek, lai sniegtu ieteikumu.

  • Windows 11 25H2 x64, build 26200.9168.
  • Kodola parametri salīdzināti ar galveno konfigurācijas tabulu ntoskrnl.exe un to piemērošanas kodu Memory Manager un Cache Manager.
  • Piekļuves darbības laikā tika pārbaudītas ar sistēmas reģistra izsekošanu. Nolasījumi 0. fāzē un 1. fāzes sākumā var nebūt redzami parastā sāknēšanas izsekā: izsekošanas draiveris sāk ierakstīšanu vēlāk.
  • Lietotāja procesiem atsevišķi tika pārbaudīta vērtības nolasīšana ntdll.dll. HeapDeCommitFreeBlockThreshold 25H2 ir atrasta nolasīšana kodolā, taču lietotāja procesu kaudzes šo parametru neizmanto.
  • Sistēmas komponentu statiskā analīze neaizstāj atkārtojumu fiziskā datorā, citā build vai citā diskdziņa tipā.
Registry path Value Type Default Windows 11 25H2 Piemērošana
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management DisablePagingExecutive REG_DWORD 0 Sistēmas draiveru lapojamā koda paging
tas pats ceļš DisablePageCombining REG_DWORD 0 Fonu identisku fizisko lapu apvienošana
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager HeapDeCommitFreeBlockThreshold REG_DWORD 0x1000 (4 KB) kernel heap Brīvo kernel-mode heap bloku decommit slieksnis
tas pats ceļš ModifiedWriteMaximum REG_DWORD 1 vienība = 1 MB Modified page writer augšējā robeža pēc clamp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management EnableAsyncLazywrite REG_DWORD 2 Cache Manager asinhronais režīms
tas pats ceļš CacheUnmapBehindLengthInMB REG_DWORD 8 MB Unmap logs aiz secīgas lasīšanas
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel SplitLargeCaches REG_DWORD 0 Cache topology attēlojums starp processor groups

Ar 0 Windows atmiņas pārvaldnieks var izlādēt tās sistēmas koda un draiveru sadaļas, kas to pieļauj, rezerves krātuvē. Ar 1 izlādējamais sistēmas draiveru kods tiek noturēts fiziskajā atmiņā.

Nolasīšanas kods atrasts ntoskrnl.exe agrīnā kodola inicializācijas posmā. Vērtība tiek izmantota MmResetDriverPaging, MmPageEntireDriver un sistēmas attēlu ielādes laikā. Tā tiek piemērota agrāk, nekā sākas parastā lietotāja reģistra izsekošana. Lai piemērotu jauno stāvokli, nepieciešama restartēšana.

  • 0: Windows standarta stāvoklis, lapošana atļauta.
  • 1: izlādējamās sistēmas draiveru sadaļas tiek noturētas RAM.
  • Iestatījums patērē RAM, lai saīsinātu turpmākās sistēmas koda ielādes atpakaļ atmiņā; pats disks nestrādā ātrāk.

Iestatījums novērš šo draiveru sadaļu turpmāku izlādēšanu un ielādi. Tas neizslēdz atsevišķu pastāvīgu CPU pārbaudes pavedienu. Mūsdienu sistēmā ar pietiekamu RAM apjomu lietderība parasti ir ļoti maza: kods arī bez iestatījuma var ilgi palikt atmiņā. Ja RAM trūkst, tā piespiedu noturēšana pastiprina atmiņas deficītu.

Parametra nolasīšana un sistēmas efekta virziens apstiprināti ar ntoskrnl.exe kodu.

Ar 0 atmiņas pārvaldnieks palaiž fona uzdevumu, kas meklē un apvieno identiskas fiziskās lapas. Ar 1 šis uzdevums neveic apvienošanu.

ntoskrnl.exe atrasts fonu lapu apvienošanas kods ar pool tag MmCb, kas apstiprina mehānisma esamību.

  • 0: lapu apvienošana atļauta, Windows standarta stāvoklis.
  • 1: apvienošana izslēgta.
  • Izslēgšana samazina atmiņas pārvaldnieka fonu darbu, taču var palielināt RAM patēriņu.

Izslēgšana ir noderīga, ja lapu apvienošana rada ievērojamu fonu slodzi un sistēmai ir brīva RAM. Parasti šis uzdevums ir mazaktīvs, tāpēc efekts ir ļoti neliels. Ja atmiņas apjoms ir ierobežots, RAM ietaupījums no apvienošanas ir lietderīgāks par ietaupīto procesora laiku.

Nolasīšanas un fona uzdevuma kods apstiprināts ntoskrnl.exe. Microsoft apraksta lapu apvienošanu un kompromisu starp procesora darbu un RAM ietaupījumu.

Vērtība nosaka atbrīvotās atmiņas (decommit) slieksni brīvam kodola kaudzes blokam. Pie lielāka sliekšņa šādas operācijas lieliem brīviem blokiem notiek retāk.

Windows 11 25H2 nolasīšanas kods atrodas ntoskrnl.exe, un parametra piemērošana ir saistīta ar kodola funkciju RtlCreateHeap. ntdll.dll atbilstošs nolasīšanas kods parasto procesu kaudzēm nav atrasts.

  • Noklusējuma vērtība kodolā kaudzes kodā: 0x1000 (4 KB).
  • 0x40000 (256 KB) ir pieļaujams slieksnis kodola kaudzei.
  • Vēsturiskie Microsoft dokumenti aprakstīja tāda paša nosaukuma user-mode scenāriju vecākās Windows versijās, tāpēc to nevar automātiski attiecināt uz Windows 11 25H2.

Parastām lietojumprogrammām lietderības praktiski nav: to kaudzes šo vērtību neizmanto. Parametrs var mainīt atmiņas atbrīvošanas biežumu tikai kodola kaudzē. Bez izmērītas problēmas tieši ar to gaidāmais efekts ir ļoti mazs.

Nolasīšana kodola režīmā apstiprināta ntoskrnl.exe. Efekts lietotāja procesiem 25H2 nav apstiprināts.

Parametrs nosaka augšējo robežu mainīto lapu rakstīšanas mehānismam (modified page writer). Kodā tiek izmantotas vienības pa 256 lapām, tas ir, viena vienība ir vienāda ar 1 MB.

Normalizācija Windows 11 25H2:

  • 0 tiek pārveidots par 1 vienību, tas ir, 1 MB;
  • vērtības, kas lielākas par 0x40, tiek ierobežotas ar 0x40;
  • maksimālā efektīvā robeža ir 64 MB jeb 16 384 lapas.

Mehānisms sāk aktīvu rakstīšanu aptuveni tad, kad tiek sasniegta ceturtdaļa no noteiktā limita. Limita palielināšana maina rakstīšanas sākuma brīdi un uzkrāto mainīto lapu apjomu. Paša diska ātrums no tā nepalielinās.

Pie lielāka limita pirms aktīvās rakstīšanas sākuma uzkrājas vairāk mainīto lapu. Rakstīšana var sākties retāk, taču vēl nesaglabāto datu apjoms un nākamās rakstīšanas porcijas lielums pieaug. Ja konkrētas problēmas ar rakstīšanu nav, atstājiet noklusējuma vērtību. Efektīvā robeža ir ierobežota ar 64 MB.

Nolasīšanas kods, mērvienības un diapazona ierobežojums apstiprināti ntoskrnl.exe. Tāda paša nosaukuma parametrs no vecākiem Microsoft dokumentiem par BitLocker attiecas uz citu apakšsistēmu; šie dokumenti šeit netiek izmantoti kā avots.

EnableAsyncLazywrite un saistītās vērtības

Section titled “EnableAsyncLazywrite un saistītās vērtības”

EnableAsyncLazywrite pārvalda Cache Manager asinhrono atlikto rakstīšanu. 25H2 kodā ir noteikta noklusējuma vērtība 2: šis režīms jau ir iespējots.

Tās pašas apakšsistēmas saistītās vērtības:

Value Default 25H2 Loma
EnableAsyncLazywrite 2 Vispārējais async lazy-write mode
EnableAsyncLazywriteMulti 2 Blakus esošais multi-volume režīms
EnablePerVolumeLazyWriter 2 Per-volume lazy writer

0 izslēdz asinhrono atlikto rakstīšanu. 1 ir nepieciešams atsevišķa atliktās rakstīšanas apstrādātāja režīms katrā sējumā. 2 iespējo asinhrono režīmu bez šīs prasības. Cache Manager pārlasa vērtības, strādājot ar sējumu konfigurāciju.

Skaidra 2 ierakstīšana atkārto Windows 11 25H2 standarta konfigurāciju un neko papildus neuzlabo. Iestatījums ir piemērots galvenokārt diagnostikai: vērtība 0 ļauj izslēgt pēc noklusējuma strādājošo mehānismu.

Nolasīšana tika novērota sistēmas izsekā un apstiprināta ntoskrnl.exe. Noklusējuma vērtība 2 apstiprināta ar kodu un neatkarīgu reģistra parametru aprakstu, kas sagatavots pēc reversās analīzes rezultātiem.

Parametrs nosaka attālumu megabaitos, pēc kura Cache Manager atbrīvo kešatmiņā saglabātos attēlojumus, kas palikuši aiz secīgās lasīšanas pašreizējās pozīcijas.

Parametra nolasīšanas un piemērošanas kods atrodas ntoskrnl.exe un tiek izsaukts kešatmiņas attēlošanas un lasīšanas laikā. Parametrs attiecas uz lielu failu secīgu lasīšanu; tas neizslēdz visu failu kešatmiņu.

  • 0 vai vērtība, kas lielāka par 128, tiek aizstāta ar kodu uz 8.
  • Darba diapazons: 1..128 MB.
  • Koda default: 8 MB.
  • Registry value vienības ir tieši MB, nevis baiti.

Parametram ir jēga tikai specializētiem lielu failu secīgas lasīšanas uzdevumiem. Pie lielāka loga kešatmiņas attēlojums aiz pašreizējās pozīcijas tiek saglabāts ilgāk, pie mazāka tas tiek atbrīvots agrāk. Parastam darbam ir piemērota standarta vērtība 8 MB; manuālas iestatīšanas lietderība parasti ir maza.

Nolasīšanas, piemērošanas un diapazona ierobežojuma kods apstiprināts ntoskrnl.exe. Mūsdienu publiska Microsoft dokumentācija šim iekšējam parametram nav atrasta.

Ar 0 kešatmiņas topoloģijas apraksta API atgriež vienotu ierakstu attiecīgajai struktūrai, kas aptver vairākas procesoru grupas. Ar 1 ieraksti tiek sadalīti pa procesoru grupām.

Nolasīšanas kods atrodas ntoskrnl.exe. Parametrs tiek izmantots, apstrādājot attiecību RelationCache KeQueryLogicalProcessorRelationship.

Mainās tikai topoloģijas apraksts, ko atgriež sistēmas API. Piešķirtie fiziskie atmiņas bloki netiek sadalīti, un nepārtraukta bloka trūkuma iespējamība pati par sevi nesamazinās.

  • 0: noklusējuma vērtība.
  • 1: sadalīt topoloģijas ierakstus pa procesoru grupām.
  • Praktisks efekts iespējams galvenokārt sistēmās ar vairākām procesoru grupām, parasti ar vairāk nekā 64 loģiskajiem procesoriem.
  • Parastā vienas grupas sistēmā efekta nav.

Parametrs ir nepieciešams tikai programmām, kas pieprasa kešatmiņas topoloģiju mašīnā ar vairākām procesoru grupām. Tas nemaina kešatmiņas darbību un atmiņas piešķiršanu. Parastam galddatoram lietderības nav.

Nolasīšanas un piemērošanas kods apstiprināts ntoskrnl.exe. Vērtība un nozīme salīdzināta ar publisku reversās analīzes aprakstu KiSplitLargeCaches.

Parametrs Praktiskais vērtējums
DisablePagingExecutive Parasti dod ļoti mazu lietderību, noturot vairāk koda RAM
DisablePageCombining Noderīgs pie apstiprinātas fonu lapu apvienošanas slodzes un liela RAM krājuma
HeapDeCommitFreeBlockThreshold Darbojas tikai kodolā; parastām lietojumprogrammām praktiskas lietderības nav
ModifiedWriteMaximum Maina mainīto lapu rakstīšanas nosacījumus; bez konstatētas problēmas atstājiet standarta vērtību
EnableAsyncLazywrite Standarta vērtība 2 jau iespējo mehānismu; atkārtota ierakstīšana neko neuzlabo
CacheUnmapBehindLengthInMB Secīgas lasīšanas iestatījums; standarta 8 MB ir piemēroti parastam darbam
SplitLargeCaches Maina topoloģijas aprakstu vairākām procesoru grupām; parastā sistēmā efekta nav

Apstiprināti iepriekš minētie ceļi, tipi, noklusējuma vērtības, parametru nolasīšanas kods un brīdis, kā arī diapazonu ierobežojumi. Rezultāti attiecas uz Windows 11 25H2 build 26200.9168. Uzvedība var atšķirties pie cita Windows atjauninājuma, RAM apjoma, diskdziņa tipa vai CPU topoloģijas.

Kā atkārtot novērojumu dinamisko daļu — skatiet Kā pārbaudīt patstāvīgi.

Lai atgrieztos, atjaunojiet parametru standarta vērtības vai izdzēsiet neobligātos ierakstus. Daļa vērtību tiek piemērota nākamajā Windows sāknēšanas reizē.

Pētījums un tajā izmantotie rīki pieder BoosterX izstrādātājam, tāpēc izstrādātājam ir tieša interese par rezultātiem. Metodika un piemērojamības robežas ir aprakstītas šajā rakstā; secinājumus var pārbaudīt pēc atklātajiem datiem un tālāk uzskaitītajiem publiskajiem avotiem.

Apgalvojumi par kodu pārbaudīti ar Windows 11 25H2 sistēmas komponentu statisko analīzi. Dekompilētais kods, nobīdes, sākotnējās izsekas un iekšējie materiāli netiek publicēti.

Publiskie avoti pārbaudīti: 2026-09-02.

  • 2026-09-20: pievienots disclaimers par interešu konfliktu un saite uz patstāvīgu dinamisku novērojumu pārbaudi metodikā.
  • 2026-09-02: pirmā publikācija; apstiprināti ceļi, defaults, clamps un parametru nolasīšanas kods, pievienotas praktiskās lietderības robežas.