Compartir a través de


Guía de escenarios: Solución de problemas de WmiPrvse.exe cuota superada

En este artículo se ayuda a solucionar los problemas de WmiPrvse.exe cuota de procesos superados.

Puede experimentar uno o varios de los siguientes problemas:

  • Una o varias aplicaciones notifican códigos de error o mensajes relacionados con el error del proveedor de Instrumental de administración de Windows (WMI) enumerado en Constantes de error de WMI.

  • El proceso de WmiPrvse.exe periódica o intermitente alcanza una memoria, un identificador o un subproceso específicos y, finalmente, finaliza o sale.

  • Los siguientes eventos se registran en el registro de eventos de la aplicación de forma periódica o intermitente.

    Nota:

    Estos son dos ejemplos de eventos. La descripción del evento puede cambiar en función del problema al que se enfrenta el proceso de WmiPrvse.exe y los proveedores de WMI implicados.

    Log Name:      Application
    Source:        Microsoft-Windows-WMI
    Date:          <DateTime>
    Event ID:      5612
    Task Category: None
    Level:         Warning
    Keywords:
    User:          NETWORK SERVICE
    Computer:      <MachineName>
    Description:
    Windows Management Instrumentation has stopped WMIPRVSE.EXE because a quota reached a warning value. Quota: PrivatePageCount  Value: 538353664 Maximum value: 536870912 WMIPRVSE PID: 18524 Providers hosted in this process: %systemroot%\system32\wbem\ntevt.dll, %SystemRoot%\System32\wbem\cluswmi.dll, %SystemRoot%\System32\wbem\cluswmi.dll, %systemroot%\system32\wbem\cimwin32.dll
    
    Log Name:      Application
    Source:        Microsoft-Windows-WMI
    Date:          <DateTime>
    Event ID:      5612
    Task Category: None
    Level:         Warning
    Keywords: 
    User:          SYSTEM
    Computer:      <MachineName>
    Description:
    Windows Management Instrumentation has stopped WMIPRVSE.EXE because a quota reached a warning value. Quota: HandleCount Value: 4099 Maximum value: 4096 WMIPRVSE PID: 4468 Providers hosted in this process: C:\Windows\System32\wbem\WmiPerfClass.dll, %systemroot%\system32\wbem\wmiprov.dll
    

Cuando se producen uno o varios de los problemas anteriores (especialmente el identificador de evento 5612), significa que uno de los procesos del proveedor WMI (WmiPrvse.exe) ha superado su valor de recurso predefinido y que el servicio WMI ha detenido explícitamente la ejecución como un proceso.

Se producirá un error en la consulta controlada por el proceso de WmiPrvse.exe detenido y la aplicación que inicia el proceso.

¿Qué es WmiPrvse.exe?

WmiPrvse.exe es un proceso en el sistema operativo Windows (SO) que puede hospedar uno o varios proveedores WMI. El servicio WMI lo administra. Cada proveedor WMI contiene principalmente el archivo DLL del proveedor WMI y el archivo MOF del proveedor WMI. El proveedor WMI forma parte de la infraestructura de WMI, que acepta tareas del servicio WMI para abordar o controlar las consultas WMI iniciadas por clientes locales o remotos.

Cada proceso de WmiPrvse.exe tiene un umbral predefinido o una cuota de recursos que puede usar cuando está activo. Por ejemplo:

  • HandlesPerHost
  • MemoryAllHosts
  • MemoryPerHost
  • ProcessLimitAllHosts
  • ThreadsPerHost

Los valores se definen como instancias en la clase WMI __ProviderHostQuotaConfiguration.

Identificador de evento 5612

El identificador de evento 5612 es uno de los mensajes de advertencia más descriptivos y útiles. En el primer ejemplo de evento, el evento informa de que el recurso PrivatePageCount ha superado la cuota de 536870912 y alcanzó el valor de 538353664.

Cuando los recursos alcancen el límite de cuota o superen el valor, el servicio WMI, por diseño, detendrá explícitamente el proceso de consumo adicional.

