Lewati ke konten

Memory Manager dan cache sistem Windows: paging, page combining, dan lazy write

Di halaman ini

Dalam seri ini diperiksa tujuh parameter paging, penggabungan halaman identik, heap kernel, dan cache berkas. Di Windows 11 25H2 ditemukan kode pembacaan untuk masing-masing parameter tersebut. Manfaat praktisnya bergantung pada parameter dan kondisi kerja.

DisablePageCombining menonaktifkan penggabungan halaman di latar belakang: manajer memori berhenti menjalankan tugas ini, tetapi pemakaian RAM dapat meningkat. DisablePagingExecutive menahan kode driver yang dapat dipindahkan di memori fisik; manfaatnya biasanya kecil. Parameter lainnya hanya berlaku untuk tugas kernel atau penyimpanan tertentu, atau sudah memiliki nilai default yang sesuai di 25H2.

Untuk setiap nilai diperiksa:

  1. jalur persis di Registry dan tipenya;
  2. nilai default yang ditetapkan oleh kode Windows 11 25H2;
  3. nilai terkait dari subsistem yang sama;
  4. kode sistem pembacaan dan waktu eksekusinya;
  5. batasan rentang, konversi nilai, dan satuan pengukuran;
  6. efek langsung dan batas penerapannya.

Selain kode pembacaan, kami memeriksa di mana parameter diterapkan, konsekuensi apa yang ditimbulkan perubahannya, dan dalam skenario apa hal itu dapat berguna. Keberadaan parameter saja tidak cukup untuk sebuah rekomendasi.

  • Windows 11 25H2 x64, build 26200.9168.
  • Parameter kernel dicocokkan dengan tabel konfigurasi utama ntoskrnl.exe dan kode penerapannya di Memory Manager dan Cache Manager.
  • Akses selama runtime diperiksa dengan pelacakan Registry sistem. Pembacaan pada fase 0 dan awal fase 1 mungkin tidak ada dalam pelacakan boot biasa: driver pelacakan mulai mencatat lebih lambat.
  • Untuk proses pengguna, pembacaan nilai diperiksa secara terpisah di ntdll.dll. Untuk HeapDeCommitFreeBlockThreshold di 25H2 ditemukan pembacaan di kernel, tetapi heap proses pengguna tidak menggunakan parameter ini.
  • Analisis statis komponen sistem tidak menggantikan pengujian ulang pada PC fisik, build lain, atau jenis penyimpanan lain.
Registry path Value Type Default Windows 11 25H2 Penerapan
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management DisablePagingExecutive REG_DWORD 0 Paging kode pageable driver sistem
jalur yang sama DisablePageCombining REG_DWORD 0 Penggabungan latar belakang halaman fisik identik
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager HeapDeCommitFreeBlockThreshold REG_DWORD 0x1000 (4 KB) untuk kernel heap Ambang decommit blok kosong kernel-mode heap
jalur yang sama ModifiedWriteMaximum REG_DWORD 1 satuan = 1 MB Batas atas modified page writer setelah clamp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management EnableAsyncLazywrite REG_DWORD 2 Mode asinkron Cache Manager
jalur yang sama CacheUnmapBehindLengthInMB REG_DWORD 8 MB Jendela unmap di belakang pembacaan berurutan
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel SplitLargeCaches REG_DWORD 0 Representasi cache topology antar processor group

Dengan 0 manajer memori Windows dapat memindahkan bagian kode sistem dan driver yang mengizinkannya ke penyimpanan cadangan. Dengan 1 kode driver sistem yang dapat dipindahkan ditahan di memori fisik.

