Apa penyebab penggunaan CPU tinggi 'sistem dan memori terkompresi' di Windows 10?

39

Ada pengamatan yang dibuat untuk Windows 10 pada laptop saya berjalan dengan memori 24G tersedia, dan 2.5G digunakan. Tidak ada 'tekanan memori'. Pertanyaan lain telah melihat konsumsi memori (yang bukan masalah di sini). Dalam semua pertanyaan terkait di sini dan di tempat lain, saya belum dapat menemukan penjelasan yang memadai untuk masalah pemanfaatan cpu berlebihan ini selama satu atau dua bulan terakhir setelah salah satu dari pembaruan Windows 10.

Saya dapat menerima bahwa ada nilai dalam layanan atau proses ini, tetapi untuk terus berjalan, dan menggunakan sumber daya cpu tambahan, dan sebagai konsekuensinya, menggunakan daya baterai kurang efisien, itulah masalah yang saya coba selesaikan.

Dalam beberapa artikel di situs ini, disarankan agar saya mematikan SuperFetch, dan mengatur entri registri untuk PrefetchParameters ke 0. Saya melakukan keduanya dan melakukan reboot.

Saya me-reboot mesin, mematikan screen saver, dan memulai task manager. Setelah beberapa menit, layanan berlabel 'Sistem dan memori terkompresi' mulai mengambil 5% dari CPU saya, secara konsisten. Pemanfaatan cpu basis saya mungkin 1%, yang membuat kipas tetap rendah. Tetapi ketika layanan 'sistem dan memori terkompresi' berjalan di 5%, para penggemar meningkat. Dan terus berjalan.

Konyol. Mengapa layanan itu harus berjalan secara konsisten seperti itu tanpa tekanan memori? Adakah mekanisme tambahan yang dapat saya coba untuk mematikannya atau menentukan apa yang sebenarnya ia lakukan? Apakah ada entri file log di suatu tempat? Atau alat diagnostik yang mendalam?

cara-menonaktifkan-windows-10-memori-kompresi - tidak ada jawaban nyata di sini

windows-10-sistem-proses-mengambil-besar-besaran ram

17993-windows-10-memory-compression

desktop-build-10525-and-windows-10-memory

www.techish.net/system-and-compressed-memory/

windows-10-build-1511-overheating-cpu-fan-always

Windows Performance Recorder - sekarang memerlukan tautan untuk info tentang cara menafsirkan info tersebut

perawatan scrub

Raymond Burkholder
sumber
1
Ya, saya tidak pernah mengerti mengapa Windows menggunakan pagefile ketika ada banyak memori, menonaktifkan pagefile dapat memecahkan masalah Anda, saya ingin tahu.
Moab
1
Kemungkinan duplikat Windows 10, proses 'Sistem' mengambil RAM dalam jumlah besar
magicandre1981
@ Moab: Persepsi bahwa Windows "menggunakan pagefile ketika ada banyak memori" berasal dari label yang salah pada task manager Windows XP - mereka memberi label pada grafik "penggunaan PF" ketika seharusnya "melakukan charge". Jika Anda menggunakan PerfMon untuk memeriksa penggunaan pagefile yang sebenarnya, Anda biasanya akan menemukannya jauh lebih kecil dari yang diharapkan.
Jamie Hanrahan
2
menangkap jejak penggunaan CPU. Instal WPT dari Win10 SDK: dev.windows.com/en-us/downloads/windows-10-sdk, jalankan WPRUI.exe, pilih CPU, Disk, VirtualAlloc, ResidentSet dan ambil 1-2 menit dari penggunaan sistem dan simpan itu menjadi file ETL. Zip ETL + folder NGENPDB menjadi file 7z / RAR, unggah file terkompresi ke OneDrive, buat tautan berbagi, dan poskan tautan berbagi di sini
magicandre1981
@ magicandre1981: terima kasih telah menawarkan metodologi yang mungkin. File ini dapat ditemukan di oneunified.net/files/rpb.20160102.WPR.7z . Jika Anda melihat sesuatu, apakah Anda dapat memposting metodologi Anda? Saya yakin banyak posting lain di sekitarnya dapat menggunakan teknik ini. ... lagi thanx.
Raymond Burkholder

Jawaban:

26

Menganalisis file ETL dengan WPA menunjukkan, bahwa penggunaan CPU tidak berasal dari kompresi memori sistem. Itu berasal dari ntoskrnl.exe!MiScrubMemoryWorker:

