Penggunaan CPU yang tinggi oleh proses WMIPRVSE.EXE secara berkala di Windows

Gejala

Ketika Anda menggunakan komputer berbasis Windows, Anda akan memperhatikan bahwa proses Penyedia Host (WmiPrvSE.exe) Windows Management Instrumentation (WMI) menggunakan kapasitas CPU tinggi (mendekati 100 persen) untuk beberapa menit setiap 15 sampai 20 menit.

Ketika masalah ini terjadi, gunakan Pengelola Tugas untuk mengidentifikasi pengidentifikasi proses (PID) pada proses WMIPRVSE.EXE yang mengkonsumsi CPU tinggi. Kemudian, buka prompt perintah yang dielevasi dan jalankan perintah berikut ini: 

tasklist /m wmiperfclass.dll

Daftar proses WMIPRVSE.EXE yang memuat modul ini akan ditampilkan. Biasanya hanya satu proses yang terdaftar. Namun, jika Anda memiliki klien 32-bit dan 64-bit, Anda mungkin melihat dua proses. Ini adalah contoh output: 

Nama Gambar PID Modul
================    ========    ============================================
 WmiPrvSE.exe 2140 WmiPerfClass.dll 

Jika PID proses yang terdaftar cocok dengan salah satu yang Anda temukan di Pengelola Tugas, sangat mungkin bahwa Anda mengalami masalah yang dijelaskan di artikel ini.

Penyebab

Masalah ini dapat disebabkan oleh salah satu dari yang berikut ini:

Satu atau beberapa proses menggunakan sejumlah besar penanganan

Semua handle disimpan dalam struktur kernel \BaseNamedObjects. Penyedia WMIPerfClass harus memindai struktur ini saat membuat kelas kinerja yang berkaitan dengan objek Pekerjaan.

Jika struktur ini membengkak karena tingginya jumlah penanganan, operasi akan memiliki penggunaan CPU yang tinggi dan akan memakan waktu lebih lama dari normal.

Anda mungkin mengharapkan dampak untuk kondisi ini ketika proses menggunakan lebih dari sekitar 30.000 penanganan, atau jumlah total penanganan pada sistem melebihi 50.000.

Pemutakhiran yang diedarkan pada bulan Maret 2020 untuk versi sistem operasi yang didukung mencakup beberapa optimasi kinerja dan alamat beberapa varian masalah ini. Lihat riwayat Pemutakhiran Windows untuk informasi lebih lanjut tentang pemutakhiran yang berlaku untuk versi Windows Anda.

Satu atau lebih proses yang berjalan pada sistem menggunakan banyak memori

Hal ini akan memengaruhi pembuatan kelas kinerja Proses karena area memori setiap proses yang berjalan harus dipertanyakan. Memori yang digunakan oleh proses mungkin terfragmentasi, dan ini membuat operasi lebih intensif sumber daya. Hal ini terjadi karena WMIPerfClass juga menanyakan penghitung kinerja "Mahal".

Anda dapat memeriksa apakah Penghitung kinerja mahal diaktifkan dengan menjalankan perintah PowerShell berikut ini:

‎ (gwmi -query 'select * from meta_class').Name | ? { $_ -match "costly"}

Jika perintah memberikan hasil, ini menunjukkan penghitung kinerja Mahal yang diaktifkan. Misalnya:

Win32_PerfFormattedData_PerfProc_FullImage_Costly
Win32_PerfRawData_PerfProc_FullImage_Costly
Win32_PerfFormattedData_PerfProc_Image_Costly
Win32_PerfRawData_PerfProc_Image_Costly
Win32_PerfFormattedData_PerfProc_ProcessAddressSpace_Costly
Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly
Win32_PerfFormattedData_PerfProc_ThreadDetails_Costly
Win32_PerfRawData_PerfProc_ThreadDetails_Costly

Penyelesaian Masalah

Untuk memperbaiki masalah, identifikasi proses yang menggunakan sejumlah besar penanganan atau memori dalam jumlah besar. Proses mungkin memiliki kebocoran memori atau masalah kebocoran penanganan. Untuk mengatasinya, mulai ulang proses.

Secara default jika Anda menggunakan Windows Server 2016 atau versi Windows yang lebih baru, penghitung kinerja Mahal dinonaktifkan mulai dari Pembaruan Kumulatif berikut ini:

Catatan Setelah pembaruan kumulatif diinstal, jika Anda memerlukan kelas yang berkaitan dengan Penghitung kinerja yang mahal, tetapkan nilai Mengaktifkan Penyedia Mahal untuk 1 (DWORDdi bawah subkunci registri berikut ini untuk membuatnya tersedia kembali:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem

CatatanPemutakhiran kumulatif tidak akan memengaruhi perilaku ketika proses menggunakan sejumlah besar penanganan.

Di Windows Server 2012 R2 dengan 19 September 2017—KB4038774, perilaku standar adalah meninggalkan counter kinerja Yang Memakan Biaya diaktifkan.  Untuk menonaktifkannya, gunakan kunci registri Memungkinkan Penyedia yang Mahal dan atur ke 0 (dinonaktifkan).

Masalah ini terjadi ketika klien menanyakan kelas kinerja. Ini biasanya merupakan aplikasi pemantau.

Untuk mengatasinya, Anda juga dapat menonaktifkan aplikasi pemantauan untuk mencegah pembuatan kelas kinerja.

Informasi selengkapnya

WMI menyediakan beberapa kelas kinerja. Untuk informasi selengkapnya, lihat Kelas Penghitung Kinerja.

Kelas ini dibuat secara dinamis berdasarkan Penghitung Kinerja yang tersedia pada sistem. Semua kelas dibuat pada saat yang sama, tidak hanya kelas yang sedang dipertanyakan.

WMIPerfClass adalah modul yang menangani membuat kelas ini ketika klien WMI menanyakan salah satu darinya atau memuat kelas yang tersedia.

Kelas kinerja ini disimpan dalam cache yang tidak valid setelah 15 hingga 20 menit. Segera setelah cache tidak divalidasi, kelas kinerja harus dibuat lagi jika klien memintanya.

Membuat kelas kinerja berarti bahwa modul WMIPerfClass.dll akan harus dimuat dalam proses WMIPRVSE.EXE dan kode terkait dieksekusi.

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×