Kode pembacaan ditemukan di ntoskrnl.exe pada tahap awal inisialisasi kernel. Nilai ini digunakan di MmResetDriverPaging, MmPageEntireDriver, dan saat memuat image sistem. Nilai ini diterapkan lebih awal daripada dimulainya pelacakan Registry pengguna biasa. Untuk menerapkan status baru diperlukan restart.

  • 0: keadaan standar Windows, paging diizinkan.
  • 1: bagian driver sistem yang dapat dipindahkan ditahan di RAM.
  • Pengaturan ini mengonsumsi RAM untuk mengurangi pemuatan ulang kode sistem ke memori; disk itu sendiri tidak menjadi lebih cepat.

Pengaturan ini mencegah pemindahan dan pemuatan ulang bagian driver tersebut di kemudian hari. Pengaturan ini tidak menonaktifkan thread CPU pemeriksa tetap yang terpisah. Pada sistem modern dengan RAM yang cukup, manfaatnya biasanya sangat kecil: kode bahkan tanpa pengaturan dapat tetap berada di memori untuk waktu yang lama. Saat RAM tidak mencukupi, penahanan paksa ini memperparah kekurangan memori.

Pembacaan parameter dan arah efek sistem dikonfirmasi oleh kode ntoskrnl.exe.

Dengan 0 manajer memori menjalankan tugas latar belakang yang mencari dan menggabungkan halaman fisik identik. Dengan 1 tugas ini tidak melakukan penggabungan.

Di ntoskrnl.exe ditemukan kode penggabungan halaman latar belakang dengan pool tag MmCb, yang mengonfirmasi keberadaan mekanisme tersebut.

  • 0: penggabungan halaman diizinkan, keadaan standar Windows.
  • 1: penggabungan dinonaktifkan.
  • Menonaktifkan mengurangi kerja latar belakang manajer memori, tetapi dapat meningkatkan pemakaian RAM.

Menonaktifkan berguna jika penggabungan halaman menciptakan beban latar belakang yang signifikan dan sistem memiliki RAM yang tersedia. Biasanya tugas ini kurang aktif, sehingga efeknya sangat kecil. Dengan memori yang terbatas, penghematan RAM dari penggabungan lebih berguna daripada waktu prosesor yang dihemat.

Kode pembacaan dan tugas latar belakang dikonfirmasi di ntoskrnl.exe. Microsoft menjelaskan penggabungan halaman dan kompromi antara kerja prosesor dan penghematan RAM.

Nilai ini menetapkan ambang pelepasan memori yang dialokasikan (decommit) untuk blok kosong heap kernel. Dengan ambang yang lebih besar, operasi semacam itu untuk blok kosong berukuran besar terjadi lebih jarang.

Di Windows 11 25H2 kode pembacaan berada di ntoskrnl.exe, dan penerapan parameter terkait dengan fungsi kernel RtlCreateHeap. Di ntdll.dll kode pembacaan yang sesuai untuk heap proses biasa tidak ditemukan.

  • Nilai default dalam kode untuk heap kernel: 0x1000 (4 KB).
  • 0x40000 (256 KB) adalah ambang yang valid untuk heap kernel.
  • Dokumen historis Microsoft menjelaskan skenario user-mode dengan nama yang sama pada versi Windows lama, sehingga tidak dapat secara otomatis diterapkan pada Windows 11 25H2.

Untuk aplikasi biasa hampir tidak ada manfaatnya: heap mereka tidak menggunakan nilai ini. Parameter ini hanya dapat mengubah frekuensi pelepasan memori di heap kernel. Tanpa masalah yang terukur khusus pada heap kernel, efek yang diharapkan sangat kecil.

Pembacaan dalam mode kernel dikonfirmasi di ntoskrnl.exe. Efek untuk proses pengguna di 25H2 tidak dikonfirmasi.

Parameter ini menetapkan batas atas untuk mekanisme penulisan halaman yang diubah (modified page writer). Dalam kode digunakan satuan per 256 halaman, yaitu satu satuan sama dengan 1 MB.

Normalisasi di Windows 11 25H2:

  • 0 dikonversi menjadi 1 satuan, yaitu 1 MB;
  • nilai yang lebih besar dari 0x40 dibatasi menjadi 0x40;
  • batas efektif maksimum adalah 64 MB, atau 16 384 halaman.

