Sejak saya memutakhirkan ke Windows 10, sistem saya telah mengkonsumsi RAM secara berlebihan
Saya sudah membaca sedikit dan menentukan kemungkinan driver bocor memori. Jadi saya mendapatkan Windows Driver Kit dan melacak penggunaan memori dengan poolmon:
Namun, saya tidak benar-benar tahu bagaimana melanjutkan dari sini. Apakah item tersebut ditandai "smNp" penyebab dalam masalah ini? Bagaimana saya pergi dari sana untuk benar-benar mengidentifikasi pengemudi?
Saya mencoba beberapa hal seperti "C: \ Windows \ System32 \ drivers> findstr / s smnp . " Tetapi tidak mengembalikan hasil. Saya juga melihat file pooltag.txt dan ini adalah deskripsi yang saya temukan untuk itu:
Jadi ya, bantuan apa pun akan dihargai. Terima kasih sebelumnya.
windows
memory
drivers
windows-10
memory-leaks
Nayncore
sumber
sumber
Jawaban:
Dengan masuk ke
services.msc
(via Win+R) dan menonaktifkan Superfetch sepenuhnya menyelesaikan ini. Saya tidak yakin apakah Superfetch rusak seperti sekarang atau "sesuai desain".Selain itu, tampaknya menyingkirkan file paging akan memiliki efek yang sama tetapi solusi di atas adalah taruhan yang lebih aman .
sumber
Saya telah melihat jejak xperf dari beberapa pengguna dan di sini fungsi
ntoskrnl.exe!SmKmStoreHelperWorker
Kernel mulai mengalokasikan memori.(Klik gambar untuk memperbesar)
Saya menemukan ini di sysinternals .
Saya sudah bertanya kepada Microsoft tentang hal itu dan jawabannya adalah ini sesuai desain. Ini terkait dengan kompresi Memori Sistem.
Dalam pengumuman Windows 10 Build 10525, Microsoft menjelaskannya sedikit :
Jadi alih-alih menulis data memori ke pagefile justru mengompresnya. Dan memori terkompresi ini ditampilkan dalam proses Sistem.
Microsoft juga memposting rincian lebih lanjut di hub bagian dalam. Winbeta membuat artikel yang memuat lebih banyak detail.
Microsoft juga merilis Video on channel9 yang menjelaskan fitur tersebut.
Kompresi Memori di Windows 10 RTM
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM
Di TH2 Builds terbaru, Microsoft memperbarui deskripsi di task manager dan sekarang juga menunjukkan bahwa proses SISTEM host
compressed memory
:untuk menghindari kebingungan tentang penggunaan "tinggi".
Dalam Pembaruan Ulang Tahun Jendela 10 yang dirilis pada Agustus 2016, Microsoft mengekstraksi Kompresi menjadi sekarang ditampilkan dalam proses semu yang dipanggil
Memory Compression
untuk tidak lagi membingungkan pengguna mengapa SISTEM memiliki penggunaan memori yang begitu besar:Tapi sepertinya Taskmgr tidak menunjukkan proses ini, hanya ProcessExplorer / ProcessHacker yang dapat menunjukkannya. Taskmgr hanya menunjukkan jumlah memori terkompresi dalam ikhtisar:
Jika Anda mengarahkan kursor ke grafik memori yang digunakan di Taskmgr Anda melihat tooltip yang menunjukkan jumlah data yang dikompresi.
Dalam demo ini 388MB dikompresi menjadi 122MB sehingga 267MB disimpan dengan kompresi.
sumber
System Memory compression
Saya menemukan kasus pencilan yang menyebabkan penggunaan memori Sistem tinggi, dan ingin memasukkannya jika informasi ini bermanfaat bagi siapa pun.
Jika Anda sangat memanfaatkan Volume Snapshots Microsoft (snapshot perangkat lunak, bukan snapshot perangkat keras), semakin banyak snapshot yang Anda kombinasikan dengan perubahan data yang besar , maka Sistem akan mengkonsumsi lebih banyak RAM.
Biasanya jumlah RAM yang digunakan untuk Volume Snapshots kecil dan tidak akan diketahui, kecuali jika Anda memiliki volume raksasa (yaitu 64 TB) dengan delta multi-terabyte di antara snapshots. Secara default, snapshot hanya akan menghapus diri mereka sendiri jika menulis IO terlalu tinggi, tetapi ada cara untuk mencegahnya, memungkinkan Anda untuk mencapai delta besar.
Di bawah ini adalah kasus ekstrem yang menunjukkan proses Sistem server menggunakan 13GB RAM. Server ini hanya memiliki dua Volume Snapshots, yang diambil 15 hari terpisah, dengan sekitar 10 TB data ditulis di antara setiap snapshot.
Proses Sistem di atas sebelumnya pada 24GB penggunaan, dan tiga perilaku berikut diamati:
Saya menduga Volume Snapshots, jadi saya mencoba menghapus snapshot tertua yang langsung menurunkan penggunaan memori Sistem dari 24 GB menjadi 13 GB.
Dalam keadaan ini mungkin ini perilaku normal, meskipun saya belum mengkonfirmasi ini dengan Microsoft. Sementara itu saya akan menambahkan 32 GB RAM tambahan ke server ini untuk menangani overhead Snapshot.
(Catatan: ini adalah server cadangan volume tinggi yang menjalankan Windows 2016 dengan drive iSCSI SSD 64 TB terpasang. Ia mempertahankan rata-rata tiga snapshot volume pada waktu tertentu, dengan yang baru dibuat setiap 15 hari. Ada sekitar 10 TB dari data ditulis di antara setiap snapshot).
sumber
Nonaktifkan prefetcher di kunci regedit:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
Anda mungkin memilikiEnable Prefetcher
nilai2
atau3
jadi ubah ke0
Selanjutnya Anda perlu menonaktifkan
Superfetch
layananCari services.msc
Temukan
superfetch
klikproperties
kemudian atur untukdisabled
dan hentikan layanan juga.Saya melakukan langkah-langkah ini dan ketika saya bermain game dan biasanya menggunakan PC dan
system
prosesnya hanya menggunakan 28ksumber