Rozwiązywanie problemów z wysokim zużyciem procesora przez proces „System”

96

Zauważyłem, że od pewnego czasu mój system zawiesza się i prawdopodobnie jest on spowodowany wysokim zużyciem procesora spowodowanym procesem systemowym.

Wszystkie uruchamiane przeze mnie aplikacje to Skype, TeamSpeak i Chrome, więc zdecydowanie nie powinno jeść takiej ilości procesora.

Sam problem i uruchomione procesy można zobaczyć na zrzucie ekranu poniżej:

wprowadź opis zdjęcia tutaj

Czasami użycie procesora sięga 90%, ale średnie zużycie wynosi około 40-65%.

Parametry mojego komputera:

  • Windows 8 (podgląd klienta)
  • Intel Core i3 - 2350M
  • 8 GB pamięci RAM

Byłbym wdzięczny za każdą próbę pomocy! Pozdrowienia.

--AKTUALIZACJA--

Gdy użytkownik poniżej zamieścił świetną odpowiedź, zauważyłem, że proces, który Arthurx.syszużywa najwięcej procesorów w systemie, nazywa się , proste google mówi, że jest to sterownik TPLink (adapter Wi-Fi, kupiłem około 2 tygodnie temu!) został zainstalowany z MSDN systemu Windows, ale także próbował zainstalować sterowniki z dołączonej płyty CD, ale to nie pomaga. Od początku systemu zużywa zaledwie 5% procesora, ale po 2-4 godzinach pracy rośnie i osiąga 40-60% wykorzystania procesora.

Nazwa urządzenia: TPLink WN722N

Scott
źródło
5
Punkt zamówienia, jeśli uruchamiasz podgląd klienta, wszystko nie jest aktualne ... Uruchamiasz podgląd klienta.
Everett,
@Everett Tak, prawdopodobnie masz rację ... ale to nie powinno się zdarzyć, nawet jeśli jest to podgląd klienta (lub wydania).
Scott
4
@Scott Tak, takie rzeczy powinny się zdarzyć w podglądzie klienta. Mam na myśli, oczywiście, że lepiej, jeśli te błędy nie istnieją, ale jest to jedna z rzeczy, które ma zrobić podgląd. Jest to szansa, aby użytkownicy mogli zobaczyć nowe funkcje i elementy interfejsu użytkownika nieco wcześniej, sprawdzić kompatybilność aplikacji, ale także szansę dla zespołów deweloperów na uzyskanie opinii i znalezienie błędów od szerszego grona odbiorców. System podstawowy nie jest jeszcze w pełni gotowy do użytku produkcyjnego . Nie jest przeznaczony do użytku jako główny system, ponieważ nie jest w pełni wykonany ani debugowany. Gdyby tak było, wybraliby z nim RTM.
Joel Coehoorn
1
użyj xperf, aby go prześledzić. Ale jak powiedzieli ci inni użytkownicy, przestań używać CP. Wszystkie wersje przedpremierowe wygasną za 2 tygodnie!
magicandre1981
1
Jedynym sposobem, w jaki możemy Ci pomóc, jest sprawdzenie, czy problem występuje w wersji RTM systemu Windows 8. Nie można oczekiwać, że ktoś pomoże ci z problemami występującymi w wersji zapoznawczej. Poszedłem i zaktualizowałem tagi, aby odzwierciedlić twoje użycie wersji zapoznawczej.
Ramhound

Odpowiedzi:

89

Może to być spowodowane wadliwym sterownikiem lub innym modułem załadowanym przez system. Aby zajrzeć do procesu systemowego, możesz użyć narzędzia takiego jak Process Explorer .

Pobierz i uruchom go, a następnie wybierz proces systemowy, kliknij prawym przyciskiem myszy i wybierz Właściwości:

wprowadź opis zdjęcia tutaj

Przejdź na kartę Wątki (zignoruj ​​okno dialogowe, w którym wspomniane są symbole):

