Windows 10, proses 'Sistem' mengambil sejumlah besar RAM

83

Sejak saya memutakhirkan ke Windows 10, sistem saya telah mengkonsumsi RAM secara berlebihan

masukkan deskripsi gambar di sini

Saya sudah membaca sedikit dan menentukan kemungkinan driver bocor memori. Jadi saya mendapatkan Windows Driver Kit dan melacak penggunaan memori dengan poolmon:

masukkan deskripsi gambar di sini

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:

masukkan deskripsi gambar di sini

Jadi ya, bantuan apa pun akan dihargai. Terima kasih sebelumnya.

Nayncore
sumber
1
ok, saya menambahkan informasi yang dapat ditemukan. Periksa mereka
magicandre1981
1
Ini adalah fitur sistem untuk benar-benar menyimpan lebih banyak hal dalam RAM dengan menggunakan kompresi daripada paging ke disk. @ magicandre1981 memiliki info yang benar di sini yang harus diterima sebagai jawaban yang benar.
Mani Gandham
14 megabyte yang ditampilkan poolmon dikaitkan dengan tag smNp adalah jumlah yang sepele. Anda khawatir tentang 1,3 GB di set proses kerja sistem Pribadi - mengapa fokus pada 14 MB kumpulan non-halaman (yang sama sekali tidak ada dalam set kerja proses apa pun)?
Jamie Hanrahan

Jawaban:

13

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 .

sarang
sumber
1
Ini sebenarnya berhasil. Penggunaan memori untuk Sistem kembali ke ~ 0.1MB bahkan setelah jam penggunaan. Terima kasih!
Nayncore
26
Walaupun biasanya penggunaan memori yang sedemikian tinggi akan menjadi bendera merah untuk kebocoran memori, memori ini digunakan secara sah sebagai FITUR Windows 10 (lihat jawaban magicandre di bawah).
Bigbio2002
7
itu bukan bug dan tidak boleh dinonaktifkan
phuclv
6
Jika fitur ini menyebabkan peringatan rendah memori konstan, itu bukan fitur yang baik. Sekarang Surface Pro saya dengan RAM 4GB benar-benar tidak dapat digunakan untuk pengembangan dan bahkan pada laptop dengan RAM 8GB saya selalu mendapatkan peringatan itu. Jempol untuk solusi!
Oleg I.
94

Saya telah melihat jejak xperf dari beberapa pengguna dan di sini fungsi ntoskrnl.exe!SmKmStoreHelperWorkerKernel mulai mengalokasikan memori.

