Pemanfaatan CPU yang tinggi oleh proses Sistem (Ntoskrnl.exe) pada Windows

Pada salah satu komputer yang baru saja menginstal Windows 10, pengguna mulai mengeluh tentang hang konstan dan operasi OS yang lambat. Di manajer perangkat, Anda dapat melihat bahwa lebih dari 50% sumber daya prosesor digunakan oleh proses Sistem (ntoskrnl.exe) Pada artikel ini saya akan mencoba menjelaskan metode dasar untuk mendiagnosis penggunaan CPU yang tinggi dengan berbagai proses dan metode untuk mengidentifikasi komponen masalah Windows.

Situasi ketika proses Sistem menghabiskan lebih dari setengah sumber daya prosesor sistem tidak normal. File Ntoskrnl.exe sendiri adalah file kernel yang dapat dieksekusi. Ini adalah proses dasar dari sistem. Dalam kerangka kernel OS, driver sistem perangkat diluncurkan, yang kemungkinan besar merupakan sumber masalah (tidak semua driver diuji secara memadai oleh pengembang perangkat keras).

Sebagai aturan, masalah kebocoran pada kode driver dan beban yang tinggi pada prosesor, memori atau disk terjadi setelah menginstal perangkat keras baru, menginstal versi driver baru (termasuk pembaruan driver otomatis yang dapat dinonaktifkan) atau setelah upgrade Windows.

Kiat. Dalam beberapa kasus, beban yang tinggi pada prosesor dan memori dapat disebabkan oleh Sistem proses dan memori terkompresi.

Untuk memahami driver atau modul mana yang menyebabkan beban prosesor tinggi, Anda dapat menggunakan utilitas gratis Penjelajah proses. Unduh dan jalankan dengan hak administrator.

Dalam daftar proses yang berjalan, temukan prosesnya Sistem, klik kanan padanya dan buka propertinya Properti.

Buka tab Utas. Urutkan daftar modul yang dimuat oleh kernel berdasarkan tingkat pemanfaatan prosesor (kolom CPU). Sejalan Mulai alamat nama fungsi atau driver yang menyebabkan beban tinggi diindikasikan (tangkapan layar bukan dari sistem masalah).

Selain itu, untuk mengidentifikasi driver yang menyebabkan beban CPU tinggi, Anda dapat menggunakan utilitas gratis Microsoft - kernrate.exe (Kernrate Viewer). Utilitas termasuk Wdk (Windows Device Kit). Setelah menginstal WDK, Anda dapat menemukan utilitas di direktori ... \ Tools \ Other \ amd64.

Jalankan utilitas kernrate.exe tanpa argumen dan tunggu beberapa saat sementara data sedang dikumpulkan (10-15 menit), kemudian hentikan utilitas dengan menekan tombol Ctrl-c: Lihatlah daftar modul di bagian ini Hasil untuk Mode Kernel.

Seperti yang Anda lihat, dalam contoh kita, modul menyebabkan beban yang tinggi pada CPU b57nd60x. Menggunakan Google atau utilitas sigcheck (lihat contoh), Anda dapat menentukan bahwa driver kartu jaringan Broadcom NetXtream Gigabit Ethernet NDIS6.0 driver yang menyebabkan masalah.

Selain itu, Anda dapat menganalisis penggunaan CPU selama boot sistem menggunakan Windows Performance Toolkit (WPT). Anda perlu menginstal komponen dan mulai mengumpulkan data menggunakan konsol grafis Perekam kinerja Windows (Segitiga tingkat pertama + penggunaan CPU -> Mulai)

Atau lebih:

xperf -pada latensi -stackwalk profile -buffersize 1024 -MaxFile 256 -FileMode Edaran && batas waktu -1 && xperf -d cpuusage.etl

Kiat. Metode ini nyaman digunakan jika, setelah memuat, sistem benar-benar macet dan tidak mungkin bekerja di dalamnya. Kemungkinan besar, Anda juga akan menemukan artikel ini berguna untuk mendiagnosis Windows boot panjang.
File yang dihasilkan harus disimpan dan dibuka di WPA. Perluas tumpukan proses Sistem. Dalam contoh ini, terlihat bahwa beban yang tinggi pada prosesor menyebabkan pengemudi athrx.sys (Atheros Wireless Network Adapter Wi-Fi adapter).


Jadi, driver masalah telah terdeteksi. Apa yang harus dilakukan selanjutnya??

Untuk mengatasi masalah, Anda perlu mencoba menginstal versi driver yang lebih baru (atau yang lama), atau mematikan perangkat keras sepenuhnya jika masalah terjadi pada semua versi driver. Driver yang diperbarui juga dapat diperiksa dengan tes stres menggunakan Driver Verifier.