Line #, DPC/ISR, Process, Stack Tag, Stack, Count, TimeStamp (s), % Weight
8, , , ,    |    |    |- ntoskrnl.exe!MiScrubMemoryWorker, 79667, , 12,45
9, , , ,    |    |    |    ntoskrnl.exe!MiScrubNode, 79667, , 12,45
10, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePages, 79667, , 12,45
11, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePageList, 79667, , 12,45
12, , , ,   |    |    |    |- ntoskrnl.exe!MiScrubPage, 79663, , 12,45
13, , , ,   |    |    |    |    |- ntoskrnl.exe!RtlScrubMemory, 79653, , 12,45
14, , , ,   |    |    |    |    |    |- ntoskrnl.exe!RtlpGenericRandomPatternWorker, 38549, , 6,02

Ini adalah fungsi untuk menguji memori untuk kesalahan dengan mengisi / membaca beberapa pola ( ntoskrnl.exe!RtlpGenericRandomPatternWorker).

Ini adalah desain dan terjadi ketika tugas pemeliharaan idle muncul ketika perangkat Anda menganggur.

magicandre1981
sumber
Terima kasih untuk itu. Itu menyoroti aktivitas tersebut. Sekarang Anda menyebutkan kata idle, dua komentar dapat dibuat. 1) File ETI yang Anda evaluasi dibuat ketika saya aktif di konsol, dan cpu sekitar 10% hingga 15% untuk 'sistem dan memori terkompresi', dan akhirnya berakhir. Jadi saya bisa menangkap beberapa jenis aktivitas. Dan Anda telah mengevaluasinya untuk pemeliharaan idle. 2) dalam komentar berikutnya ....
Raymond Burkholder
10
Untuk penutupan, pada Win 10, saya pergi ke: Start-> Control Panel-> Administrative Tools-> Task Scheduler Task Scheduler Library-> Microsoft-> ​​Windows-> MemoryDiagnostic Ada dua item baris. Menjalankan tugas mungkin tergantung pada peristiwa log. Saya tidak yakin apakah mereka hanya harus ada, atau apakah mereka memicu pada saat masuk ke log. Saya menonaktifkan RunFullMemoryDiagnosticEntry. Saya tidak lagi melihat pemanfaatan 5% hingga 12% setelah penundaan beberapa menit. Di properti dari Task, pada tab pengaturan, mungkin dimungkinkan untuk menyesuaikan hal-hal agar tidak sering berjalan. .... menguji waktu lain.
Raymond Burkholder
2
senang mendengar bahwa itu memecahkan masalah Anda.
magicandre1981
1
Untuk menambahkan komentar, saya memiliki 2 tugas yang ditetapkan - RunFullMemoryDiagnostic dan ProcessMemoryDiagnosticEvents, yang paling penting adalah yang kedua. Itu 4 pemicu diaktifkan - "Log: Sistem, Sumber: Aplikasi Popup", "Log: Aplikasi, Sumber: Kesalahan Aplikasi" dan dua yang tersisa. Menonaktifkan 2 pemicu menyelesaikan masalah saya, masalahnya adalah beberapa aplikasi yang saya kembangkan menulis ke kesalahan Log Kejadian dan yang menyebabkan pemeriksaan memori. Dua pemicu yang tersisa sepenuhnya terkait sistem sehingga lebih baik untuk tidak menonaktifkannya
zihotki
3
ok troll menurunkannya. Ya, xperf / WPR / WPA adalah barang ahli Level 500 jadi bukan untuk Anda facepalm
magicandre1981
9

Pertama, kembali. Penggunaan CPU: Proses "Sistem dan memori terkompresi" (ini bukan layanan) melakukan banyak fungsi. Hanya karena Anda melihatnya menggunakan waktu CPU tidak berarti itu melakukan pekerjaan mengompresi konten memori. Untuk mengetahuinya, gunakan Process Explorer untuk menemukan nama fungsi utas dalam proses yang menggunakan waktu CPU. Anda harus mengonfigurasi simbol di Process Explorer untuk melakukan ini, seperti yang dijelaskan dalam jawaban ini .

Memori yang sedang dikompresi adalah memori yang tadinya

  • bagian dari set proses kerja pribadi (yaitu dibagikan dengan proses lain); dan
  • dimodifikasi ketika sedang dalam proses itu; dan
  • kemudian hilang dari proses karena penggantian halaman, dan memakai daftar halaman yang Dimodifikasi. (Algoritma ini belum secara substansial diubah untuk Windows 10. Anda tidak mendapatkan penggantian halaman lagi dari sebelumnya.)

Sekarang ... jika Anda tidak memiliki pagefile, itu hanya akan tetap pada daftar halaman yang dimodifikasi (sampai proses berakhir). (Harap dicatat: Menonaktifkan pagefile Anda tidak akan mengubah perilaku yang sejauh ini dijelaskan.)