Tangkapan layar
(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 :

Di Windows 10, kami telah menambahkan konsep baru di Memory Manager yang disebut toko kompresi, yang merupakan kumpulan memori yang terkompresi di dalam memori. Ini berarti bahwa ketika Manajer Memori merasakan tekanan memori, itu akan mengkompres halaman yang tidak digunakan alih-alih menuliskannya ke disk. Ini mengurangi jumlah memori yang digunakan per proses, memungkinkan Windows 10 untuk mempertahankan lebih banyak aplikasi dalam memori fisik sekaligus. Ini juga membantu memberikan respons yang lebih baik di Windows 10. Toko kompresi hidup dalam rangkaian proses Sistem.Karena proses sistem menyimpan penyimpanan dalam memori, set kerjanya tumbuh lebih besar tepat ketika memori tersedia untuk proses lain. Ini terlihat di Task Manager dan alasan proses Sistem tampaknya memakan lebih banyak memori daripada rilis sebelumnya.

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.

Rupanya, alasan untuk ini terjadi karena Microsoft memilih untuk menangguhkan aplikasi UWP ketika mereka tidak berada di latar depan, sangat mirip dengan beberapa manajemen OS smartphone. Pengguna Windows 8 mengerti (mungkin tidak) bahwa jika aplikasi tidak ada di layar, mereka tidak akan berjalan sampai pengguna kembali ke mereka. Pendekatan 'semua atau tidak sama sekali' sedang diperbarui dengan Windows 10 memperkenalkan lapisan antara aktivitas halaman dan aktivitas halaman normal. Sekarang, ketika dihadapkan dengan masalah tekanan memori, MM akan menentukan halaman mana yang harus dipindahkan ke daftar yang dimodifikasi dalam proses yang disebut pemangkasan.Daftar yang diubah adalah daftar file halaman sekunder yang mencadangkan daftar file halaman siaga. Daftar cadangan diambil jika memori diambil kembali dari daftar siaga oleh proses lain, dan proses aslinya mencari halamannya. Alih-alih semua atau tidak sama sekali, Windows 10 MM akan mengkompres halaman yang tidak digunakan daripada menulisnya ke disk. Dengan lebih sedikit penulisan, hasilnya akan lebih sedikit operasi disk - berkat kompresi - dan sekarang lebih banyak data dapat disimpan dalam memori.

masukkan deskripsi gambar di sini

Menurut tim Windows, “ Dalam praktiknya, memori yang dikompresi mengambil sekitar 40% dari ukuran yang tidak terkompresi, dan sebagai akibat dari perangkat yang biasa menjalankan beban kerja yang khas, Windows 10 menulis halaman ke disk hanya 50% sesering versi sebelumnya dari OS. “Jika semuanya berjalan sesuai rencana, pengguna Windows dapat mengalami pengurangan waktu tunggu untuk semua perangkat serta masa hidup yang diperpanjang pada sistem yang memiliki hard drive berbasis flash .

Dekompresi juga sesuatu yang dirancang untuk dilakukan dengan baik oleh Windows 10. Windows 10 menggunakan kombinasi kemampuan paralel dan pembacaan sekuensial untuk menghasilkan halaman ke dalam memori yang dulu disebut. Dekompresi baru harus menghasilkan pengalaman yang lebih cepat karena Windows 10 secara bersamaan mendekompresi data dan membacanya secara paralel menggunakan beberapa CPU. Versi Windows yang lebih lama mungkin terasa lamban karena kecepatan transfer antar disk.

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

Dalam video ini Mehmet Iyigun meluangkan waktu membahas mengapa proses Sistem pada Windows 10 mengambil sedikit lebih banyak memori dan mengapa itu hal yang baik. Sebuah proses mengambil lebih banyak memori terdengar seperti hal yang buruk - itu sampai saya lebih mengerti tentang manajemen memori, paging, dan kesalahan halaman keras / lunak. Ternyata OS melakukan beberapa optimasi pintar yang memungkinkan proses Anda untuk memangkas sebagian memori tetapi tidak harus mengeluarkannya ke disk. Tidak hanya memori yang disimpan dalam RAM, tetapi juga dikompresi - membuat kesalahan halaman yang keras menjadi lebih jarang terjadi. Hasilnya harus membuat pengalaman yang lebih tajam.

Di TH2 Builds terbaru, Microsoft memperbarui deskripsi di task manager dan sekarang juga menunjukkan bahwa proses SISTEM host compressed memory:

masukkan deskripsi gambar di sini

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 Compressionuntuk tidak lagi membingungkan pengguna mengapa SISTEM memiliki penggunaan memori yang begitu besar:

masukkan deskripsi gambar di sini

Tapi sepertinya Taskmgr tidak menunjukkan proses ini, hanya ProcessExplorer / ProcessHacker yang dapat menunjukkannya. Taskmgr hanya menunjukkan jumlah memori terkompresi dalam ikhtisar:

masukkan deskripsi gambar di sini

Jika Anda mengarahkan kursor ke grafik memori yang digunakan di Taskmgr Anda melihat tooltip yang menunjukkan jumlah data yang dikompresi.

masukkan deskripsi gambar di sini

Dalam demo ini 388MB dikompresi menjadi 122MB sehingga 267MB disimpan dengan kompresi.

magicandre1981
sumber
9
@Zaibis: Saya pikir idenya adalah Anda tidak "menjatuhkan 1GB". 1GB telah dipesan oleh Windows dan akan digunakan untuk alokasi. Anda belum kehilangan ingatan.
Lightness Races di Orbit
12
"Memori yang tidak terpakai adalah memori yang terbuang" telah lama menjadi mantra OS X. Sepertinya Windows juga ikut aktif.
menipu tanggal
1
@ magicandre1981 Apa yang Anda maksud denganSystem Memory compression
user2284570
2
Saya tidak bisa menjawab ini secara detail. Saya hanya mendapatkan informasi bahwa itu adalah desain, ada hubungannya dengan kompresi memori dan ini akan dijelaskan oleh blogpost. Ketika saya mendapatkan informasi baru, saya akan memperbarui posting saya.
magicandre1981
2
@JosiahKeller Dialog "memori rendah" adalah tentang memori virtual yang rendah. Ini hampir tidak ada hubungannya dengan penggunaan, atau ketersediaan, memori fisik (RAM). Mereka diperhitungkan secara terpisah oleh semua OS desktop modern.
David Schwartz
0

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.

Penggunaan Memori Sistem pada 13GB

Proses Sistem di atas sebelumnya pada 24GB penggunaan, dan tiga perilaku berikut diamati:

  1. Setelah reboot dan masuk kembali, sistem akan menggantung selama beberapa waktu di layar kosong hingga desktop muncul.
  2. Selama hang ini, menarik Task Manager (CTRL-SHIFT-ESC) menunjukkan penggunaan memori Sistem meningkat.
  3. Selama hang ini, disk dengan Volume Snapshots melakukan banyak pembacaan yang tidak muncul di Monitor Kinerja. Padahal, karena disk tersebut menggunakan iSCSI, kartu jaringan menunjukkan aliran baca stabil sekitar 200 Mbps.

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).

Brain2000
sumber
-1

Nonaktifkan prefetcher di kunci regedit: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParametersAnda mungkin memiliki Enable Prefetchernilai 2atau 3jadi ubah ke0

Selanjutnya Anda perlu menonaktifkan Superfetchlayanan

  1. Cari services.msc

  2. Temukan superfetchklik propertieskemudian atur untuk disableddan hentikan layanan juga.

Saya melakukan langkah-langkah ini dan ketika saya bermain game dan biasanya menggunakan PC dan systemprosesnya hanya menggunakan 28k

Grzesiek Grzychu Góra
sumber
12
Ini ide yang mengerikan. Prefetch / superfetch digunakan karena suatu alasan. Jika Anda pikir Anda dapat mengelola memori lebih baik daripada OS Anda, Anda sayangnya salah.
b1nary.atr0phy
Menonaktifkan prefetch (atau "membersihkan folder prefetch Anda") memang ide yang sangat konyol. Prefetch tidak menyebabkan sistem menggunakan lebih banyak RAM. Ini mempercepat pemuatan exe dan lain-lain begitu Anda memulainya , dan hanya kemudian. Re SuperFetch, Microsoft menonaktifkan SuperFetch secara default pada sistem dengan SSD untuk drive Windows; mereka merasa manfaatnya tidak sepadan. Secara pribadi saya tetap mengaktifkannya karena saya memiliki drive lain, non-SSD, yang saya ingin SF tetap beroperasi.
Jamie Hanrahan