En este ejemplo, el recurso es PrivatePageCount, una de las entidades de memoria, que está limitada por host por la MemoryPerHost propiedad .

El evento también enumera los distintos proveedores de WMI hospedados en el proceso detenido WmiPrvse.exe .

  • %systemroot%\system32\wbem\ntevt.dll
  • %SystemRoot%\System32\wbem\cluswmi.dll
  • %SystemRoot%\System32\wbem\cluswmi.dll
  • %systemroot%\system32\wbem\cimwin32.dll

Todos los proveedores mencionados anteriormente se detienen abruptamente debido al problema.

Diagnóstico del problema

Los escenarios siguientes pueden provocar el identificador de evento 5612:

  • Una aplicación cliente realiza consultas anómalas, ineficaces o grandes.
  • El proceso de WmiPrvse.exe no libera los recursos según lo previsto mientras procesa una consulta WMI, lo que conduce a una pérdida de memoria y detiene el proceso de WmiPrvse.exe .
  • La escala de la máquina o la configuración del entorno es grande.

El análisis de las consultas entrantes puede ayudar a determinar la causa inicial y a resolver el problema. De lo contrario, se requiere una investigación más profunda abriendo un caso de soporte técnico de Microsoft.

Para diagnosticar el problema, siga estos pasos:

  1. Comprenda el patrón del problema.

    Revise los registros de eventos de la aplicación y filtre el identificador de evento 5612 para comprender la frecuencia, el historial y el patrón.

  2. Identifique los proveedores de WMI comunes enumerados en el evento .

    Los proveedores enumerados pueden ser los mismos en todos los eventos. Otra posibilidad es que uno de los proveedores consuma más recursos, causando este problema e perturbando a otros proveedores de WMI. En este caso, el objetivo es diagnosticar e identificar el proveedor problemático.

  3. Identifique los proveedores de WMI activos actualmente que hospedan la misma lista de proveedores WMI.

  4. Analice las consultas entrantes que controla el proceso de WmiPrvse.exe enumerado en el identificador de evento 5612.

    Siga los pasos mencionados en las secciones "Analizar las consultas entrantes", "Revisar los archivos de seguimiento de WMI" y "Buscar los PID de cliente que causan un uso elevado de CPU" en Solución de problemas de uso elevado de CPU de WMI. A continuación, puede identificar:

    • Procesos de cliente
      • Consulta que conduce al problema
      • Frecuencia de la consulta

La aplicación cliente realiza consultas anómalas, ineficaces o grandes

Cuando una aplicación cliente realiza consultas anómalas, ineficaces o grandes, puede provocar que el proveedor WMI consuma grandes cantidades de recursos.

  • Revise y comprenda por qué la aplicación realiza esta consulta y si es necesario. Si no es necesario en el entorno, quite la aplicación o deténgala de realizar la consulta. Esto debería ayudar a resolver el problema. Puede abordar este comportamiento con el proveedor de la aplicación.

  • Si se conoce o espera que la aplicación realice consultas WMI que conducen al proceso de WmiPrvse.exe que consume mucho los recursos y no hay memoria ni pérdida del proceso de WmiPrvse.exe , lo que aumenta el límite de cuota predeterminado para duplicar el valor predeterminado debe abordar la situación.

    Precaución

    • Este cambio solo es efectivo si no hay pérdida de ningún recurso. De lo contrario, el problema (id. de evento 5612) solo se retrasará durante un tiempo y, a continuación, se iniciará periódicamente.
    • Este cambio se aplicará a todos los proveedores WMI del sistema. Esto significa que todos los procesos de WmiPrvse.exe comenzarán a consumir recursos según el nuevo límite de cuota aplicado.

    Aumentar el límite de cuota predeterminado puede provocar un mayor consumo de recursos, como memoria, identificadores o CPU. Por lo tanto, no se recomienda aumentar el límite de cuota sin investigación previa ni comprensión del problema.

    Para aumentar el límite de cuota, siga estos pasos:

    1. Abra el Probador de instrumental de administración de Windows (WBEMTEST) como administrador, seleccione Conectar y conéctese al espacio de nombres "raíz".

      Captura de pantalla de la ventana Probador de instrumental de administración de Windows que muestra cómo conectarse al espacio de nombres raíz.

    2. Seleccione Instancias de enumeración, escriba __ProviderHostQuotaConfiguration en el cuadro de diálogo Información de clase y, a continuación, seleccione Aceptar. Se presenta la ventana Resultado de la consulta. A continuación, haga doble clic en el primer resultado para editar los objetos.

      Captura de pantalla de la ventana Resultado de la consulta con el primer resultado seleccionado.

    3. En la sección Propiedades , desplácese hacia abajo hasta la lista mencionada a continuación y aumente los recursos modificando los valores de estas propiedades.

      Captura de pantalla de la ventana Editor de objetos con las propiedades de la instancia seleccionada.

    4. En la ventana Editor de objetos, seleccione Guardar objeto, cierre la ventana Resultado de la consulta y, a continuación, salga de WBEMTEST.

    5. Reinicie el servicio WMI (Winmgmt) para que los cambios surtan efecto.