Jika Anda memang memiliki pagefile (yang tentu saja sangat disarankan), tingkah lakunya berbeda antara Windows 10 dan versi sebelumnya.

  • Sebelum Windows 10, itu akan segera ditulis ke file halaman dan halaman fisik akan dipindahkan ke daftar halaman Siaga. Ini dilakukan oleh utas "penulis halaman yang dimodifikasi" dalam proses Sistem.

  • Dengan Windows 10, pertama kali dikompresi (mengambil sekitar setengah ruang sebanyak dulu) dan disimpan di ruang alamat mode pengguna dari proses Sistem (sekarang disebut "Sistem dan memori terkompresi"). Jika perlu untuk mengosongkan memori maka dapat ditulis ke file halaman dan dirilis untuk penggunaan lain. (Perhatikan bahwa manfaat kompresi ruang berlaku untuk ruang pagefile dan waktu I / O juga.)

Jadi, sungguh, ini hal yang baik. Namun banyak memori tambahan yang Anda lihat digunakan oleh proses Sistem, baik, sebelum Windows 10, sekitar dua kali lebih banyak dari daftar halaman yang dimodifikasi atau daftar siaga. Tentu saja itu tidak akan mengambil lebih banyak ruang daripada biasanya.

Anda dapat (per pengujian terbaru saya) menonaktifkan mekanisme ini dengan menyingkirkan pagefile Anda, tetapi ini tidak akan mempengaruhi perilaku penggantian halaman; halaman pribadi yang dimodifikasi yang didorong keluar dari proses hanya akan tidak memenuhi syarat untuk dibebaskan untuk penggunaan lain, dan alih-alih berada dalam proses Sistem, memori (sekitar dua kali lebih banyak darinya) hanya akan duduk di MPL.

Jamie Hanrahan
sumber
Dalam proses explorer, tanpa simbol debug dimuat, saya mendapatkan sesuatu: ntoskrnl.exe! CcCopyWriteWontFlush + 0xb50 Akankah lebih detail keluar dari itu jika saya menambahkan simbol? Ada 12 contoh, dengan satu mengklaim 12,5% CPU. Itu milik proses sistem.
Raymond Burkholder
@RaymondBurkholder Anda mungkin mendapatkan informasi lebih lanjut dengan melihat tumpukan utas.
Daniel B
@DanielB: ya, itu dari tab Threads di pop up dari melihat properti dari proses Sistem di PID 4 di Process Explorer. Klarifikasi: tombol tumpukan tidak menunjukkan apa-apa, tetapi tombol Modul menunjukkan itu dari file ntkmlmp.exe tanggal 2015-11-22. Yang kupikir adalah perkiraan tanggal cpu ekstra ini dimulai.
Raymond Burkholder
Itu hanya tanggal pembaruan Windows terakhir mempengaruhi file ini. Bagaimanapun, ini adalah komponen sistem.
Daniel B
@RaymondBurkholder Tampilan "StartAddress" tanpa simbol yang dikonfigurasi tidak berguna. Saat Anda melihat nama simbol (seperti "CcCopyWriteWontFlush") plus offset ("+ 0xb50"), nama simbol hampir pasti salah. Yang Anda inginkan adalah mis. Ntoskrnl.exe! ExpWorkerThread, tanpa offset ditampilkan. Oh ... Anda akan melihat offset untuk modul yang MS-nya tidak menyediakan simbol - hampir selalu ini adalah driver pihak ketiga. Mereka ditampilkan sebagai moduleName + offset, seperti nvhda64v.sys + 0x30ac. Kami tidak bisa mendapatkan simbol untuk itu, tetapi nama modul saja sering membantu dalam men-debug kasus.
Jamie Hanrahan
3

Mungkin perangkat lunak "Killer Network Manager". Jika Anda menghapusnya, masalahnya hilang, tetapi jaringan juga menghapus instalan driver adaptor jaringan juga. Yang bagus baru, ada perbaikan.

Pertama, buka http://www.killernetworking.com/support/driver-downloads/item/killer-suite dan unduh versi baru, tetapi belum menginstalnya. Simpan saja dan ketahui di mana file itu berada.

Kemudian, hapus instalan versi saat ini melalui panel kontrol. Anda harus me-restart komputer. Setelah komputer kembali, jalankan penginstal perangkat lunak baru. Versi baru yang dirilis Januari 2016, tampaknya tidak memiliki masalah yang sama.

Saya pikir versi lama dari perangkat lunak memiliki kebocoran memori yang menyebabkan masalah ini.

