2013-01-03 03:52:20 +0000 2013-01-03 03:52:20 +0000
108
108

Risoluzione dei problemi Alto utilizzo della CPU da parte del processo "System"

Ho notato che da qualche tempo il mio sistema si sta bloccando e probabilmente è causato dall'alto utilizzo della CPU che è causato dal processo di sistema.

Tutte le applicazioni che sto eseguendo sono Skype, TeamSpeak e Chrome quindi non dovrebbe assolutamente mangiare quella quantità di CPU.

Potete vedere il problema stesso e i processi in esecuzione nella schermata qui sotto:

A volte l'utilizzo della CPU raggiunge il 90%, ma l'utilizzo medio è del 40-65%.

I parametri del mio PC:

  • Windows 8 (anteprima cliente)
  • Intel Core i3 - 2350M
  • 8 GB RAM

Apprezzerei qualsiasi tentativo di aiuto! Cordiali saluti.

–UPDATE–

Poiché l'utente qui sotto ha postato un'ottima risposta, ho notato che il processo che sta mangiando la maggior parte della CPU del sistema si chiama Arthurx.sys, semplice google dice che si tratta di un driver TPLink (un adattatore wifi, ho comprato tipo 2 settimane fa!) driver è stato installato dalla MSDN di Windows, ma ho anche provato a installare i driver dal CD allegato, ma non è di aiuto. Dall'inizio del sistema, sta usando solo il 5% della CPU, ma dopo 2-4 ore di lavoro sta crescendo e sta raggiungendo il 40-60% dell'utilizzo della CPU.

Nome del dispositivo: TPLink WN722N

Risposte (5)

107
107
107
2017-01-06 20:34:09 +0000

Per diagnosticare i problemi di utilizzo della CPU, si dovrebbe usare Event Tracing for Windows (ETW) per catturare i dati di campionamento della CPU / Profilo.

Per catturare i dati, installare il Windows Performance Toolkit , che fa parte del Windows SDK .

Il Windows 10 WPT può essere usato su Windows 8/Server 2012, Windows 8.1/Server 2012R2 e Windows 10/Server 2016. Se si usa ancora Windows 7, usare SDK/WPT con Build 15086 .

(tutte le altre voci possono essere deselezionate)

Ora eseguire WPRUI.exe, selezionare First Level, sotto Risorsa selezionare Utilizzo CPU e cliccare su avviare.

Ora catturare 1 minuto di utilizzo della CPU. Dopo 1 minuto, cliccare su Salva.

Ora analizzare il file ETL generato con il Performance Analyzer di Windows trascinando il grafico di CPU Usage (sampled) su analysis pane e ordinando le colonne come si vede nell'immagine:

All'interno di WPA, caricare i simboli di debug ed espandere la pila del processo SYSTEM. In questa demo, l'utilizzo della CPU proviene dal driver nVIDIA.


Nella demo seguente, l'utilizzo della CPU proviene dal driver Realtek NIC:


Quando vedete chiamate come ntoskrnl.exe! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe!Mm Verificatore TrimMemory, ntoskrnl.exe! Verificatore KeLeaveCriticalRegion, questo significa che il Driver Verifier è abilitato. Anche questo danneggia molto le prestazioni e causa un elevato utilizzo del SISTEMA. Disattivare Driver Verifier e riavviare.


In questa demo, il driver iai2ce.sys (Intel Serial IO GPIO Controller driver) lo provoca:


In questo esempio, l'utilizzo della CPU proviene dal file rtsuvc.sys che sembra essere il Realtek UVC webcam Driver


Questa demo mostra che il driver Bitdefender ignis.sys


Nell'esempio seguente, l'utilizzo della CPU è valutato dal driver di rete broadcom bcmwl664.sys


Quando si vede ntoskrnl.exe!MiZeroWorkerPages come causa, è più complicato. Ciò significa che la funzione del kernel che azzera la memoria prima di poterla riutilizzare causa l'elevato utilizzo della CPU:

Non c'è un modo reale di rilevare quale processo lo causi, ma so che Chrome può causarlo se si ha l'accelerazione hardware abilitata in Chrome. Quindi se vedete questo e usate Chrome, disattivate l'accelerazione hardware in Chrome.


Quando vedete questi ntoskrnl.exe!RtlpGenericRandomPatternWorker, ntoskrnl.exe!RtlpTestMemoryRandomUp chiama