Mekanisme ini mulai menulis secara aktif kira-kira saat mencapai seperempat dari batas yang ditetapkan. Meningkatkan batas mengubah waktu dimulainya penulisan dan jumlah halaman yang diubah yang terakumulasi. Kecepatan disk itu sendiri tidak meningkat karenanya.

Dengan batas yang lebih besar, lebih banyak halaman yang diubah terakumulasi sebelum penulisan aktif dimulai. Penulisan dapat dimulai lebih jarang, tetapi jumlah data yang belum tersimpan dan ukuran penulisan berikutnya bertambah. Jika tidak ada masalah spesifik dengan penulisan, biarkan nilai default. Batas efektifnya dibatasi pada 64 MB.

Kode pembacaan, satuan pengukuran, dan batasan rentang dikonfirmasi di ntoskrnl.exe. Parameter dengan nama yang sama dari dokumen Microsoft lama tentang BitLocker merujuk pada subsistem yang berbeda; dokumen tersebut tidak digunakan sebagai sumber di sini.

EnableAsyncLazywrite mengendalikan penulisan tertunda asinkron Cache Manager. Dalam kode 25H2 ditetapkan nilai default 2: mode ini sudah aktif.

Nilai terkait dari subsistem yang sama:

Value Default 25H2 Peran
EnableAsyncLazywrite 2 Mode async lazy-write umum
EnableAsyncLazywriteMulti 2 Mode multi-volume tetangga
EnablePerVolumeLazyWriter 2 Lazy writer per-volume

0 menonaktifkan penulisan tertunda asinkron. Untuk 1 diperlukan mode penangan penulisan tertunda terpisah pada setiap volume. 2 mengaktifkan mode asinkron tanpa persyaratan tersebut. Cache Manager membaca ulang nilai saat menangani konfigurasi volume.

Penulisan eksplisit 2 mengulang konfigurasi standar Windows 11 25H2 dan tidak meningkatkan apa pun secara tambahan. Pengaturan ini terutama cocok untuk diagnostik: nilai 0 memungkinkan menonaktifkan mekanisme yang aktif secara default.

Pembacaan diamati dalam pelacakan sistem dan dikonfirmasi di ntoskrnl.exe. Nilai default 2 dikonfirmasi oleh kode dan deskripsi independen parameter Registry yang disusun berdasarkan hasil rekayasa balik.

Parameter ini menetapkan jarak dalam megabita, setelah itu Cache Manager melepaskan representasi yang di-cache yang tertinggal di belakang posisi pembacaan berurutan saat ini.

Kode pembacaan dan penerapan parameter berada di ntoskrnl.exe dan dipanggil saat pemetaan dan pembacaan cache. Parameter ini berkaitan dengan pembacaan berurutan berkas besar; parameter ini tidak menonaktifkan seluruh cache berkas.

  • 0 atau nilai yang lebih besar dari 128 diganti oleh kode menjadi 8.
  • Rentang kerja: 1..128 MB.
  • Default kode: 8 MB.
  • Satuan Registry value memang MB, bukan byte.

Parameter ini hanya masuk akal untuk tugas khusus pembacaan berurutan berkas besar. Dengan jendela yang lebih besar, pemetaan cache di belakang posisi saat ini dipertahankan lebih lama, dengan jendela yang lebih kecil dilepaskan lebih awal. Untuk kerja biasa, nilai standar 8 MB sudah cocok; manfaat pengaturan manual biasanya kecil.

Kode pembacaan, penerapan, dan batasan rentang dikonfirmasi di ntoskrnl.exe. Dokumentasi publik Microsoft modern untuk parameter internal ini tidak ditemukan.

Dengan 0 API deskripsi topologi cache mengembalikan satu entri untuk struktur terkait yang mencakup beberapa processor group. Dengan 1 entri dipisahkan per processor group.