wprowadź opis zdjęcia tutaj

Pokaże to, który plik wykorzystuje nadmierne użycie procesora, z którego można następnie spróbować go zdiagnozować.

Jednak, jak powiedzieli inni w komentarzach, naprawdę trzeba jak najszybciej odejść od wersji Preview!

Graham Wager
źródło
Dziękuję za odpowiedź. Zobacz moje zaktualizowane pytanie.
Scott
2
@ Scott Zauważyłem, że aktualizujesz teraz; jeśli po tym problem nadal nie zostanie rozwiązany, TPLink ma dostępny sterownik beta systemu Windows 8 w swojej witrynie, który może pomóc. Można go znaleźć tutaj: tp-link.com/en/support/download/…
Graham Wager
2
Wygląda na to, że risdxc64.sys jest zwykle podejrzanym w przypadku laptopów Thinkpad, które są sterownikiem czytnika kart, patrz np. Tutaj: forums.lenovo.com/t5/ThinkPad-X-Series-Laptops/… - Rozwiązałem go, instalując najnowszą wersję jeden na zwycięstwo 10
patrickf
Miałem podobny problem w systemie Windows 10. Dla mnie to avc3.sys wykorzystywał dużo procesora. Okazuje się, że jest częścią Bitdefender Antivirus Free.
Bruno
2
@ Legends użyłeś niewłaściwego narzędzia. ProcExp pokazuje shapshot, który nie jest tak pomocny. Napisałem odpowiedź na temat Windows Performance Toolkit, aby szczegółowo pokazać, jak analizować użycie procesora
magicandre1981,
88

Aby zdiagnozować problemy z użyciem procesora, należy użyć funkcji śledzenia zdarzeń dla systemu Windows (ETW) w celu przechwycenia danych / profilu próbkowania procesora.

Aby przechwycić dane, zainstaluj Windows Performance Toolkit , który jest częścią zestawu Windows SDK .

Z systemu Windows 10 WPT można korzystać w systemach Windows 8 / Server 2012, Windows 8.1 / Server 2012R2 i Windows 10 / Server 2016. Jeśli nadal używasz systemu Windows 7, użyj zestawu SDK / WPT z kompilacją 15086 .

wprowadź opis zdjęcia tutaj (wszystkie inne wpisy można odznaczyć)

Teraz uruchom WPRUI.exe, wybierz First Levelw obszarze Zasób wybierz użycie procesora i kliknij przycisk Start .

wprowadź opis zdjęcia tutaj

Teraz przechwyć 1 minutę użycia procesora. Po 1 minucie kliknij Zapisz .

Teraz przeanalizuj wygenerowany plik ETL za pomocą narzędzia Windows Performance Analyzer , przeciągając i upuszczając CPU Usage (sampled)wykres do analysis paneoraz porządkując kolumny jak na zdjęciu:

wprowadź opis zdjęcia tutaj

Wewnątrz WPA załaduj symbole debugowania i rozwiń Stos procesu SYSTEM. W tym pokazie użycie procesora pochodzi ze sterownika nVIDIA.


W poniższej wersji demonstracyjnej użycie procesora pochodzi ze sterownika Realtek NIC:

wprowadź opis zdjęcia tutaj


Gdy zobaczysz połączenia takie jak ntoskrnl.exe! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe! Mm Verifier TrimMemory, ntoskrnl.exe! Weryfikator KeLeaveCriticalRegion , oznacza to, że masz włączony Driver Verifier. Wpływa to również bardzo niekorzystnie na wydajność i powoduje duże zużycie SYSTEMU. Wyłącz Driver Verifier i uruchom ponownie.

wprowadź opis zdjęcia tutaj


W tej wersji demonstracyjnej sterownik iai2ce.sys(sterownik kontrolera Intel Serial IO GPIO) powoduje:

wprowadź opis zdjęcia tutaj


