- 11/16/2020
- a 3 minutos a leer
-
- D
- x
Este artículo proporciona una solución para el problema de alto uso de CPU por WMIPRVSE.Proceso EXE a intervalos regulares.,
versión Original del producto: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Ventana 10 – todas las ediciones
número original de KB: 4483874
síntomas
Cuando utiliza un equipo basado en Windows, observa que el Host del proveedor de instrumentación de administración de Windows (WMI) (WmiPrvSE.el proceso exe) utiliza una alta capacidad de CPU (cerca del 100 por ciento) durante varios minutos cada 15 a 20 minutos.
cuando se produce el problema, utilice el Administrador de tareas para identificar el identificador de proceso (PID) del WMIPRVSE.Proceso EXE que consume mucha CPU., A continuación, abra un símbolo del sistema con privilegios elevados y ejecute el siguiente comando:
tasklist /m wmiperfclass.dll
la lista de WMIPRVSE.Se mostrarán los procesos EXE que tienen cargado este módulo. Por lo general, solo se menciona un proceso. Sin embargo, si tiene clientes de 32 bits y 64 bits, puede ver dos procesos. Este es un ejemplo de salida:
Image Name PID Modules
========== ======== ==========================
WmiPrvSE.exe 2140 WmiPerfClass.,dll
Si el PID del proceso listado coincide con el que encontró en el Administrador de tareas, es probable que esté encontrando el problema que se describe en este artículo.
Causa
Este problema puede ser causado por cualquiera de los siguientes factores.
uno o más procesos utilizan un gran número de manejadores
todos los manejadores se almacenan en la estructura del núcleo \BaseNamedObjects. El proveedor WMIPerfClass debe analizar esta estructura al crear la clase performance que está relacionada con los objetos de trabajo.,
si esta estructura está hinchada debido al alto número de controladores, la operación tendrá un alto uso de CPU y tomará más tiempo de lo normal.
Puede Esperar un impacto para esta condición cuando un proceso está utilizando más de aproximadamente 30,000 mangos, o el número total de mangos en el sistema supera los 50,000.
una actualización que se lanzó en marzo de 2020 para las versiones de sistemas operativos compatibles incluye alguna optimización del rendimiento y aborda algunas variantes de este problema. Consulte el historial de actualizaciones de Windows para obtener más información sobre la actualización que se aplica a la versión de Windows.,
uno o más procesos que se ejecutan en el sistema están usando mucha memoria
esto afecta la creación de las clases de rendimiento del proceso porque el área de memoria de cada proceso en ejecución tendrá que ser consultada. La memoria utilizada por el proceso puede estar fragmentada, lo que hace que la operación requiera más recursos. Esto sucede porque WMIPerfClass también está consultando contadores de rendimiento «costosos».,
Puede comprobar si los costosos contadores de rendimiento están habilitados ejecutando el siguiente comando de PowerShell:
(gwmi -query 'select * from meta_class').Name | ? { $_ -match "costly"}
si el comando devuelve resultados, Esto indica los costosos contadores de rendimiento habilitados.,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
solución alternativa
para solucionar el problema, identifique el proceso que está utilizando un gran número de controladores o una gran cantidad de memoria., El proceso puede tener una fuga de memoria o un problema de fuga de mango. Como solución alternativa, reinicie el proceso.
de forma predeterminada, si utiliza Windows Server 2016 o una versión posterior de Windows, los costosos contadores de rendimiento se deshabilitan a partir de las siguientes actualizaciones acumulativas:
- Windows Server 2016 / Windows 10 versión 1607 (RS1)
18 de octubre de 2018—KB4462928 (os Build 14393.2580) - Windows 10 versión 1703 (RS2)
julio 24, 2018—kb4338827 (os build 15063.1235) - Windows 10 version 1709 (RS3)
24 de julio de 2018—kb4338817 (os build 16299.,579) - Windows 10 version 1803 (RS4)
July 16, 2018—KB4345421 (os Build 17134.167)
Note
Después de instalar la actualización acumulativa, si necesita las clases que están relacionadas con los costosos contadores de rendimiento, establezca el valor Enable Costly Providers en 1 (DWORD) bajo la siguiente subclave del registro para volver a/p>
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem
la actualización acumulativa no afectará el comportamiento cuando un proceso esté utilizando un gran número de controladores.
este problema ocurre cuando un cliente está consultando las clases de rendimiento., Esto es generalmente una aplicación de monitoreo.
como solución alternativa, también puede deshabilitar la aplicación de supervisión para evitar la creación de clases de rendimiento.
Más información
WMI proporciona varias clases de rendimiento. Para obtener más información, consulte clases de contador de rendimiento.
estas clases se crean dinámicamente en función de los contadores de rendimiento que están disponibles en el sistema. Todas las clases se crean al mismo tiempo, no solo las clases que se están consultando.,
wmiperfclass es el módulo que maneja la creación de estas clases cuando el cliente WMI consulta cualquiera de ellas o enumera las clases disponibles.
estas clases de rendimiento se almacenan en una caché que se invalida después de 15 a 20 minutos. Tan pronto como se invalida la caché, las clases de rendimiento deben crearse de nuevo si un cliente las solicita.
crear las clases de rendimiento significa que la WMIPerfClass.el módulo dll tendrá que ser cargado dentro de un WMIPRVSE.Proceso EXE y el código relacionado ejecutado.