Поделиться через


Руководство по сценарию. Устранение неполадок, связанных с превышением квоты WmiPrvse.exe

Эта статья поможет устранить проблемы, связанные с превышением квоты процесса WmiPrvse.exe .

Вы можете столкнуться с одним или несколькими из следующих проблем:

  • Одно или несколько приложений сообщают коды ошибок или сообщения, связанные с сбоем поставщика инструментария управления Windows (WMI), перечисленным в константах ошибок WMI.

  • Процесс WmiPrvse.exe регулярно или периодически достигает определенной памяти, дескриптора или потока, а в конечном итоге завершает или завершает работу.

  • Следующие события регистрируются в журнале событий приложения регулярно или периодически.

    Примечание.

    Ниже приведены два примера событий. Описание события может измениться в зависимости от проблемы, с которой сталкивается процесс WmiPrvse.exe и участвующие поставщики WMI.

    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
    

Если возникает одна или несколько указанных выше проблем (особенно идентификатор события 5612), это означает, что один из процессов поставщика WMI (WmiPrvse.exe) превысил предопределенное значение ресурса и что служба WMI явно перестала работать в качестве процесса.

Запрос, обрабатываемый остановленным процессом WmiPrvse.exe , и приложение, инициирующее процесс, завершится сбоем.

Что такое WmiPrvse.exe?

WmiPrvse.exe — это процесс в операционной системе Windows (ОС), где может размещаться один или несколько поставщиков WMI. Он управляется службой WMI. Каждый поставщик WMI в основном содержит DLL-файл поставщика WMI и MOF-файл поставщика WMI. Поставщик WMI является частью инфраструктуры WMI, которая принимает задачи из службы WMI для решения или обработки запросов WMI, инициированных локальными или удаленными клиентами.

Каждый процесс WmiPrvse.exe имеет предопределенное пороговое значение или квоту ресурсов, которую он может использовать при активном выполнении. Например:

  • HandlesPerHost
  • MemoryAllHosts
  • MemoryPerHost
  • ProcessLimitAllHosts
  • ThreadsPerHost

Значения определяются как экземпляры в __ProviderHostQuotaConfiguration класса WMI.

Идентификатор события 5612

Идентификатор события 5612 является одним из самых описательных и полезных сообщений предупреждения. В первом примере события сообщает, что ресурс PrivatePageCount превысил квоту 536870912 и достиг значения 538353664.

Если все ресурсы достигают предела квоты или превышают значение, служба WMI, по проектированию, явно остановит процесс дальнейшего потребления.

В этом примере ресурс является PrivatePageCountодним из сущностей памяти, которая ограничена на узел свойством MemoryPerHost .

В этом событии также перечислены различные поставщики WMI, размещенные в остановленном WmiPrvse.exe процессе.

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

Все перечисленные выше поставщики остановлены внезапно из-за проблемы.

Диагностика проблемы

Следующие сценарии могут вызвать идентификатор события 5612:

  • Клиентское приложение выполняет ненормальные, неэффективные или большие запросы.
  • Процесс WmiPrvse.exe не освобождает ресурсы должным образом при обработке запроса WMI, что приводит к утечке памяти и останавливает процесс WmiPrvse.exe .
  • Масштаб установки компьютера или окружающей среды велик.

Анализ входящих запросов может помочь определить начальную причину и решить проблему. В противном случае требуется более глубокое расследование путем открытия обращения в службу поддержки Майкрософт.

Чтобы диагностировать проблему, выполните следующие действия.

  1. Общие сведения о шаблоне проблемы.

    Просмотрите журналы событий приложения и отфильтруйте идентификатор события 5612, чтобы понять частоту, журнал и шаблон.

  2. Определите распространенные поставщики WMI, перечисленные в событии.

    Перечисленные поставщики могут быть одинаковыми во всех событиях. Еще одна возможность заключается в том, что один из поставщиков потребляет больше ресурсов, вызывая эту проблему и беспокоят других поставщиков WMI. В этом случае цель заключается в диагностике и выявлении проблемного поставщика.

  3. Определите в настоящее время активные поставщики WMI, на котором размещен тот же список поставщиков WMI.

  4. Анализ входящих запросов, обрабатываемых процессом WmiPrvse.exe , перечисленным в идентификаторе события 5612.

    Выполните действия, описанные в разделе "Анализ входящих запросов", "Просмотр файлов трассировки WMI" и "Поиск идентификаторов клиента, вызывающих высокую загрузку ЦП", в разделах "Устранение проблем с высоким потреблением ЦП WMI". Затем можно определить следующее:

    • Клиентский процесс(es)
      • Запрос, ведущий к проблеме
      • Частота запроса

Клиентское приложение выполняет ненормальные, неэффективные или большие запросы