W tym przykładzie użycie procesora pochodzi z pliku, rtsuvc.sysktóry wydaje się byćRealtek UVC webcam Driver

wprowadź opis zdjęcia tutaj


To demo pokazuje, że sterownik Bitdefender ignis.sys

wprowadź opis zdjęcia tutaj


W poniższym przykładzie użycie procesora jest spowodowane przez sterownik sieci Broadcom bcmwl664.sys

wprowadź opis zdjęcia tutaj


Gdy widzisz ntoskrnl.exe!MiZeroWorkerPagesjako przyczynę, jest trudniejsze. Oznacza to, że funkcja jądra, która zeruje pamięć przed ponownym użyciem, powoduje duże zużycie procesora:

wprowadź opis zdjęcia tutaj

Nie ma prawdziwego sposobu na wykrycie, który proces go powoduje, ale wiem, że Chrome może to powodować, jeśli masz włączoną akcelerację sprzętową w Chrome. Jeśli więc to widzisz i używasz Chrome, wyłącz przyspieszenie sprzętowe w Chrome.


Kiedy widzisz te Ntoskrnl.exe! RtlpGenericRandomPatternWorker, ntoskrnl.exe! RtlpTestMemoryRandomUp połączeń

wprowadź opis zdjęcia tutaj

użycie procesora pochodzi z jądra do testowania pamięci pod kątem problemów (memtest). To użycie jest uruchamiane przez bezczynne zadanie konserwacji systemu Windows 8.1 / 10. Za pomocą Harmonogramu zadań można wyłączyć bezczynne zadanie.

wprowadź opis zdjęcia tutaj

W Windows 10 zadanie nazywa się RunFullMemoryDiagnostic w Microsoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnostic .

wprowadź opis zdjęcia tutaj


W tym przypadku użycie procesora wydaje się pochodzić z Data Deduplicationfunkcji ( dedup.sys!DdpPostCreate) systemu Windows Server:

wprowadź opis zdjęcia tutaj


W tym pokazie użycie procesora jest spowodowane przez sterownik karty WIFI athrx.sys

wprowadź opis zdjęcia tutaj

Wyszukaj aktualizację sterownika, jeśli ją widzisz.


W poniższej wersji demo uczestniczy sterownik citrix:

wprowadź opis zdjęcia tutaj

Skontaktuj się z działem IT, aby uzyskać informacje na temat rozwiązywania problemów z Citrix.


W tym pokazie funkcja usbhub.sys!UsbhPortRecyclepowoduje użycie procesora:

wprowadź opis zdjęcia tutaj

Zmiana portów USB2.0 na 1.1 lub podłączanie napędów USB do innych portów USB 2.0 pomogła niektórym użytkownikom.


W takim przypadku niewielka ilość użycia SYSTEMU pochodzi ze sterownika Acronis tdrpm251.sys:

wprowadź opis zdjęcia tutaj


W tej wersji demo użycie procesora ntoskrnl.exe!KeAcquireSpinLockRaiseToDpci ntoskrnl.exe!KeReleaseSpinLock.

wprowadź opis zdjęcia tutaj

więc kierowca bardzo mocno korzysta ze SpinLocks . Wyłącz niektóre urządzenia / sterowniki, dopóki nie zobaczysz jednego, który je powoduje.


W takim przypadku użycie procesora jest spowodowane przez sterownik L1C62x64.sys

wprowadź opis zdjęcia tutaj

To jest qualcomm atheros AR8171/8175 PCI-E gigabit Ethernetsterownik. Zaktualizuj sterownik, jeśli widzisz go na stosie.


Tutaj użycie procesora pochodzi ze skanowania pliku hosta (netbt.sys! DelayedScanLmHostFile)

wprowadź opis zdjęcia tutaj

upewnij się, że plik hosts nie jest zbyt duży, aby uniknąć tego użycia.


