Apakah perubahan registri DisablePagingExecutive memiliki efek yang sebenarnya?

9

Di sejumlah mesin di masa lalu, di berbagai versi Windows (2000, XP, dan tanpa Vista), saya telah mengaktifkan DisablePagingExecutive untuk mencoba dan meningkatkan kinerja. Dalam setiap kasus, dan saya memiliki banyak memori, dan khususnya dalam kasus saat ini. Namun, setelah mengaktifkan tweak registri ini dan me-reboot, saya telah memeriksa task manager setelah beberapa saat, dan saya masih menunjukkan sebagian besar kernel yang dipetakan ke disk, walaupun saya memiliki 2GB memori fisik gratis.

Adakah yang pernah menggunakan tweak ini dengan sukses? Pernah? Mungkin saya melihat indikator yang salah ketika saya memeriksa task manager (tab Performance -> "Kernel Memory"), tapi saya ingin mencegah Windows dari paging semua yang bisa ke disk, terutama mengingat jumlah memori yang disediakan di desktop hari ini. Sepertinya ada opsi "Jangan halaman ke disk kecuali ada tekanan memori ekstrim" - apakah ada?

SqlRyan
sumber

Jawaban:

13

Ada banyak kebingungan di internet terkait fungsi ini. Pengaturan hanya mempengaruhi sebagian dari kernel yang dikenal sebagai eksekutif, dan kemudian hanya untuk bagian-bagian yang dapat di-page. Ada bagian lain dari kernel yang sama sekali tidak terpengaruh oleh pengaturan ini.

Paging kernel bekerja dengan cara yang sama seperti paging lainnya. Kode dan data yang sering diakses akan disimpan dalam RAM sementara sisanya akan tetap di disk - di mana tempatnya. Sistem tidak akan menghapus bagian dari kernel dari RAM kecuali telah menemukan penggunaan yang lebih baik untuk itu. Microsoft telah mengabdikan sejumlah besar penelitian dan pengujian untuk sistem paging.

Dalam konteks kernel "Non-paged" berarti kode dan data yang tidak pernah dapat ditampilkan dalam keadaan apa pun. "Paged" berarti kode dan data yang BISA paged jika perlu. Seberapa banyak sebenarnya yang dikerjakan adalah mustahil untuk disampaikan dari Task Manager. Sebagian dari kode yang ditata tidak pernah dibaca dari disk sejak awal karena belum diperlukan. Tidak semua kernel sering diakses. Anda seharusnya tidak mengharapkan nomor Paged dan Nonpaged dipengaruhi oleh pengaturan yang dimaksud.

Catatan: Ketika kode paged keluar biasanya tidak disalin ke pagefile. Ini tidak perlu karena hanya dapat dimuat ulang dari file asli. Ini berlaku untuk sebagian besar kode, bukan hanya kerenl.

Dengan jumlah RAM yang masuk akal, pengaturan pada dasarnya tidak akan menghasilkan apa-apa. Ini hanya mencegah sistem dari paging out data yang tidak ingin keluar halaman pula.

Larry Miller
sumber
4

Saya tidak yakin apakah Anda menyadarinya, tetapi kesalahan halaman adalah mekanisme yang digunakan Windows untuk memuat kode yang dapat dieksekusi. Jadi, misalnya, DLL dipetakan ke memori virtual, dan kemudian kesalahan halaman digunakan untuk melakukan pemuatan aktual dari disk sesuai kebutuhan. Filefile tidak terlibat dalam hal ini.

Jadi banyak dari apa yang Anda anggap sebagai 'paged ke disk' mungkin merupakan hal-hal yang ada di disk sejak awal.

Will Dean
sumber
Saya tidak menyadarinya, dan itu masuk akal, meskipun saya tidak berpikir itu menjawab pertanyaan saya. Jika saya menonaktifkan paging kernel windows, mengapa task manager saya terus memberi tahu saya bahwa 75% di antaranya telah dihapus (total 400MB kernel dengan 275MB halaman)? Ini juga tidak menjawab pertanyaan saya tentang mengapa Windows tampaknya begitu berat ketika masih ada beberapa GB RAM gratis.
SqlRyan
1
Anda membaca 'paged' sebagai 'memory yang dapat ditulis yang telah paged-out', sedangkan dalam konteks memori kernel, 'paged' berarti 'bisa paged-out' dan 'nonpaged' berarti 'tidak akan pernah paged -di luar'. Yang terakhir ini penting untuk pemrograman KM ketika Anda membutuhkan memori dalam keadaan di mana sistem paging tidak dapat beroperasi (interrupt handler, misalnya).
Will Dean
Dalam konteks istilah yang Anda gunakan (saya bukan pengembang kernel, jadi saya tidak tahu yang lebih baik), saya berharap perubahan registri ini menandai seluruh kernel sebagai "non-paged" (artinya "akan tidak pernah paged-out "), dan bukan itu fungsinya. Saya hanya ingin melihat apakah orang lain memiliki harapan yang sama dengan saya, atau jika saya salah menafsirkan apa yang seharusnya dilakukan perubahan ini.
SqlRyan
3

Hanya untuk menambahkan satu penggunaan tambahan dari pengaturan ini: diperlukan oleh xperftumpukan berjalan.

http://blogs.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx

Nonaktifkan Paging Executive

Agar penelusuran berfungsi pada Windows 64-bit, Anda perlu mengatur kunci registri DisablePagingExecutive. Ini memberitahu sistem operasi untuk tidak mem-page driver mode kernel dan kode sistem ke disk, yang merupakan prasyarat untuk mendapatkan tumpukan panggilan 64-bit menggunakan xperf, karena berjalan stack 64-bit tergantung pada metadata pada gambar yang dapat dieksekusi, dan dalam beberapa situasi xperf stack walk code tidak diizinkan untuk menyentuh halaman yang telah di-paged.

Satu info tambahan tentang pengaturan. Kutipan ini dapat ditemukan melalui internet, saya tidak tahu sumber utamanya.

DisablePagingExecutive hanya berlaku untuk ntoskrnl.exe. Itu tidak berlaku untuk win32k.sys (jauh lebih besar dari ntoskrnl.exe!), Bagian halamanable dari driver lain, kumpulan halaman dan tentu saja cache sistem file. Semua yang tinggal di ruang alamat kernel dan paged ke disk. Pada sistem dengan memori rendah ini dapat memaksa kode aplikasi menjadi halaman yang tidak perlu dan mengurangi kinerja. Jika Anda memiliki RAM lebih dari cukup untuk beban kerja Anda, ya, ini tidak akan merugikan, tetapi sekali lagi, jika Anda memiliki lebih dari cukup RAM untuk beban kerja Anda, sistem tidak akan mem-paging terlalu banyak hal itu. Pengaturan ini berguna ketika men-debug driver dan umumnya direkomendasikan untuk digunakan hanya pada server yang menjalankan serangkaian aplikasi terbatas yang terkenal

Jadi orang dapat menyimpulkan bahwa selain penggunaan xperf-manfaatnya tidak jelas: Pada dasarnya itu membatasi beberapa hal "hampir acak" dari paging dan pada pemikiran lebih lanjut - akibatnya menyebabkan sesuatu yang lain lebih sering digunakan.

Roland Pihlakas
sumber
2

Tweak DisablePagingExecutive tidak berhenti paging, tujuannya adalah untuk mencegah "Eksekutif" (yaitu Kernel itu sendiri) yang paging dan dengan demikian menyebabkan seluruh sistem melambat, bukan hanya aplikasi halaman individu.

Anda dapat mencoba dan menonaktifkan paging sepenuhnya dengan menghapus semua pagefiles di System Properties (atau di HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PagingFiles). Ini bekerja dengan baik untuk saya, tetapi hal-hal menjadi agak tidak menyenangkan ketika Anda kehabisan memori fisik, dan Anda harus memiliki file halaman untuk men-debug kesalahan STOP.

Froosh
sumber
Saya telah menjalankan tanpa pagefile selama beberapa hari dan itu bekerja dengan cukup baik, Windows 7 sebenarnya menawarkan saran dari aplikasi yang haus memori untuk dibunuh ketika mulai menipis.
Froosh
1

Komponen tingkat sistem, seperti kernel, eksekutif, dan driver perangkat, dapat mengalokasikan memori dari dua kumpulan. Ini adalah kumpulan halaman, yang dapat ditempatkan pada kebijaksanaan manajer memori, dan kumpulan halaman yang harus disimpan dalam RAM setiap saat. Pengembang memutuskan sesuai dengan kebutuhannya kolam apa yang akan digunakan. Direkomendasikan bahwa paged pool digunakan sedapat mungkin karena hal ini memungkinkan manajer memori sistem fleksibilitas maksimum. Kedua kumpulan memiliki ukuran terbatas dan dalam sistem 32 bit khususnya batas ini dapat menimbulkan masalah. Kolam paged jauh lebih besar. Jika kolam non-paged digunakan secara berlebihan batas ukuran dapat dicapai dan ini akan menyebabkan beberapa masalah sistem yang serius.

Item-item yang dilabeli di Task Manager sebagai memori kernel "Paged" dan "Non paged" menunjukkan alokasi pool ini. Sama sekali tidak ada hubungannya dengan keadaan dinamis dari berapa banyak memori yang sebenarnya dihasilkan. Entri registri "DisablePagingExceutive" memengaruhi keadaan paging dinamis dari sebagian kumpulan halaman sehingga efeknya tidak akan pernah ditampilkan oleh ask Manager.

Larry Miller
sumber
1

Jika Anda melakukan perubahan pada pengaturan sistem, Anda perlu memahami informasi ini atau yang setara untuk mengetahui jenis hasil perubahan yang dibuat oleh pengaturan sistem, di mana hasilnya bisa positif, netral, atau negatif sehubungan dengan kinerja sistem.