l'uso della CPU viene dal Kernel per testare la memoria per problemi (memtest). Questo utilizzo viene attivato tramite il task di manutenzione inattivo di Windows 8.1/10. È possibile utilizzare il Task Scheduler per disattivare il task inattivo.

In Windows 10, il task si chiama RunFullMemoryDiagnostics sotto Microsoft > Windows > MemoryDiagnostic > RunFullMemoryDiagnostic.


In questo caso, l'utilizzo della CPU sembra provenire dalla funzione Data Deduplication Feature (dedup.sys!DdpPostCreate) di Windows Server:


In questa demo, l'utilizzo della CPU è causato dal driver della scheda WIFI athrx.sys

Cerca un aggiornamento del driver se lo vedi.


Nella seguente demo, è coinvolto un driver citrix:

Contattate il vostro IT per sapere come risolvere i problemi Citrix.


In questa demo, la funzione usbhub.sys!UsbhPortRecycle causa l'utilizzo della CPU:

Modifica delle porte USB2.0 a 1.1 velocità o collegamento di unità USB ad altre USB 2. 0 porte aiutate per alcuni utenti.


In questo caso, una piccola quantità di utilizzo del SISTEMA deriva dal driver Acronis tdrpm251.sys:


In questa demo, l'utilizzo della CPU ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc e ntoskrnl.exe!KeReleaseSpinLock.

quindi un driver sta utilizzando SpinLocks molto pesantemente. Disattivare alcuni dispositivi / driver fino a quando non si vede uno che lo causa.


In questo caso, l'utilizzo della CPU è causato dal driver L1C62x64.sys

Questo è il driver qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet. Quindi aggiornate il driver se lo vedete nella pila.


In questo caso, l'utilizzo della CPU viene dalla scansione del file host (netbt.sys! DelayedScanLmHostFile)

assicuratevi che il vostro file host non sia troppo grande per evitare questo utilizzo.


In questo caso, l'utilizzo della CPU viene da SRTSP64.SYS di symantec.

Aggiornate il vostro prodotto symantec usato all'ultima versione.


In questo caso, l'utilizzo della CPU proviene dal driver della GPU AMD (atikmdag.sys)

se vedete questo, andate sul sito AMD e prendete l'ultimo driver per la vostra scheda AMD.


Qui, i driver TMXPFlt.sys e VsapiNt.sys causano l'elevato utilizzo della CPU.

Da quello che vedo, questi file fanno parte della suite AV di Trend Micro. Aggiornare lo strumento o rimuoverlo.


In questo esempio, l'utilizzo della CPU deriva dalla funzione ntoskrnl.exe!MmGetPageFileInformation

Questa funzione ottiene informazioni sul file di pagina.

Descrizione di routine: Questa routine restituisce informazioni sui file di paging attualmente attivi.

Disattivare il file di paging, riavviare e riattivarlo e vedere se questo lo corregge. Inoltre, rimuovendo i servizi Intel (ad esempio Intel Content Protection HECI Service) sembra averlo corretto per un utente .


Qui, si può vedere che il driver Netwtw04.sys (driver Intel Wifi) chiama la funzione flushCompleteAllPendingFlushRequests e questo causa un elevato utilizzo della CPU.

Poiché i simboli di debug vengono caricati, viene utilizzato il driver della posta in arrivo di Windows. Solo qui possiamo ottenere i simboli di debug per vedere il calltack con il nome della funzione flushCompleteAllPendingFlushRequests.

Qui, si dovrebbe installare l'ultimo driver di Intel per correggerlo.


Il caso più complicato di utilizzo del SISTEMA è l'utilizzo di ACPI.sys nel calltack:

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

questo è estremamente difficile da debuggare. In un sysinternals topic , ho elencato alcuni consigli:

  • assicurarsi che la CPU non si surriscaldi a causa della polvere nella ventola della CPU
  • aggiornare o ri-flash lo (stesso) BIOS/UEFI
  • caricare le impostazioni predefinite del BIOS/UEFI
  • assicurarsi che la batteria non sia danneggiata, rimuovere la batteria dal notebook o disattivare la batteria nel device manager.
  • cambiare jumper su HDD caddy se si è sostituito il DVD/Blue-Ray Drive con un Caddy per installare un SSD accanto al vecchio HDD


Nella seguente demo, il driver Intel HD igdkmd64.sys nella versione .4574 per l'Intel HD 630 causa il problema:

&005