W takim przypadku użycie procesora pochodzi z SRTSP64.SYSfirmy Symantec.

wprowadź opis zdjęcia tutaj

Zaktualizuj używany produkt Symantec do najnowszej wersji.


Tutaj użycie procesora pochodzi ze sterownika AMD GPU (atikmdag.sys)

wprowadź opis zdjęcia tutaj

jeśli to zobaczysz, przejdź do strony AMD i pobierz najnowszy sterownik dla swojej karty AMD.


W tym przypadku sterowniki TMXPFlt.sys i VsapiNt.sys powodują wysokie użycie procesora.

wprowadź opis zdjęcia tutaj

Z tego, co widzę, te pliki są częścią pakietu Trend Micro AV Suite. Zaktualizuj narzędzie lub usuń je.


W tym przykładzie użycie procesora pochodzi z funkcji ntoskrnl.exe!MmGetPageFileInformation

wprowadź opis zdjęcia tutaj

Ta funkcja pobiera informacje o pliku stronicowania.

Opis procedury: Ta procedura zwraca informacje o aktualnie aktywnych plikach stronicowania.

Wyłącz plik strony, uruchom ponownie i włącz go ponownie i sprawdź, czy to naprawi. Również usunięcie usług Intel (np. Usługa HECI Intel Content Protection) wydaje się naprawiać to dla użytkownika .


Tutaj widać, że sterownik Netwtw04.sys( sterownik Intel Wifi) wywołuje tę funkcję, flushCompleteAllPendingFlushRequestsco powoduje duże zużycie procesora.

wprowadź opis zdjęcia tutaj

Ponieważ symbole debugowania są ładowane, używany jest sterownik skrzynki odbiorczej systemu Windows. Tylko tutaj możemy uzyskać symbole debugowania, aby zobaczyć stos wywołań z nazwą funkcji flushCompleteAllPendingFlushRequests.

Tutaj należy zainstalować najnowszy sterownik firmy Intel, aby go naprawić.


Najbardziej skomplikowanym przypadkiem użycia SYSTEMU jest użycie ACPI.sys w callstack:

Line #, DPC/ISR, Module, Stack, Count, Process, Weight (in view) (ms), TimeStamp (s), % Weight
6, , ,   |    |- ACPI.sys!ACPIWorkerThread, 40246, , 39.992,941063, , 4,13
7, , ,   |    |    ACPI.sys!RestartCtxtPassive, 40246, , 39.992,941063, , 4,13
8, , ,   |    |    ACPI.sys!InsertReadyQueue, 40246, , 39.992,941063, , 4,13
9, , ,   |    |    ACPI.sys!RunContext, 40246, , 39.992,941063, , 4,13
10, , ,   |    |    ntoskrnl.exe!KeReleaseSpinLock, 40246, , 39.992,941063, , 4,13
11, , ,   |    |    ntoskrnl.exe!KiDpcInterrupt, 40246, , 39.992,941063, , 4,13
12, , ,   |    |    ntoskrnl.exe!KiDispatchInterruptContinue, 40246, , 39.992,941063, , 4,13
13, , ,   |    |    ntoskrnl.exe!KxRetireDpcList, 40246, , 39.992,941063, , 4,13
14, , ,   |    |    ntoskrnl.exe!KiRetireDpcList, 40246, , 39.992,941063, , 4,13
15, , ,   |    |    |- ntoskrnl.exe!KiExecuteAllDpcs, 40198, , 39.945,173325, , 4,13
16, , ,   |    |    |    |- ACPI.sys!ACPIInterruptDispatchEventDpc, 27565, , 27.408,930428, , 2,83
17, , ,   |    |    |    |    |- ACPI.sys!ACPIGpeEnableDisableEvents, 24525, , 24.384,921620, , 2,52
18, , ,   |    |    |    |    |    ACPI.sys!ACPIWriteGpeEnableRegister, 24525, , 24.384,921620, , 2,52
19, , ,   |    |    |    |    |    |- hal.dll!HalpAcpiPmRegisterWrite, 24421, , 24.281,015516, , 2,51
20, , ,   |    |    |    |    |    |    |- hal.dll!HalpAcpiPmRegisterWritePort, 24166, , 24.027,316013, , 2,48

