Почему хост провайдера WMI (WmiPrvSE.exe) продолжает нагружать мой процессор?

290941
Sathya

Я обычно держу свой ноутбук в режиме 24x7, и в конце дня действительно раздражает, что мои бедра обгорели из-за перегрева.

Похоже, что перегрев является результатом того, что хост провайдера WMI (WmiPrvSE.exe) увеличивает загрузку ЦП до 25% каждые несколько минут. Почему это происходит?

У меня есть HP Envy 14 (со встроенным дерьмом HP), работающий на Windows 7 Home Premium.

(Примечание. Судя по прошлым наблюдениям @ nhinkle, виновником может быть HP Wireless Manager, есть ли способ подтвердить это?)

Этот вопрос был Супер Вопросом Пользователя Недели .
Прочитайте запись в блоге от 28 февраля 2011 г. для более подробной информации или отправьте свой собственный Вопрос недели.

83
Что ж, лучший способ подтвердить это - отключить его и посмотреть, будет ли оно продолжаться;) Matthieu Cartier 13 лет назад 2
@ neuro хе, правда, но я бы хотел посмотреть, есть ли у кого-нибудь из Суперпользователей другой подход :) Sathya 13 лет назад 0
«Это действительно раздражает, что мои бедра горят» -> [Бедра - ничто, проверьте это] (http://www.medicalnewstoday.com/articles/17664.php). Tom Wijsman 13 лет назад 2
Есть ли у вас гаджеты на рабочем столе? например. монитор дискового пространства Kez 13 лет назад 1
@kez Нету - без гаджетов - чистый рабочий стол. Sathya 13 лет назад 1

6 ответов на вопрос

107
nhinkle

Как Сатья упомянул в своем вопросе, у меня был предыдущий опыт решения этой проблемы на моем аналогичном ноутбуке HP, и теперь я подтвердил, используя научный метод, что скачки ЦП на ноутбуках HP вызваны HP Wireless Assistant. Или HP CPU Assassin, как я могу его назвать.

Обзор эксперимента

  • Вопрос : Что вызывает частые скачки ЦП на ноутбуке HP, особенно WmiPrvSE.exe процесс?

  • Гипотеза : HP Wireless Assistant (HPWA) вызывает проблему

  • Метод :

    1. Посмотрите, начинает ли проблема возникать при установке HPWA.
    2. Посмотрите, перестанет ли процессор работать и WmiPrvSE.exeпроцесс перестанет использовать> 20% CPU, когда процесс HPWA будет приостановлен.
    3. Посмотрите, начинает ли ЦП снова пикировать при повторном включении процесса HPWA
    4. Повторите шаги 2 и 3 для нескольких испытаний, чтобы обеспечить точность результатов
       
  • Результаты : HPWA вызывает чрезмерную загрузку процессора

  • Вывод : вы должны удалить HPWA, так как он не делает ничего полезного

Исходная информация

Когда я приобрел свой ноутбук HP Pavillion dm4t, я заметил, что загрузка процессора часто достигает 50%, почти каждую секунду. Это истощало время автономной работы и нагревало ноутбук; почти те же симптомы, что и у Сатья. Просто взглянув на Resource Monitor в Windows 7, я смог увидеть, что процесс WmiPrvSE.exeвиноват.

процессор ном ном

Быстрый поиск в Google подтвердил мое предположение, что это был хост-процесс инструментария управления Windows (WMI). Короче говоря, WMI может использоваться для запроса системной информации, такой как загрузка процессора, запущенные процессы, кто вошел в систему и всякая другая информация. Хост-процесс WMI выполняет запросы WMI для любого другого процесса, который их WmiPrvSE.exeсоздает, поэтому сам не был виновником, он был просто посредником.

Чтобы выяснить, какой именно процесс вызывал эту проблему, я использовал Systinternals Process Explorer . Я обнаружил, какой экземпляр WmiPrvSE.exeпроцесса использовал большое количество процессора, и щелкнул по нему, чтобы открыть подробную информацию.

исследователь процесса

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

услуги ном ном

Я полагал, что это не будет встроенный сервис Windows, вызывающий проблему, поэтому, устраняя их, я решил изучить список и попытаться отключить каждый сервис и посмотреть, сохраняется ли проблема. Справа от списка была служба HP Wireless Assistant. Я вернулся в меню служб и отключил эту службу. Оглядываясь назад в диспетчере задач, я увидел, что загрузка ЦП практически исчезла. Я снова включил службу HPWA. Загрузка ЦП резко возросла. Теперь у меня было достаточно данных, чтобы сформировать мою теорию. Я удалил службу HPWA, и у меня больше не возникало проблем.

Проверка гипотезы

Спустя несколько месяцев Сатья задает этот вопрос. Я решил доказать раз и навсегда, что это вина HPWA. Я переустановил HP Wireless Assistant, который не устанавливался месяцами. Сразу же, использование процессора взлетело. Затем я провел эксперимент, описанный выше.

Сначала я выделил процесс, отвечающий за службу HPWA, в Resource Monitor. HPWA_Service.exeи HPWA_Main.exeдва. Вот как выглядело использование процессора при обоих этих процессорах:

task manager with hpwa running

Затем я приостановил оба процесса. Загрузка процессора сразу же снизилась; вот как это выглядело через несколько секунд, чтобы очистить предыдущее использование процессора на графике:

task manager without hpwa running

Я снова включил процессы, чтобы посмотреть, вернется ли использование. Это сделал:

task manager just enabled hpwa
Первый всплеск при включении HPWA

task manager after enabling hpwa
Через некоторое время после включения HPWA

Снова приостановка процессов привела к снижению загрузки ЦП:

lower cpu usage after disabling hpwa

Я проверил это еще на одной итерации, и в третьем испытании та же самая вещь повторилась снова. Я посчитал это достаточным доказательством того, что HP Wireless Assistant вызывал проблему, впоследствии отключил службу и теперь удалит ее.

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


Примечание. По крайней мере один человек сообщил, что при удалении HPWA его беспроводной переключатель на клавиатуре перестал работать. На моем ноутбуке он работал нормально после удаления HPWA, но если ваш компьютер перестает работать, вы всегда можете отключить беспроводную карту из Windows. Нажмите Winkey+, xчтобы открыть Центр мобильности Windows, затем нажмите Turn Wireless Offкнопку.

windows mobility center


Согласно обсуждению на форумах поддержки HP, проблема была исправлена ​​в более поздних версиях HP Wireless Assistant. Если вашему ноутбуку требуется HPWA для использования кнопки включения / выключения Wi-Fi, вы можете загрузить последнюю версию с веб-сайта драйверов HP, и, вероятно, эта проблема больше не возникнет. Тем не менее, если вам не нужна кнопка включения / выключения Wi-Fi, кажется, что установка этого программного обеспечения не принесет никакой пользы.

+1 - очень хороший, исчерпывающий ответ. Вот каково состояние моего процессора - с HP Assassin - http://i.imgur.com/dMwaJ.png Sathya 13 лет назад 0
И это пост приостановки услуг http://i.imgur.com/dn2Em.png Sathya 13 лет назад 0
Вау! это ** серьезно удивительный ** пост! Один из самых задокументированных и скриншотов постов, которые я когда-либо видел! +1 !! studiohack 13 лет назад 18
@nhinkle: Да, про ваше обновление я тоже читал на сайте поддержки HP. Но проблема WMI была решена начиная с версии 4.0.6.0 ... Tom Wijsman 13 лет назад 0
Приятно знать, Том. Я все еще чувствую, что программное обеспечение является излишним, но спасибо, что сообщили нам, что оно исправлено. nhinkle 13 лет назад 0
@ TomWij любые ссылки на `Но проблема WMI была решена начиная с версии 4.0.6.0`? Sathya 13 лет назад 0
@Sathya: [На форуме поддержки HP] (http://forums13.itrc.hp.com/service/forums/questionanswer.do?admit=109447627+1297340783967+28353475&threadId=1415424) прочитайте его пост Хенрика и его пост Маркку , Так что, если вы скачаете 4.0.10.0, у вас все будет хорошо, и вы сможете использовать аппаратные кнопки. Но да, такие программы не добавляют ничего особенного, чем встроенные в Windows. Какая версия у вас была? Tom Wijsman 13 лет назад 0
Опять же, по крайней мере, на некоторых моделях аппаратная кнопка прекрасно работает без HPWA. Спасибо за справочный источник, хотя в отношении исправляемой ошибки; Я добавлю эту ссылку на пост позже сегодня. nhinkle 13 лет назад 0
+1, Потрясающая детективная работа и изящный пост со скриншотами, который использует программное обеспечение Wireless Assistant в Windows, это первое, что я удаляю на новом ПК. Moab 13 лет назад 2
Для меня это была [Служба хранилища данных Dell] (http://commweb-ps3.us.dell.com/support-forums/desktop/f/3514/t/19621549), вызывающая скачок ЦП в поставщике WMI. Это также зависимость, как упоминалось в этом ответе. Я нашел это с помощью [Windows Clean Boot Method] (http://support.microsoft.com/en-us/kb/331796). Cerveser 9 лет назад 1
Очень хорошо. Используя это, я обнаружил, что это мой ... сканер вирусов Officescan. Carra 5 лет назад 0
Используя ту же методологию, я смог решить аналогичную проблему на XPS 13, убив Dell Data Vault Collector. Господь знает, какие данные они хранят в хранилище. Joe Baker 5 лет назад 0
38
Tom Wijsman

Поиск проблемы

  1. Загрузите ProcDump от Microsoft Sysinternals.

  2. Позвольте ему сделать дамп, как только WmiPrvSE.EXE достигнет 25% в течение 1 секунды:

    procdump.exe -c 25 -s 1 -x WmiPrvSE.EXE %HOMEPATH%\WmiPrvSE.dmp 

    Это создаст дамп в вашей папке пользователя.

    Не стесняйтесь повторять это еще 1-2 раза, чтобы у вас было больше дампов, и вы можете быть уверены, что причина сброшена, а не другое более нормальное событие.

  3. Анализируйте свои дампы онлайн и, при желании, делитесь ими на SpeedyShare .

    Альтернатива : WinDBG может использоваться с командой !analyze -v, обязательно установите символы .

  4. Трассировка стека, которая показывает, должна включать процедуру, которая вызывает это.

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


  1. Загрузите установку из средств анализа производительности Windows для вашей версии Windows.
  2. Установите программное обеспечение в вашей системе.
  3. Откройте командную строку от имени администратора и скопируйте и вставьте следующую команду:

    xperf -start perf!GeneralProfiles.InBuffer -stackwalk profile && timeout -1 && xperf -stop perf!GeneralProfiles.InBuffer %HOMEPATH%\myTrace.etl 
  4. Нажмите ENTER один раз, чтобы запустить команду, теперь вам придется ждать, пока не произойдет всплеск.

  5. Сразу после шипа вы идете к консоли и нажимаете ENTER.
  6. Через некоторое время в вашей пользовательской папке появится файл журнала myTrace.etl.
  7. Выполните следующую команду, чтобы показать файл и проанализировать его ( требуется WinDBG / Symbols ):

    xperf %HOMEPATH%\myTrace.etl 

Если вы хотите, чтобы я посмотрел на это:

  1. Сожмите myTrace.etl из вашей пользовательской папки в ZIP-файл.
  2. Поделитесь сжатым zip-файлом на SpeedyShare .
  3. Поделитесь ссылкой здесь, я сделаю попытку найти и показать вам причину вашей проблемы.

Поскольку WmiPrvSE.EXE является хостом для выполнения запросов WMI к хранилищу CAPI, вы, возможно, не сможете найти причину даже с помощью XPerf из-за IPC, еще одно решение, которое я только что нашел, - включить ведение журнала WMI и проверку журналов. как описано здесь, ClientProcessId будет идентификатором процесса, который сделал запрос WMI. Этот PID можно отследить до процесса, добавив столбец PID в диспетчер задач или в Process Explorer, или tasklist /FI "PID eq X"где X - это PID, который вы нашли ...


Анализ дампа 1 : строки 94-115 указывают на удаленный вызов процедуры .
Анализ дампа 2 : строки 84-105 указывают на удаленный вызов процедуры .

В ядре запускается новый поток для обработки заглушки удаленного вызова процедуры, которая по сути является запросом, который будет выполняться и отвечать провайдеру WMI. Это приводит к высокой загрузке ЦП из-за чтения реестра и / или информации о производительности.

Поскольку дамп - это запись одного момента, вы не сможете увидеть, какой процесс выполнил RPC.
Итак, вам нужна программа, похожая на XPerf, чтобы увидеть предыдущий поток, который будет выполнять RPC.

Или, если вы включите информацию о состоянии RPC, вы можете использовать rpcdbg, чтобы увидеть, кто инициировал вызов.

Пример:

0:000> bp rpcrt4!RpcServerUseProtseqEpA 0:000> g Breakpoint 0 hit eax=00452000 ebx=7ffd5000 ecx=00452008 edx=00000014 esi=00d5f55c edi=7c911970 eip=77e97a0b esp=0012ff3c ebp=0012ff6c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206 RPCRT4!RpcServerUseProtseqEpA: 77e97a0b 8bff mov edi,edi 0:000> kb ChildEBP RetAddr Args to Child 0012ff38 00401046 00452000 00000014 00452008 RPCRT4!RpcServerUseProtseqEpA 0012ff6c 00401e37 00000001 003330a0 00333120 hellos!main+0x46 [e:\projects\hello\hellos.c @ 21] 

Приведенный выше пример устанавливает точку останова на RPC, поэтому вы можете увидеть, кто запускает ее во второй строке стека. Но маловероятно, что установка точки останова при первом вызове (обратите внимание, что это оперативная отладка) поможет вам видеть, кто вызывает провайдера WMI каждый раз ...

В этой статье содержится гораздо больше информации об информации о состоянии RPC, которая может помочь, но не для таких слабонервных, как мы, нужно пройти через все это, когда мы могли бы просто использовать XPerf. :-)


Теперь, когда мы знаем о том, как работает RPC, мы могли бы также использовать API Monitor :

  1. Скачайте, установите и запустите API Monitor. ( дважды, если у вас 64-битная версия: однажды x86, однажды x64)
  2. Перейти к файлу -> Запуск от имени администратора
  3. Установите фильтр захвата API для Rpcrt4.dllмодуля.

    enter image description here

  4. Подобно точке останова, мы хотим знать, кто вызывает RpcServerUseProtSeqфункции:

    enter image description here

  5. Подключите каждый работающий процесс, за исключением тех, которые имеют низкий PID (чтобы предотвратить сбои).
    Идеально, вы не хотите зацепить dwm.exe/ winlogon.exeили опустить.
    Вы также можете попробовать отдельные процессы и отцепить их позже из окна Подключенные процессы ...

    Хотя ... Я попробовал это и мог подключиться к любому процессу.

  6. Если все идет хорошо, Hooked Process, который выполняет вызов RPC, будет содержать потоки.
    И после нажатия на эти темы, вы должны увидеть кучу звонков.
    Если вы это сделаете, вы нашли процесс, вызывающий проблему!

Решение

Поддержание вашего компьютера в актуальном состоянии очень важно, установка HPWA 4.0.10.0 решает эту проблему! ;-)

@TomWij - онлайн-анализ дампов [1] (http://pastebin.com/bTdLLRJT), [2] (http://pastebin.com/LhFdUPjq). Дампы на [dropbox] (http://db.tt/TAmJefw). Кроме того, я знаю PID. что я могу с этим сделать? Sathya 13 лет назад 0
очень хороший ответ, @TomWiji, документация действительно помогает ... studiohack 13 лет назад 1
Только что установил HPWA, похоже, не сработал. Может потребоваться перезагрузка. Если то же самое происходит на моем ПК, я постараюсь обновить сообщение и показать, как большинство методов устранения неполадок может показать вам, что проблема возникает. Tom Wijsman 13 лет назад 0
Ага, только что нашел, почему это не сработало! ^ _ ^ Tom Wijsman 13 лет назад 0
Мне понравился ответ nhinkles немного лучше - но это тоже здорово и полезно - но больше всего, такой инструмент, как API-монитор, - это то, что я недавно начал пропускать, так что спасибо и +1 за подсказку. Tobias Plutat 13 лет назад 2
@Tobias: Мы не боремся за лучший ответ (Сатья сказал, что мы оба получим премию +300, но ему нужно подождать, прежде чем он сможет ее дать), но мы пытаемся сначала добраться до 10 тысяч ради развлечения и хорошего ускорения. , Этот вопрос начался в нашем чате, и nhinkle показывает, что у него была проблема раньше, но Сатья также хочет знать, как он мог бы устранить ее, если бы не знал об этом. Следовательно, я написал, как я буду устранять неполадки. Кажется, это было исправлено с 4.0.6.0, хотя и не происходит в 2.XXX. Кажется, это происходило в течение нескольких месяцев в версиях 3.XXX или 4.XXX ... Tom Wijsman 13 лет назад 0
@ Том, у меня не было такого впечатления, и я, конечно, не хотел это подразумевать. Тем не менее, я * почувствовал * желание распознать два превосходных ответа на эту проблему с немного большей многословностью и дифференцированностью, чем я мог с одними возражениями. :) Tobias Plutat 13 лет назад 2
@ TomWij Я на 4.0.4.2 http://i.imgur.com/QWGDd.png Sathya 13 лет назад 0
13
harrymc

Запись в блоге Microsoft Является ли WMIprvse настоящим злодеем? показывает, как определить, какой процесс отвечает за процессор, который использует WmiPrvSE.exe.

Метод использует опцию просмотра событий «Показать аналитические и отладочные журналы» для отслеживания всей активности WMI, получая, таким образом, идентификатор процесса виновного процесса.

Да, сказал, что [несколькими днями ранее] (http://chat.stackexchange.com/transcript/message/449864#449864), и это также указано в моем сообщении между XPerf и Dump Analysis, но он не проверил PID, до сих пор сделали XPerf или API Monitor, поэтому мне придется подождать его, прежде чем применять дальнейший анализ. Tom Wijsman 13 лет назад 0
7
DannyT

Просто добавив это для всех, кто находится в той же лодке, эта страница повсюду в Google. У меня была та же проблема с WmiProvderHost, увеличивающим процессор до 50% и разряжающим аккумулятор на моем Lenovo Yoga2 Pro в Windows 8.1.

Следуя нескольким превосходным советам по расследованию выше, я обнаружил, что проблема для меня - это на самом деле GoPro Studio (бесплатное программное обеспечение для редактирования видео, которое поставляется с камерами GoPro). Он устанавливает службу мониторинга, которая ждет, когда вы подключите свою камеру, и для меня это стало причиной.

В Windows 8.1 после закрытия резидентной программы GoPro загрузка ЦП хост-провайдера WMI снизилась с 40% до 8% user63227 9 лет назад 3
В Windows 8.1 также наблюдается высокая загрузка ЦП благодаря программному обеспечению GoPro. Закрыл его из системного трея и он вернулся в нормальное состояние (и теперь отключен при запуске). Robin 9 лет назад 0
4
magicandre1981

Чтобы отладить его, используйте xperf из инструментария производительности Windows и запустите этот cmd-файл:

xperf -on PROC_THREAD+LOADER+PROFILE+INTERRUPT+DPC+DISPATCHER -stackwalk profile -BufferSize 1024 -MaxFile 256 -FileMode Circular -f Kernel.etl xperf -start WMILogger -on Microsoft-Windows-WMI-Activity::0xff -BufferSize 1024 -f WMI.etl  echo Please capture about 30s of the WMI activity.  pause  xperf -stop xperf -stop WMILogger xperf -merge WMI.etl kernel.etl WMItracing.etl  del WMI.etl del kernel.etl 

Откройте созданный файл WMItracing.etl в WPA.exe и перетащите график «Общие события» с левой стороны на панель анализа.

enter image description here

Теперь выполните фильтрацию только по событиям Microsoft-Windows-WMI-Activity и найдите операции WMI и ClientProcessId.

В моем примере этот CLientProcessId принадлежит инструменту под названием Veeam ONE Monitor Server . Остановка, исправлена ​​проблема использования процессора .

И второй пример показан здесь:

enter image description here

ЗДЕСЬ вы видите повторяющиеся вызовы процесса с PID 1924 года, который принадлежит службе мониторинга Intel ProSet.

Здесь использование ЦП также показано в стеках выборки ЦП:

enter image description here

Таким образом, инструмент Intel выполняет запросы уведомлений WMI слишком часто, и это вызывает проблемы. Остановив его, исправил проблему.

1
Duall

Вы пытались увидеть, если это вирус? Некоторые вирусы действительно любят выставляться напоказ, как службы Windows. Убедитесь, что WmiPrvSE.exeпроцесс находится в c:\windows\system32\wbemкаталоге. Если нет, вы можете запустить общие программы обнаружения шпионских программ. Если это не шпионское ПО, возможно, это другой сервис, который его вызывает. Я знаю, что у меня на компьютере быстро работают несколько гаджетов, и по иронии судьбы гаджет монитора производительности иногда делает мой процессор немного всплеском. Кроме того, это может быть другая служба, которая время от времени отжимает этот газ. Например, вирусы от HP, Dell и т. Д.

Кроме этого, другой ответ от TomWij кажется довольно хорошим для устранения неполадок!

Альтернативный более общий способ проверить это - использовать [Process Explorer] (http://technet.microsoft.com/en-us/sysinternals/bb896653) из Sysinternals, а затем включить опцию «Проверять подписи»; затем, если в столбце «Проверено подписывающее лицо» написано «(Проверено) X», то это проверяется Microsoft и исполняемый файл является частью продукта / компании «X», в данном случае «Microsoft Windows». Tom Wijsman 13 лет назад 1
Я уверен, что нет вирусов / вредоносных программ. Кроме того, WmiPrvSE присутствует в `C: \ Windows \ system32 \ wbem`, а проверенный столбец указывает, что файл проверен. @TomWij Sathya 13 лет назад 0
@ Сатья Я бы, наверное, сказал, что это взломщик, особенно потому, что ты прокомментировал, что у тебя есть HP "с хламом в комплекте". Попробуйте использовать msconfig и отключите все службы и программы HP при запуске и посмотрите, поможет ли это. Duall 13 лет назад 0
Дело в том, что я собираюсь переустановить Win 7, как только я исправлю свой SSD, подумал, что это будет интересный вопрос - более того, чтобы научиться отлаживать Sathya 13 лет назад 0