Yang bisa Anda lakukan adalah membuka "Resource Monitor" di Windows. Buka alat pencarian dan cari 'Resource Monitor'. Atau buka alat perintah jalankan (saya akan menganggap siapa pun yang membaca ini tahu bagaimana melakukan itu) dan ketik 'resmon'.

Gunakan alat ini untuk memantau semua jenis aktivitas sistem, seperti, aktivitas CPU, Aktivitas Memori, dan Aktivitas Hard Disk. Jika Anda belum terbiasa dengan informasi yang terdapat di 'Resource Monitor', pelajarilah sedikit karena Anda harus terbiasa dengannya untuk menjalankan tes yang akan membantu Anda mengukur jenis hasil perubahan yang dibuat oleh pengaturan sistem.

Ide dasarnya adalah Anda menjalankan 'Resource Monitor' ketika sistem komputer Anda menjalankan tugas-tugas tertentu untuk mengukur hasil terkait kinerja yang membuat perubahan pada pengaturan sistem. Jalankan tugas yang menggunakan sumber daya sistem saat Anda mencoba menguji kinerja. Misalnya, ada tugas yang dapat menguji prosesor, memori RAM, hard disk, unit prosesor grafis, atau perangkat jaringan. Gunakan google untuk mengetahui cara menguji kinerja sumber daya komputer yang ingin Anda uji.

Jika misalnya, Anda membuat perubahan pada pengaturan sistem, 'Nonaktifkan Paging Executive' Anda dapat menjalankan tes pada sumber daya komputer dan menggunakan 'Resource Monitor' untuk mengukur jenis hasil perubahan apa yang dibuat (jika ada perubahan sama sekali).

Kemudian buat perbandingan antara data dan lihat apakah ada perbedaan yang signifikan antara pengaturan sistem lama dan pengaturan sistem baru yang Anda ubah.

Anda mungkin tidak selalu perlu menggunakan 'Resource Monitor' karena beberapa metode pengujian kinerja sumber daya sistem dilengkapi dengan perangkat lunak yang memantau dan mengukur untuk Anda.

Intinya adalah Anda ingin mengikuti metode sistematis untuk melihat apakah perubahan melakukan apa saja terhadap kinerja sistem Anda relatif terhadap tugas yang Anda minta agar komputer lakukan.

Ubah satu pengaturan. Uji untuk perubahan kinerja. Tentukan hasil tes. Berdasarkan hasil, putuskan apakah Anda akan mengubah pengaturan kembali ke apa itu, atau ke yang lain, atau membiarkannya di tempat itu. 1) Pengaturan 2) Tes 3) Hasil 4) Keputusan.

Anda dapat menggunakan metode deduksi logis ini untuk semua jenis penyesuaian pengaturan sistem termasuk 'Nonaktifkan Paging Executive'.

Selamat Tweaking.

WestdoX
sumber
1

Ada banyak! Dari informasi yang sangat baik pada posting ini saya terkesan. Saya perhatikan DisablePagingExecutive dengan nilai satu paling baik dilakukan di situs pertama desktop setelah instalasi bersih semua versi windows dari xp ke windows 10, 32 bit hingga 64 bit (selama ada cukup ram pada motherboard Anda) tetapi setelah nilai 1 diterapkan ke DisablePagingExecutive, nilai yang sama harus dibuat juga untuk LargeSystemCache.

Juga seperti yang disebutkan di atas tweak ini biasanya dibuat di windows server tetapi juga berguna saat debugging.

Modifikasi ini digunakan dengan risiko Anda sendiri, jadi pertimbangkan apa yang semua orang telah sebutkan di atas dan tidak ada salahnya untuk google masing-masing kunci yang disebutkan yang DisablePagingExecutive dan 1 saya tidak ingat melihat ... LargeSystemCache.

Pastikan Anda memiliki ram yang cukup. Tidak cukup ram menyebabkan masalah pada sistem Anda yang tidak ingin Anda hadapi dan mungkin akan menyebabkan layar biru (bsod) pada sistem Anda.

4gb ram akan menjadi minimum bahwa saya akan menerapkan tweak ini di atas dan itu jika Anda tidak menggunakan aplikasi intens yang menggunakan banyak ram atau jika Anda melakukan permainan apa pun, jika Anda melakukannya maka yang terbaik untuk meninggalkan ini sendirian.

(XP: minimal 256 mb ram minimum)

Sebelum Anda melakukan apa pun di registri, sebaiknya naikkan registri ke perangkat penyimpanan daripada hard drive Sistem Pengoperasian atau penyimpanan terpisah jenis APA PUN sehingga Anda dapat memulihkan registri jika diperlukan.

Info di atas saya benar-benar melintasi huruf T dan titik huruf i.

                    Make sure to backup your system.
Smirk24
sumber