Hanya sebagai FYI, perangkat lunak "Killer Network Manager" adalah bagian dari Qualcomm Aethos Killer Wireless-AC / Wireless-N dan kartu jaringan kabel E2200 / E2400. Tanpa perangkat lunak, Anda tidak memiliki internet.

McPlot
sumber
Tanpa pengemudi Anda tidak memiliki internet. Anda bisa mendapatkan driver tanpa semua kesalahan dan kesalahan penggunaan yang menurut pabrikan Anda butuhkan. Bagian bawah halaman Anda terhubung memberi Anda link download driver-satunya dari killernetworking.com/support/driver-downloads/standard-drivers
Mokubai
2

Saya memiliki masalah yang sama setelah baru-baru ini memutakhirkan ke Windows 10. Mouse saya tiba-tiba akan mulai berhenti, yaitu menyentak ketika saya memindahkannya di layar yang membuatnya sangat sulit untuk digunakan.

Saya memeriksa penggunaan CPU di Task Manager dan mencatat bahwa masalah terjadi ketika proses "Sistem dan Memori Terkompresi" mulai mengkonsumsi dari 5-15% dari CPU. Saya menjalankan Process Explorer dan memeriksa utas dan seperti Raymond, saya perhatikan bahwa penyebab utamanya adalah CcWriteCopyWontFlush dengan offset 0xb50. Sedikit Googling membawa saya ke halaman ini. Saya mencoba menginstal simbol Windows seperti yang disarankan di sini, tetapi tidak pernah membantu saya menyelesaikan offset.

Masalahnya juga sporadis. Saya akan bekerja selama beberapa jam dan kemudian mulai muncul selama beberapa menit, hidup dan mati, membuat saya gila. Reboot akan menyembuhkannya untuk sementara dan kemudian akan kembali.

Dari jawaban di sini saya memutuskan untuk memburu driver pada PC saya, jadi saya mulai dengan Device Manager dan di situlah saya mendapatkan jawaban saya. Ketika masalah terjadi, jendela Device Manager saya akan terus kosong dan menyegarkan, seperti setiap atau dua detik. Itu pada dasarnya tidak dapat dibaca. Lebih banyak Googling menyarankan perangkat USB eksternal menghubungkan dan menghubungkan kembali. Saya mengikatnya ke telepon Samsung saya yang saya isi dari PC saya setiap hari melalui kabel yang terhubung ke port USB. Saya juga menggunakan PC dan MyPhoneExplorer untuk menyinkronkan ponsel saya dengan Outlook sehingga saya memiliki beberapa drive yang dipetakan ke RAM internal dan eksternal ponsel saya, menggunakan driver Samsung untuk PC. Saya bisa melihat drive ini muncul dan sering menghilang di Device Manager.

Ponsel saya adalah Galaxy S2 dan berumur sekitar 4 tahun dan saya mengalami masalah koneksi pada port microUSB selama lebih dari setahun. Itu mungkin menjelaskan sifat masalah sporadis, atau mungkin driver PC Samsung jelek untuk ponsel saya. Jika itu hanya kabel, saya tidak tahu mengapa me-reboot menyembuhkan masalah untuk sementara waktu, jadi itu masih sedikit misteri, tapi setidaknya saya tahu sumbernya dan saya bisa memperbaikinya.

Memutuskan sambungan telepon saya adalah cara termudah untuk menyelesaikan masalah, dan saya akan membuangnya karena sudah sangat tua. Jadi saya bertanya-tanya apakah Raymond juga memiliki driver perangkat Samsung dengan perangkat lunak serupa yang berjalan di PC-nya. Raymond, jika Anda masih memeriksa, beri tahu saya.

Seperti yang saya sebutkan kabel telah jelek untuk sementara waktu, sejak sebelum upgrade dari Windows 7 ke Windows 10, dan perangkat lunak Samsung selalu mengerikan, tetapi pada Windows 7 keretakan tidak mempengaruhi operasi PC saya yang lain. Di Windows 10, itu membuat mouse jadi tersentak-sentak, sehingga menjadi hampir tidak dapat digunakan. Saya memiliki waktu yang sangat sulit mencoba mendarat pada target, dan saya pikir keyboard juga terpengaruh juga dengan penekanan tombol yang terlewatkan. Sungguh aneh bagaimana faktor-faktor ini saling terkait dan saya tidak tahu apa yang harus disarankan kepada Microsoft tentang peningkatan Windows 10, tapi sekarang saya merasa Windows 10 agak "halus". Gunakan dengan hati-hati.

MartinF
sumber