Come posso analizzare un uso eccessivo della CPU in modalità kernel di Windows?


8

La mia macchina Windows XP ha recentemente iniziato a bloccarmi su ogni strano riavvio dopo pochi minuti di utilizzo (programmi diversi / nessun avvio aggiuntivo).


Aggiornamento: ora sono riuscito a ottenere un po 'più di dettagli con Process Explorer. Questa è una CPU a 2 core e l'utilizzo del kernel al 100% è solo su un core. L'elenco dei processi mostra DPC - Chiamate di procedura differite al 50% (ovvero il 100% su un core). Quindi la domanda ora è: ** Cos'è DPC e come posso risolverli ??


Prossimo aggiornamento : OKIES ... usando questo e che sono stato in grado di far funzionare xperf sul mio Windows XP, e i dump di esempio che ho preso vengono visualizzati bene sul mio laptop Win7. Sì, è necessario un computer Win7 / Vista per visualizzare i dump eseguiti su Windows XP. Tuttavia , ora sto affrontando il seguente problema, posso abilitare xperf tracciamento , xperf -on Latencye il problema ora anche reoccurred mentre xperf tracciato era accesa, ma non appena il mio DPC va al 100%, Windows non si avvia nessun nuovi processi (o la loro l'avvio non finisce mai) (una finestra aperta, ad esempio cmd, rimane reattiva , ma ogni exe che provi anche tu chiama si blocca (dirfunziona bene perché è un comando cmd) - Posso solo supporre che si CreateProcessblocchi con una parte del kernel). Ora, non essere in grado di avviare alcun nuovo processo significa che non posso eseguirlo xperf -d dumpfile.etl, perché , quando entro nella finestra cmd, si blocca .

Quindi sembra che io sia sfortunato qui. Preferirei buttare via l'intero impianto piuttosto che iniziare a disabilitare manualmente i driver ... :-)

Altre idee apprezzate!


Cioè, mentre Windows è rimasto reattivo teoricamente (ad esempio, il cursore del mouse si spostava normalmente e io potevo fare clic, e il clic alla fine veniva riconosciuto) alle azioni intraprese dall'utente veniva risposto solo dopo pochi minuti (letteralmente).

Esempio: premere il tasto Bloc Num sulla tastiera normalmente attiva o disattiva il LED Bloc Num sulla tastiera. Questo è anche il caso della mia macchina semi-congelata, ma solo dopo un minuto o due.

Una volta sono riuscito a lanciare Process Explorer e, dopo alcuni minuti, il grafico delle informazioni di sistema indicava chiaramente il 100% dell'utilizzo della CPU sulla linea rossa (modalità kernel) e la linea verde rimaneva su zero. In questo stato, sebbene il grafico fosse ancora aggiornato sullo schermo, la macchina non poteva più funzionare. (Beh, a meno che tu non sia disposto ad aspettare qualche minuto dopo ogni clic.)

Quindi, ora mi chiedo quale potrebbe essere il problema, poiché non ho installato nulla di nuovo su questa macchina per settimane, sicuramente non prima di vedere questo comportamento. (Il riavvio a volte aiuta, a volte ho bisogno di un secondo o terzo riavvio prima che la macchina diventi utilizzabile per un periodo di tempo più lungo.)

Ora, come posso scoprire cosa sta effettivamente causando l'uso eccessivo della modalità kernel?


Nota: pubblicato anche questo nei forum sysinternals .


Un modo sarebbe quello di utilizzare il processo di eliminazione. In XP, esegui il programma MSCONFIG e vai nella scheda STARTUP e disabilita tutto, quindi riavvia e vedi se lo risolve. In caso contrario, provare un programma come AUTORUNS o HijackThis e ottenere più aggressivo sull'eliminazione. Una volta ripristinate le operazioni, riattiva le cose una alla volta. Il 90% delle schifezze che viene eseguito all'avvio non è necessario, l'altro 10% è
junkware

@Psycogeek - apprezzato. Preferirei non farlo, poiché ciò richiederebbe giorni che non ho :-)
Martin

ahh i suoi minuti per disabilitare la spazzatura di avvio, sono giorni per disabilitare i driver di dispositivo :-) quando provo a concentrarmi sul tuo problema, usando tutta la tua serie di indizi, in realtà suona più come qualcosa di tipo virus. ma potrebbe facilmente essere un dispositivo che non risponde. Hai delle cose bloccate esternamente che puoi rimuovere temporaneamente? hai eseguito un controllo dei dischi, come ad esempio un test SMART delle unità. per vedere se hai qualche indizio da questo?
Psycogeek,

Ok, ora (dpc) dovrò controllare le cose qui: superuser.com/q/202254/50211 e vedere se riesco ad arrivare in fondo a questo.
Martin,

Qual'era il risultato?
stej,

Risposte:


2

Puoi scoprire quale routine DPC sta causando i blocchi usando uno strumento come LatencyMon ( http://www.resplendence.com/latencymon ). Basta cercare la routine DPC che impiega il tempo totale più lungo.


Chiaramente, LatencyMon non funziona in Windows XP. E la domanda riguarda un problema di prestazioni nel sistema Windows XP.
Edward,

Non ne ero a conoscenza - grazie. Il mio suggerimento è sempre lo stesso: basta usare un programma diverso invece di quello. Un esempio: DPC Latency Checker ( thesycon.de/deu/latency_check.shtml ).
Zero3,

In realtà, le funzionalità di LatencyMon sono molto migliori / più facili da usare per gli utenti finali rispetto a Latency Checker. Sistema di analisi LatencyMon e fornire informazioni molto dettagliate, al livello di quale driver consuma la maggior parte delle risorse, quale ha il peggior effetto sulle prestazioni del sistema. Un altro aspetto, Latency Checker mostra solo un grafico che fornisce solo le informazioni di base. Questo è il tuo sistema per latenza DPC o no. Altre opere sono tutte tue. Ho problemi a trovare uno strumento uguale / simile per XP, che funziona allo stesso modo di LatencyMon.
Edward,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.