jest to niezwykle trudne do debugowania. W temacie sysinternals wymieniłem kilka porad:

  • upewnij się, że procesor się nie przegrzewa z powodu kurzu w wentylatorze
  • zaktualizuj lub ponownie flashuj (ten sam) BIOS / UEFI
  • załaduj domyślne ustawienia BIOS / UEFI
  • upewnij się, że bateria nie jest uszkodzona, wyjmij baterię z notebooka lub wyłącz baterię w menedżerze urządzeń.
  • zmień zworkę na dysku HDD, jeśli wymieniłeś napęd DVD / Blue-Ray na Caddy, aby zainstalować dysk SSD obok starego dysku twardego

wprowadź opis zdjęcia tutaj


W poniższej wersji demo sterownik Intel HD igdkmd64.sysw wersji .4574 dla Intel HD 630 powoduje problem:

wprowadź opis zdjęcia tutaj

Rozwiązaniem jest aktualizacja do sterownika w wersji co najmniej .4590.


W poniższym przypadku użycie procesora przez proces SYSTEM jest spowodowane przez sterownik stdriverx64.sys

wprowadź opis zdjęcia tutaj

To wydaje się być sterownikiem przesyłania strumieniowego audio . Zaktualizuj to oprogramowanie / sterownik, jeśli widzisz to w WPA.


Jeśli zobaczysz sterownik o nazwie risdxc64.syscallstack w systemie SYSTEM, który powoduje duże zużycie procesora, zaktualizuj sterownik kontrolera hosta Ricoh PCIe SDXC / MMC lub wyłącz czytnik kart SD w menedżerze urządzeń, jeśli żadna aktualizacja sterownika go nie naprawi.

wprowadź opis zdjęcia tutaj

Ten czytnik kart SD wydaje się być wbudowany w wiele urządzeń Lenovo.


Użytkownik @stevemidgley pokazał nowy problem większego użycia procesora Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk

wprowadź opis zdjęcia tutaj

Tutaj możesz zobaczyć sterownik UDE.sys powodujący to.

W centrum symboli

wprowadź opis zdjęcia tutaj

Widzę, że należy do sterownika modemu i danych PNP z programów śledzenia Fibocom L850-GL(modemu LTE) jako możliwego urządzenia:

wprowadź opis zdjęcia tutaj

Rozwiązaniem jest wyłączenie modemu i urządzenia kompozytowego USB w menedżerze urządzeń.


magicandre1981
źródło
6
Miły!!! +1 .... Za shizzle
Pimp Juice IT
1
@stevemidgley FxUsbPipeRequestWorkItemThunk przetwarza dane. Rozwiń stos więcej. Udostępnij również plik ETL. Urządzenie kompozytowe USB może być sterownikiem smartfona po podłączeniu telefonu do przesyłania danych,
magicandre1981
1
@stevemidgley włączyć urządzenie USB i przechwycić ślad, potrzebuję pliku ETL, aby zobaczyć więcej szczegółów.
magicandre1981
1
@stevemidgley, które są nieprzetworzonymi danymi USB, potrzebuję śledzenia zużycia procesora z mojej odpowiedzi powyżej.
magicandre1981
1
@stevemidgley ok, wygląda na to, że powoduje to sterownik UDE.sys. I z tego, co widzę, należy do Fibocom L850-GL, który jest twoim modułem LTE.
magicandre1981
4

Uwaga na temat ładowania symboli debugowania w celu dodania do doskonałej odpowiedzi magicandre1981 : jeśli ładowanie symboli w Windows Performance Analyzer działa poprawnie, po zaznaczeniu opcji Śledzenie> Załaduj symbole powinieneś zobaczyć pasek postępu u góry z Ładowanie symboli, które pokazuje nazwy plików obok i bierze kilka minut do ukończenia. Powinieneś także zobaczyć wiele wierszy, takich jak poniżej, w konsoli diagnostycznej:

SYMSRV:  File: Accessibility.ni.pdb

SYMSRV:  Notifies the client application that a proxy has been detected.
SYMSRV:  Connecting to the Server: http://msdl.microsoft.com/download/symbols.
SYMSRV:  Successfully connected to the Server.
SYMSRV:  Sending the information request to the server.
SYMSRV:  Successfully sent the information request to the server.
SYMSRV:  Waiting for the server to respond to a request.
SYMSRV:  Successfully received a response from the server.
SYMSRV:  Closing the connection to the Server.
SYMSRV:  Successfully closed the connection to the Server.
SYMSRV:  Get File Path: /download/symbols/Accessibility.ni.pdb/7B46178957827CDAB7EE4C86EDEE1DAE1/Accessibility.ni.pdb

Jeśli nie widzisz żadnego z nich, ładowanie symboli debugowania prawdopodobnie nie zadziałało i nie będziesz w stanie poprawnie zinterpretować swojego śledzenia.

W moim przypadku początkowe ładowanie symboli debugowania nie działało. Naprawiłem to, wykonując następujące instrukcje :

  1. Dowiedz się, czy używasz wersji x86 lub x64 zestawu narzędzi wydajności systemu Windows.

    Jest to łatwe w kompilacjach Windows x86. W kompilacjach x64 można sprawdzić Menedżera zadań pod kątem znacznika * 32. Jeśli go nie ma, oznacza to, że korzystasz z wersji x64.

    Zauważ, że WPT zawsze instaluje się w Program Files (x86) niezależnie od architektury.

  2. Skopiuj pliki dbghelp.dlli symsrv.dllz właściwego katalogu debuggera do katalogu Windows Performance Toolkit. W moim systemie odpowiednie katalogi to:

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 i C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit

  3. Uruchom ponownie narzędzie Windows Performance Analyzer, aby pobrać poprawną wersję pliku dbghelp.dll.

AronVanAmmers
źródło
2
powinieneś dodać to do mojej odpowiedzi jako edycję. to nie jest prawdziwa odpowiedź
magicandre1981,
0

Po pierwsze, przegląd i dostarczone informacje są bardzo pouczające, jednak zwykle można to rozwiązać przy znacznie mniejszej inteligencji! Po prostu użyłem MSCOFIG.EXE i wyszukiwania binarnego, aby wyodrębnić szkodliwą usługę. Odkryłem, że większość takich problemów jest spowodowana przez oprogramowanie Intel. Zaczynam od wyłączenia dowolnej usługi, która nie ma nazwy firmy. Następnie zaczynam od usług Intel. Następnie pełne wyszukiwanie binarne. Naprawienie problemu na czyimś komputerze zajmuje zwykle najwyżej godzinę. Intel nigdy nie był dobrą firmą komputerową, a ich oprogramowanie to pokazuje. Spójrzmy prawdzie w oczy architektura Pentium miała dekadę, kiedy została wydana. Kto zbudowałby architekturę komputerową z pamięcią stronicowaną w czasach VAX? Cóż, nie zanudzę cię historią. Nie dlatego, że jestem fanem AMD lub Microsoft. Może kiedyś będziemy

Leonard Umina
źródło
Zdajesz sobie sprawę, że VAX używa pamięci stronicowanej, prawda? A dlaczego dzisiaj nie używałbyś pamięci stronicowanej?
Jamie Hanrahan,
-1

Miałem ten sam problem, zniknął, gdy usunąłem jeden z modułów RAM. Wygląda na to, że był wadliwy. Z systemem Windows 7, 32-bit.

Cosmin
źródło