Elevato utilizzo della CPU da WMIPRVSE.EXE processo a intervalli regolari in Windows

  • 11/16/2020
  • 3 minuti per leggere
    • D
    • x

Questo articolo fornisce una soluzione per il problema di elevato utilizzo della CPU da WMIPRVSE.Processo EXE a intervalli regolari.,

Versione originale del prodotto: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Window 10-tutte le edizioni
Numero KB originale: 4483874

Sintomi

Quando si utilizza un computer basato su Windows, si nota che l’host del provider WMI (Windows Management Instrumentation) (WmiPrvSE.exe) processo utilizza elevata capacità della CPU (vicino al 100 per cento) per diversi minuti ogni 15 a 20 minuti.

Quando si verifica il problema, utilizzare Task Manager per identificare l’identificatore di processo (PID) del WMIPRVSE.Processo EXE che consuma CPU elevata., Quindi, aprire un prompt dei comandi elevato ed eseguire il seguente comando:

tasklist /m wmiperfclass.dll

L’elenco di WMIPRVSE.Verranno visualizzati i processi EXE che hanno caricato questo modulo. Di solito è elencato solo un processo. Tuttavia, se si dispone di client a 32 e 64 bit, è possibile visualizzare due processi. Questo è un esempio di output:

Nome immagine Moduli PID
========== ======== ==========================
WmiPrvSE.classe exe 2140 WMIPERF.,dll

Se il PID del processo elencato corrisponde a quello trovato in Task Manager, è probabile che si verifichi il problema descritto in questo articolo.

Causa

Questo problema può essere causato da uno dei seguenti fattori.

Uno o più processi utilizzano un numero elevato di handle

Tutti gli handle sono memorizzati nella struttura del kernel \BaseNamedObjects. Il provider WMIPerfClass deve eseguire la scansione di questa struttura quando si crea la classe di prestazioni correlata agli oggetti Job.,

Se questa struttura è gonfia a causa dell’elevato numero di maniglie, l’operazione avrà un elevato utilizzo della CPU e richiederà più tempo del normale.

Si può prevedere un impatto per questa condizione quando un processo utilizza più di circa 30.000 maniglie, o il numero totale di maniglie sul sistema supera 50.000.

Un aggiornamento rilasciato a marzo 2020 per le versioni del sistema operativo supportate include alcune ottimizzazioni delle prestazioni e risolve alcune varianti di questo problema. Fare riferimento alla cronologia aggiornamenti di Windows per ulteriori informazioni sull’aggiornamento che si applica alla versione di Windows.,

Uno o più processi in esecuzione sul sistema utilizzano molta memoria

Ciò influisce sulla creazione delle classi di prestazioni del processo perché l’area di memoria di ciascun processo in esecuzione dovrà essere interrogata. La memoria utilizzata dal processo potrebbe essere frammentata e ciò rende l’operazione più dispendiosa in termini di risorse. Ciò accade perché WMIPerfClass sta anche interrogando i contatori delle prestazioni “costosi”.,

È possibile verificare se i contatori di prestazioni costosi sono abilitati eseguendo il seguente comando PowerShell:

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

Se il comando restituisce risultati, questo indica i contatori di prestazioni costosi abilitati.,d=”77921f1d55″>

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

Soluzione

Per risolvere il problema, identificare il processo che utilizza un gran numero di maniglie o di una grande quantità di memoria., Il processo potrebbe avere una perdita di memoria o un problema di perdita della maniglia. Come soluzione alternativa, riavviare il processo.

per impostazione predefinita, se si utilizza Windows Server 2016 o una versione successiva di Windows, il Costoso contatori delle prestazioni sono disattivati a partire dai seguenti Aggiornamenti Cumulativi:

  • Windows Server 2016 / Windows 10 versione 1607 (RS1)
    18 ottobre 2018—KB4462928 (OS Costruire 14393.2580)
  • Windows 10 versione del 1703 (RS2)
    24 luglio 2018—KB4338827 (OS Costruire 15063.1235)
  • Windows 10 versione 1709 (RS3)
    24 luglio 2018—KB4338817 (OS Costruire 16299.,579)
  • Windows 10 versione 1803 (RS4)
    16 luglio 2018—KB4345421 (OS Costruire 17134.167)

Nota

Dopo aver installato l’aggiornamento cumulativo, se avete bisogno di classi che sono legati alla Costosa contatori delle prestazioni, impostare il valore di Attivare Costoso Fornitori di 1 (DWORD) nella seguente sottochiave del registro di sistema per renderle nuovamente disponibili:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem

L’aggiornamento cumulativo non influenzerà il comportamento di un processo utilizzando un gran numero di maniglie.

Questo problema si verifica quando un client sta interrogando le classi di prestazioni., Questo di solito è un’applicazione di monitoraggio.

Come soluzione alternativa, è anche possibile disabilitare l’applicazione di monitoraggio per impedire la creazione delle classi di prestazioni.

Ulteriori informazioni

WMI fornisce diverse classi di prestazioni. Per ulteriori informazioni, vedere Classi contatore prestazioni.

Queste classi vengono create dinamicamente in base ai contatori delle prestazioni disponibili sul sistema. Tutte le classi vengono create allo stesso tempo, non solo le classi che vengono interrogate.,

WMIPerfClass è il modulo che gestisce la creazione di queste classi quando il client WMI ne interroga una o enumera le classi disponibili.

Queste classi di prestazioni vengono memorizzate in una cache invalidata dopo 15-20 minuti. Non appena la cache viene invalidata, le classi di prestazioni devono essere nuovamente create se un client le richiede.

La creazione delle classi di prestazioni significa che la WMIPerfClass.il modulo dll dovrà essere caricato all’interno di un WMIPRVSE.Processo EXE e il relativo codice eseguito.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *