Zasadniczo trzymam laptopa w trybie 24x7, a pod koniec dnia bardzo denerwujące jest spalenie moich ud z powodu przegrzania.
Przegrzanie wydaje się być wynikiem hosta WMI Provider Host (WmiPrvSE.exe) zwiększającego wykorzystanie procesora do 25% co kilka minut. Dlaczego to się dzieje?
Mam HP Envy 14 (z dołączoną bzdurą HP) działającą w systemie Windows 7 Home Premium.
(Uwaga: w oparciu o wcześniejsze obserwacje @ nhinkle wydaje się, że winowajcą może być HP Wireless Manager, czy jest jakiś sposób, aby to potwierdzić?)
To pytanie było pytaniem superużytkownika tygodnia .
Przeczytaj wpis na blogu z 28 lutego 2011 r., Aby uzyskać więcej informacji, lub prześlij własne pytanie tygodnia.
Odpowiedzi:
Jak wspomniał Sathya w swoim pytaniu, miałem wcześniejsze doświadczenia z tym problemem na moim podobnym laptopie HP, a teraz potwierdziłem przy użyciu metody naukowej, że skoki procesora na laptopach HP są spowodowane przez HP Wireless Assistant. Lub HP CPU Assassin, ponieważ mogę zacząć go nazywać.
Omówienie eksperymentu
Pytanie : Co powoduje, że procesor w laptopach HP gwałtownie wzrasta, szczególnie
WmiPrvSE.exe
proces?Hipoteza : przyczyną problemu jest HP Wireless Assistant (HPWA)
Metoda :
WmiPrvSE.exe
przyspieszać, a proces przestaje używać> 20% CPU, gdy proces HPWA jest zawieszony.Wyniki : HPWA powoduje ekstremalne zużycie procesora
Wniosek : należy odinstalować HPWA, ponieważ nie robi nic użytecznego
Informacje ogólne
Kiedy dostałem laptopa HP Pavillion dm4t, zauważyłem, że procesor często skacze aż do 50% wykorzystania, prawie co drugą sekundę. To wyczerpało żywotność baterii i rozgrzało laptopa; prawie takie same objawy, jak Sathya. Patrząc na Monitor zasobów w systemie Windows 7, zauważyłem, że proces
WmiPrvSE.exe
był błędny.Szybkie wyszukiwanie w Google potwierdziło moje przypuszczenie, że był to proces hosta Instrumentacji zarządzania Windows (WMI). Krótko mówiąc, WMI można wykorzystać do wyszukiwania informacji o systemie, takich jak użycie procesora, uruchamianie procesów, kto jest zalogowany i wszelkiego rodzaju inne informacje. Proces hosta WMI uruchamia zapytania WMI dla każdego innego procesu, który je tworzy, więc
WmiPrvSE.exe
sam nie był winowajcą, był po prostu pośrednikiem.Aby wyśledzić, który konkretny proces był przyczyną tego problemu, użyłem Systinternals Process Explorer . Znalazłem, która instancja
WmiPrvSE.exe
procesu używa dużej ilości procesora, i kliknąłem ją, aby otworzyć szczegółowe informacje.Niestety nie mogłem znaleźć sposobu, aby dowiedzieć się, jaki proces powoduje wszystkie zapytania, ale ponieważ wyizolowałem to jako źródło skoków procesora i wiedziałem, że jest to usługa, poszedłem do menedżera usług, aby zobaczyć, który usługi zależały od WMI, co może doprowadzić mnie do kolejnej wskazówki.
Doszedłem do wniosku, że przyczyną problemu nie byłaby wbudowana usługa systemu Windows, więc eliminując je, postanowiłem sprawdzić listę i spróbować wyłączyć każdą usługę, sprawdzając, czy problem nadal występuje. Na szczycie listy znajdowała się usługa HP Wireless Assistant. Wróciłem do menu usług i wyłączyłem tę usługę. Patrząc wstecz w menedżerze zadań, zauważyłem, że użycie procesora spadło prawie do zera. Z powrotem włączam usługę HPWA. Zwiększone zużycie procesora. Miałem teraz dość danych, aby sformułować swoją teorię. Odinstalowałem usługę HPWA i nigdy więcej nie miałem problemu.
Weryfikacja hipotezy
Kilka miesięcy później Sathya zadaje to pytanie. Postanowiłem raz na zawsze udowodnić, że to wina HPWA. Ponownie zainstalowałem HP Wireless Assistant, którego nie instalowałem od miesięcy. Natychmiast wzrosło użycie procesora. Następnie przeszedłem eksperyment opisany powyżej.
Najpierw wyizolowałem proces odpowiedzialny za usługę HPWA w Monitorze zasobów.
HPWA_Service.exe
iHPWA_Main.exe
są dwa. Oto jak wyglądało użycie procesora w obu przetwarzanych procesach:Następnie zawiesiłem oba procesy. Wykorzystanie procesora natychmiast spadło; oto jak to wyglądało po kilku chwilach, aby wyczyścić poprzednie użycie procesora na wykresie:
Ponownie włączyłem procesy, aby sprawdzić, czy użycie wróci. To zrobiło:
Pierwszy skok po włączeniu HPWA
Niedługo potem włączyłem HPWA
Ponowne zawieszenie procesów spowodowało zmniejszenie zużycia procesora:
Przetestowałem to pod kątem jeszcze jednej iteracji, a na trzeciej próbie powtórzyło się to samo. Rozważyłem ten wystarczający dowód, aby wykazać, że przyczyną problemu był program HP Wireless Assistant, a następnie wyłączyłem usługę i teraz ją odinstaluję.
Wszystko, co wydaje się robić HPWA, to informowanie użytkownika o włączeniu lub wyłączeniu łączności bezprzewodowej i pożeranie procesora. Nic nie możesz na to poradzić z wbudowanymi narzędziami do zarządzania bezprzewodowego, więc radzę, abyś zainstalował to oprogramowanie.
Uwaga: co najmniej jedna osoba zgłosiła, że odinstalowanie HPWA spowodowało, że ich wyłącznik bezprzewodowy na klawiaturze przestał działać. Na moim laptopie działało dobrze po odinstalowaniu HPWA, ale jeśli twój przestanie działać, zawsze możesz wyłączyć kartę bezprzewodową w systemie Windows. Naciśnij +, xaby otworzyć Centrum mobilności Windows, a następnie kliknij
Turn Wireless Off
przycisk.Według dyskusji na forach pomocy technicznej HP problem został rozwiązany w nowszych wersjach programu HP Wireless Assistant. Jeśli Twój laptop potrzebuje HPWA do korzystania z przycisku włączania / wyłączania Wi-Fi, możesz pobrać najnowszą wersję ze strony internetowej sterowników HP i prawdopodobnie nie będzie już tego problemu. Niemniej jednak, jeśli nie potrzebujesz go do przycisku włączania / wyłączania Wi-Fi, nadal wydaje się, że zainstalowanie tego oprogramowania nie stanowi żadnej wartości dodanej.
źródło
Rozwiązywanie problemów
Pobierz ProcDump z Microsoft Sysinternals.
Zrób zrzut, gdy WmiPrvSE.EXE osiągnie 25% na 1 sekundę:
Spowoduje to utworzenie zrzutu w folderze użytkownika.
Powtórz to jeszcze 1–2 razy, aby uzyskać więcej zrzutów i być pewnym, że przyczyną jest zrzut, a nie kolejne normalne zdarzenie.
Przeanalizuj zrzuty online i opcjonalnie udostępnij je na SpeedyShare .
Alternatywnie : WinDBG może być używany z poleceniem
!analyze -v
, pamiętaj o ustawieniu symboli .Przedstawiony ślad stosu powinien zawierać procedurę, która to powoduje.
Być może google kilka najlepszych procedur stosu, aby uzyskać lepszy pomysł, co robią.
Jeśli nie pomogą, możesz potrzebować bardziej zaawansowanej analizy. Zobacz moją następną sekcję:
Otwórz wiersz polecenia jako administrator i skopiuj wklej następne polecenie:
Naciśnij ENTER raz, aby uruchomić polecenie, teraz będziesz musiał poczekać, aż pojawi się skok.
Uruchom następujące polecenie, aby wyświetlić plik i przeanalizować go ( wymagany WinDBG / Symbole ):
Jeśli chcesz, żebym to zbadał:
Ponieważ WmiPrvSE.EXE jest hostem do uruchamiania zapytań WMI w sklepie CAPI, możesz nie być w stanie znaleźć przyczyny nawet w XPerf z powodu IPC , innym rozwiązaniem, które właśnie znalazłem, byłoby włączenie rejestrowania WMI i sprawdzania dzienników jak opisano tutaj , ClientProcessId będzie PID procesu, który wykonał zapytanie WMI. Ten PID można prześledzić z powrotem do procesu, dodając kolumnę PID do Menedżera zadań lub Eksploratora procesów , lub
tasklist /FI "PID eq X"
gdzie X oznacza PID, który znalazłeś ...Analiza zrzutu 1 : Linie 94-115 wskazują zdalne wywołanie procedury .
Analiza zrzutu 2 : linie 84-105 wskazują zdalne wywołanie procedury .
W jądrze uruchamiany jest nowy wątek do obsługi kodu pośredniczącego zdalnego wywołania procedury , który w istocie jest żądaniem zapytania, które dostawca WMI wykona i na które odpowie. Powoduje to wysoką aktywność procesora z powodu odczytu rejestru i / lub informacji o wydajności.
Ponieważ zrzut jest utrwaleniem jednej chwili, nie będziesz w stanie zobaczyć, który proces wykonał RPC.
Potrzebujesz programu, który śledzi XPerf, aby zobaczyć poprzedni wątek, który wykonywałby RPC.
Lub jeśli włączysz Informacje o stanie RPC , możesz użyć rpcdbg, aby zobaczyć, kto zainicjował połączenie.
Przykład:
Powyższy przykład ustawia punkt przerwania na RPC, dzięki czemu można zobaczyć, kto uruchamia go w drugiej linii stosu. Ale cóż, jest mało prawdopodobne, aby ustawienie punktu przerwania dla pierwszego połączenia (pamiętaj, że jest to debugowanie na żywo) pomoże ci zobaczyć, kto wywołuje dostawcę WMI za każdym razem ...
W tym artykule znajduje się o wiele więcej informacji na temat informacji o stanie RPC, które mogą pomóc, ale nie dla osób o tak słabym sercu, jak my, przechodzimy przez to wszystko, kiedy zamiast tego możemy po prostu użyć XPerf. :-)
Ponieważ teraz wiemy o wewnętrznym działaniu RPC, równie dobrze możemy użyć Monitora API :
Ustaw filtr przechwytywania API na
Rpcrt4.dll
moduł.Podobnie do punktu przerwania chcemy wiedzieć, kto wywołuje
RpcServerUseProtSeq
funkcje:Podłącz każdy uruchomiony proces z wyjątkiem tych z niskim PID (aby zapobiec awariom).
Idealnie, nie chcesz zaczepiać
dwm.exe
/winlogon.exe
ani opuszczać.Możesz także wypróbować pojedyncze procesy i później je odczepić w oknie Procesy zahaczone ...
Chociaż ... Próbowałem tego i mogłem uzależnić się od dowolnego procesu.
Jeśli wszystko pójdzie dobrze, proces przechwycony, który wywołuje wywołanie RPC, będzie zawierał wątki.
Po kliknięciu tych wątków powinieneś zobaczyć wiele połączeń.
Jeśli to zrobisz, znajdziesz proces powodujący problem!
Rozwiązanie
Utrzymanie aktualności komputera jest ważne, instalacja HPWA 4.0.10.0 rozwiązuje ten problem! ;-)
źródło
Wpis na blogu Microsoft Czy WMIprvse jest prawdziwym złoczyńcą? pokazuje, jak znaleźć proces odpowiedzialny za procesor używany przez WmiPrvSE.exe.
Metoda wykorzystuje opcję podglądu zdarzeń „Pokaż dzienniki analityczne i debugowania” w celu śledzenia całej aktywności WMI, uzyskując w ten sposób identyfikator procesu winnego.
źródło
Po prostu dodając to dla każdego innego na tej samej łodzi, ta strona jest w całym Google. Miałem ten sam problem z WmiProvderHost zwiększającym wydajność procesora nawet o 50% i rozładowującym baterię w moim Lenovo Yoga2 Pro w systemie Windows 8.1.
Postępując zgodnie z powyższymi doskonałymi radami dochodzeniowymi, odkryłem, że problemem jest w rzeczywistości GoPro Studio (darmowe oprogramowanie do edycji wideo, które jest dostarczane z kamerami GoPro). Instaluje usługę monitorowania, która czeka na podłączenie kamery, a dla mnie był to winowajca.
źródło
Aby go debugować, użyj xperf z zestawu narzędzi wydajności Windows i uruchom ten plik cmd:
Otwórz wygenerowany plik WMItracing.etl w WPA.exe i przeciągnij i upuść wykres „Zdarzenia ogólne” z lewej strony do okienka analizy.
Teraz filtruj tylko do zdarzeń Microsoft-Windows-WMI-Activity i poszukaj operacji WMI i ClientProcessId.
W moim przykładzie ten CLientProcessId należy do narzędzia o nazwie Veeam ONE Monitor Server . Zatrzymanie go rozwiązało problem z wykorzystaniem procesora .
Drugi przykład pokazano tutaj:
Czy widzisz powtarzające się wywołania procesu o numerze PID z 1924 r., Który należy do usługi monitorowania Intel ProSet.
Tutaj użycie procesora jest również pokazane w zestawach wywołań próbkowania procesora:
Narzędzie Intel zbyt często wysyła zapytania do powiadomień WMI, co powoduje problemy. Zatrzymanie go rozwiązało problem.
źródło
Czy próbowałeś sprawdzić, czy to wirus? Niektóre wirusy naprawdę lubią paradować jako usługi Windows. Upewnij się, że
WmiPrvSE.exe
proces znajduje się wc:\windows\system32\wbem
katalogu. Jeśli nie, możesz uruchomić ogólne programy do wykrywania programów szpiegujących. Jeśli nie jest to oprogramowanie szpiegujące, może to być inna usługa, która go nazywa. Wiem, że mam kilka szybkich gadżetów na moim komputerze i, jak na ironię, gadżet monitora wydajności czasami sprawia, że mój procesor trochę przyspiesza. Ponadto może to być kolejna usługa, która od czasu do czasu wyciska ten gaz. Na przykład bloatware od HP, Dell itp.Poza tym inna odpowiedź od TomWij wydaje się całkiem miła z powodu rozwiązania problemu!
źródło
Verify Signatures
opcji; następnie, jeśli(Verified) X
wVerified Signer
kolumnie jest napisane, to jest weryfikowany przez Microsoft, a plik wykonywalny jest częścią produktu / firmyX
, w tym przypadkuMicrosoft Windows
.C:\Windows\system32\wbem
a kolumna zweryfikowana wskazuje, że plik został zweryfikowany. @TomWij