El proceso de WmiPrvse.exe no libera los recursos según lo previsto.

Si el proceso de WmiPrvse.exe no libera los recursos según lo previsto mientras procesa una consulta WMI, conduce a una pérdida de memoria y detiene el proceso de WmiPrvse.exe . Examine la consulta procesada y la pila del proceso de WmiPrvse.exe que provoca el problema.

  • El estudio de las consultas entrantes ayuda a comprender el comportamiento del proceso WmiPrvse.exe .

  • Si no hay aplicaciones o servicios cliente que provoquen el problema, compruebe aún más la actividad de proceso de WmiPrvse.exe que hospeda los proveedores identificados en el identificador de evento 5612.

  • Use el Explorador de procesos para revisar los subprocesos y las pilas.

    1. Ejecute el Explorador de procesos como administrador y busque el proceso de WmiPrvse.exe mediante la técnica mencionada en la sección Diagnosticar el problema .

    2. Vaya a Propiedades y seleccione la pestaña Subprocesos .

      Captura de pantalla del ventana Propiedades de WmiPrvse.exe 5180 con el identificador de subproceso 4016 seleccionado.

    3. Para cada subproceso, puede revisar la pila e identificar si busca archivos binarios o archivos que no sean de Microsoft.

Es posible que observe archivos binarios de software como software antivirus, software de supervisión y software de protección contra amenazas. Aunque estas aplicaciones de software benefician al entorno, a veces pueden interrumpirse y causar tales problemas. Por lo tanto, puede desinstalarlos temporalmente y comprobar el problema.

Si quitar el producto que no es de Microsoft identificado ayuda a corregir el problema, puede solucionar este comportamiento del producto con el proveedor del producto.

Si no es así, debe ponerse en contacto con los profesionales de soporte técnico de Microsoft para analizar el seguimiento del registro de seguimiento de eventos (ETL) y revisar el volcado de memoria de los proveedores de WMI.

Recolección de datos

Antes de abrir un caso de soporte técnico para investigar aún más el problema, puede recopilar la información siguiendo los pasos mencionados en Recopilación de información mediante TSS para problemas de la experiencia del usuario.

  1. Descargue TSS.zip y extraiga el contenido.

  2. Inicie el seguimiento mediante la ejecución del siguiente cmdlet desde un símbolo del sistema de PowerShell con privilegios elevados.

    .\TSS.ps1 -UEX_WMIAdvanced -noBasicLog
    
  3. Mantenga el seguimiento hasta que aparezca el error o incluso el identificador que ha observado o el problema identificado WmiPrvSE.exe . Mantenga el seguimiento en ejecución durante más de dos a tres minutos.

  4. Detenga el seguimiento siguiendo las instrucciones del símbolo del sistema de PowerShell según el conjunto de herramientas de TSS.

El script creará un archivo ZIP que contiene todos los resultados de seguimiento y la información de diagnóstico. Después de crear un caso de soporte técnico, este archivo se puede cargar en el área de trabajo segura para su análisis.