La soluzione è di aggiornare al driver con la versione di almeno . 4590.


Nel seguente caso, l'utilizzo della CPU del processo SYSTEM è causato dal driver stdriverx64.sys

&005

Questo sembra essere un [ driver di streaming audio ]&003. Quindi aggiornare questo software/driver se lo vedete in WPA.


Se vedete un driver chiamato risdxc64.sys nel calltack di SYSTEM che causa l'elevato utilizzo della CPU, aggiornate il Ricoh PCIe SDXC/MMC Host Controller driver o disabilitate il lettore di schede SD nel device manager se nessun aggiornamento del driver lo corregge.

&005

Questo lettore di schede SD sembra essere integrato in molti dispositivi Lenovo.


L'utente @stevemidgley ha mostrato un nuovo problema di maggiore utilizzo della CPU con Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk

&005

Qui è possibile vedere un driver UDE.sys che lo causa.

Nel simbolo hub

&005 &005

vedo che appartiene al driver del modem e i dati PNP della traccia mostra Fibocom L850-GL (LTE Modem) come possibile dispositivo:

&005

E la soluzione è quella di disattivare il modem e il dispositivo composito USB in device manager.


93
93
93
2013-01-03 13:13:47 +0000

Ciò può essere causato da un driver difettoso o da un altro modulo caricato dal sistema. Per guardare all'interno del processo di sistema, si può usare uno strumento come Process Explorer .

Scaricare ed eseguire, quindi selezionare il processo di sistema, fare clic con il tasto destro del mouse e selezionare Proprietà:

Passare alla scheda Threads (ignorare la finestra di dialogo che menziona i simboli):

Questo mostrerà quale file sta usando l'uso eccessivo della CPU, da cui si può poi tentare di diagnosticarlo.

Come altri hanno detto nei commenti, tuttavia, è davvero necessario allontanarsi dalle versioni di Anteprima il più presto possibile!

4
4
4
2017-07-13 17:19:04 +0000

Una nota sul caricamento dei simboli di debug da aggiungere all'eccellente risposta di magicandre1981 : se il caricamento dei simboli in Windows Performance Analyzer funziona correttamente, dopo aver spuntato Trace > Load Symbols si dovrebbe vedere una barra di avanzamento in alto con Loading symbols che mostra i nomi dei file accanto e richiede diversi minuti per essere completata. Inoltre si dovrebbero vedere molte righe come la seguente nella console diagnostica:

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

Se non si vede nessuno di questi due, il caricamento dei simboli di debug probabilmente non ha funzionato e non si sarà in grado di interpretare correttamente la traccia.

Nel mio caso inizialmente il caricamento dei simboli di debug non ha funzionato. L'ho risolto seguendo queste istruzioni :

  1. Scoprite se state usando la versione x86 o x64 del Windows Performance Toolkit.

    1. Copiare i file dbghelp.dll e symsrv.dll dalla corretta directory di debugger nella directory del Performance Toolkit di Windows. Sul mio sistema, le directory rilevanti sono:
  2. Riavviare Windows Performance Analyzer in modo che venga rilevata la versione corretta di dbghelp.dll.

-1
-1
-1
2014-12-27 21:50:04 +0000

Ho avuto lo stesso problema, è scomparso quando ho rimosso uno dei moduli RAM. Sembra che fosse difettoso. Esecuzione di Windows 7, 32 bit.

-1
-1
-1
2018-02-11 21:19:31 +0000

In primo luogo, la recensione e le informazioni fornite sono molto informative, ma di solito si può capire questo con molta meno intelligenza! Ho semplicemente usato MSCOFIG.EXE e una ricerca binaria per isolare il servizio offensivo. Ho scoperto che la maggior parte dei problemi come questo sono causati dal software Intel. Inizio con la disabilitazione di qualsiasi servizio che non ha un nome aziendale. Poi comincio con i servizi Intel. Poi la ricerca binaria completa. Di solito ci vuole al massimo un'ora per risolvere il problema nel PC di qualcuno. Intel non è mai stata una buona azienda di computer, e il loro software lo dimostra. Ammettiamolo, l'architettura di Pentium era vecchia di dieci anni quando è stata rilasciata. Chi avrebbe costruito un'architettura di computer con memoria paginata ai tempi del VAX? Beh, non vi annoierò con la storia. Non che io sia un fan di AMD o Microsoft. Forse un giorno torneremo a costruire computer veri e propri.