Если клиентское приложение выполняет ненормальные, неэффективные или большие запросы, это может привести к поставщику WMI, используюму большие объемы ресурсов.

  • Просмотрите и понять, почему приложение выполняет этот запрос и если это необходимо. Если в вашей среде не требуется, удалите приложение или остановите его от выполнения запроса. Это поможет устранить проблему. Это поведение можно решить с помощью поставщика приложения.

  • Если приложение известно или ожидается выполнить запросы WMI, которые приводят к WmiPrvse.exe процессу в значительной степени потребляя любые ресурсы, и нет памяти или обработки утечки из процесса WmiPrvse.exe, увеличив ограничение квоты по умолчанию, чтобы удвоить значение по умолчанию должно устранить ситуацию.

    Внимание

    • Это изменение действует только в том случае, если утечка ресурсов отсутствует. В противном случае проблема (идентификатор события 5612) будет отложена только на некоторое время, а затем начнет повторяться.
    • Это изменение будет применяться ко всем поставщикам WMI в системе. Это означает, что все процессы WmiPrvse.exe начнут потреблять ресурсы в рамках нового ограничения квоты.

    Увеличение квоты по умолчанию может привести к увеличению потребления ресурсов, таких как память, дескриптор или ЦП. Поэтому мы не рекомендуем увеличивать квоту без предварительного изучения и понимания проблемы.

    Чтобы увеличить ограничение квоты, выполните следующие действия.

    1. Откройте средство тестирования инструментирования управления Windows (WBEMTEST) в качестве администратора, выберите "Подключиться" и подключитесь к пространству имен "root".

      Снимок экрана: окно средства тестирования инструментирования управления Windows, в котором показано, как подключиться к корневому пространству имен.

    2. Выберите "Экземпляры перечисления", введите __ProviderHostQuotaConfiguration в диалоговом окне сведений о классе и нажмите кнопку "ОК". Откроется окно результата запроса. Затем дважды щелкните первый результат, чтобы изменить объекты.

      Снимок экрана: окно результата запроса с выбранным первым результатом.

    3. В разделе "Свойства" прокрутите вниз до списка, указанного ниже, и увеличьте ресурсы, изменив значения этих свойств.

      Снимок экрана: окно редактора объектов со свойствами выбранного экземпляра.

    4. В окне редактора объектов выберите "Сохранить объект", закройте окно результата запроса и закройте WBEMTEST.

    5. Перезапустите службу WMI (Winmgmt), чтобы изменения вступили в силу.

Процесс WmiPrvse.exe не освобождает ресурсы должным образом

Если процесс WmiPrvse.exe не освобождает ресурсы должным образом при обработке запроса WMI, он приводит к утечке памяти и останавливает процесс WmiPrvse.exe. Изучите обработанный запрос и стек процесса WmiPrvse.exe , вызывающего проблему.

  • Изучение входящих запросов помогает понять поведение процесса WmiPrvse.exe .

  • Если клиентские приложения или службы не вызывают проблему, проверьте действие процесса WmiPrvse.exe , в котором размещены поставщики, указанные в идентификаторе события 5612.

  • Используйте обозреватель процессов для просмотра потоков и стеков.

    1. Запустите обозреватель процессов от имени администратора и найдите процесс WmiPrvse.exe с помощью метода, описанного в разделе "Диагностика проблемы ".

    2. Перейдите к свойствам и перейдите на вкладку "Потоки".

      Снимок экрана: WmiPrvse.exe 5180 окно свойств с выбранным идентификатором потока 4016.

    3. Для каждого потока можно просмотреть стек и определить, находятся ли двоичные файлы или файлы, отличные от Майкрософт.

Вы можете заметить двоичные файлы из таких программ, как антивирусное программное обеспечение, мониторинг программного обеспечения и программное обеспечение защиты от угроз. Несмотря на то, что эти программные приложения попользуются средой, иногда они могут прерывать и вызывать такие проблемы. Таким образом, вы можете временно удалить их и проверить наличие проблемы.

Если удаление идентифицированного продукта, отличного от Майкрософт, помогает устранить эту проблему, вы можете устранить это поведение продукта с поставщиком продукта.

Если нет, обратитесь в службу поддержки Майкрософт, чтобы проанализировать трассировку журнала трассировки событий (ETL) и просмотреть дамп поставщиков WMI.

Сбор данных

Перед открытием обращения в службу поддержки для дальнейшего изучения проблемы вы можете собрать сведения, выполнив действия, описанные в разделе "Сбор сведений" с помощью TSS для проблем с взаимодействием с пользователем.

  1. Скачайте TSS.zip и извлеките содержимое.

  2. Запустите трассировку, выполнив следующий командлет из командной строки PowerShell с повышенными привилегиями.

    .\TSS.ps1 -UEX_WMIAdvanced -noBasicLog
    
  3. Сохраняйте трассировку до тех пор, пока не появится ошибка или даже идентификатор, который вы заметили, или обнаруженная WmiPrvSE.exe проблема. Не выполняйте трассировку более чем за два–три минуты.

  4. Остановите трассировку, следуя инструкциям в командной строке PowerShell в соответствии с набором инструментов TSS.

Скрипт создаст ZIP-файл, содержащий все результаты трассировки и диагностические сведения. После создания варианта поддержки этот файл можно отправить в безопасную рабочую область для анализа.