Kode pembacaan berada di ntoskrnl.exe. Parameter ini digunakan saat memproses relasi RelationCache di KeQueryLogicalProcessorRelationship.

Hanya deskripsi topologi yang dikembalikan oleh API sistem yang berubah. Blok memori fisik yang dialokasikan tidak dipisahkan, dan kemungkinan kekurangan blok berurutan itu sendiri tidak berkurang.

  • 0: nilai default.
  • 1: memisahkan entri topologi per processor group.
  • Efek praktis mungkin terjadi terutama pada sistem dengan beberapa processor group, biasanya dengan lebih dari 64 prosesor logis.
  • Pada sistem satu grup biasa tidak ada efeknya.

Parameter ini hanya diperlukan oleh program yang meminta topologi cache pada mesin dengan beberapa processor group. Parameter ini tidak mengubah kerja cache dan alokasi memori. Untuk komputer desktop biasa tidak ada manfaatnya.

Kode pembacaan dan penerapan dikonfirmasi di ntoskrnl.exe. Nilai dan tujuannya dicocokkan dengan deskripsi publik hasil rekayasa balik KiSplitLargeCaches.

Parameter Penilaian praktis
DisablePagingExecutive Biasanya memberi manfaat sangat kecil dengan menahan lebih banyak kode di RAM
DisablePageCombining Berguna saat beban penggabungan halaman latar belakang terkonfirmasi dan cadangan RAM besar
HeapDeCommitFreeBlockThreshold Hanya berlaku di kernel; untuk aplikasi biasa tidak ada manfaat praktis
ModifiedWriteMaximum Mengubah kondisi penulisan halaman yang diubah; tanpa masalah yang teridentifikasi biarkan nilai standar
EnableAsyncLazywrite Nilai standar 2 sudah mengaktifkan mekanisme; penulisan ulang tidak meningkatkan apa pun
CacheUnmapBehindLengthInMB Pengaturan pembacaan berurutan; nilai standar 8 MB cocok untuk kerja biasa
SplitLargeCaches Mengubah deskripsi topologi untuk beberapa processor group; pada sistem biasa tidak ada efeknya

Apa yang dikonfirmasi dan apa yang tidak diukur

Section titled “Apa yang dikonfirmasi dan apa yang tidak diukur”

Jalur, tipe, nilai default, kode dan waktu pembacaan parameter yang disebutkan di atas dikonfirmasi, serta batasan rentangnya. Hasilnya berlaku untuk Windows 11 25H2 build 26200.9168. Perilaku dapat berbeda pada pembaruan Windows lain, jumlah RAM, jenis penyimpanan, atau topologi CPU lain.

Cara mengulang bagian dinamis dari pengamatan — lihat Cara memeriksa sendiri.

Untuk mengembalikan, kembalikan nilai standar parameter atau hapus entri opsional. Sebagian nilai diterapkan pada boot Windows berikutnya.

Penelitian dan alat yang digunakan di dalamnya milik pengembang BoosterX, sehingga pengembang memiliki kepentingan langsung terhadap hasilnya. Metodologi dan batas penerapannya dijelaskan dalam artikel ini; kesimpulannya dapat diverifikasi melalui data terbuka dan sumber publik yang tercantum di bawah.

Pernyataan tentang kode diverifikasi melalui analisis statis komponen sistem Windows 11 25H2. Kode yang didekompilasi, offset, pelacakan asli, dan materi internal tidak dipublikasikan.

Sumber publik diperiksa: 2026-09-02.

  • 2026-09-20: ditambahkan disclaimer tentang konflik kepentingan dan tautan ke pemeriksaan mandiri pengamatan dinamis dalam metodologi.
  • 2026-09-02: publikasi pertama; jalur, default, clamp, dan kode pembacaan parameter dikonfirmasi, batas kegunaan praktis ditambahkan.