Come diagnosticare picchi di CPU Ubuntu / IO aspettare?


19

Sto usando Ubuntu e ogni paio di minuti non risponde per mezzo secondo a un secondo intero, il che non è normalmente un problema ma rende estremamente frustrante il tentativo di codificare quando si tenta di colpire backspace o navigare nel codice e non succede nulla. Il problema è che i blocchi sono così brevi che top non ha il tempo di mostrarmi cosa sta picchiando la CPU (supponendo che qualcosa lo sia, ma non so cos'altro potrebbe causare questo).

Qualcuno sa come risolvere questo problema di prestazioni?

Modifica: ho provato ad accedere con Gnome Classic (No Effects) invece di Unity ma si blocca ancora una volta ogni tanto.

Modifica: il grafico della CPU non sembra mostrare alcun picco reale, quindi sembra che tu abbia ragione e che la mia diagnosi originale di picchi della CPU sia il problema era errata, ora sospetto che IO aspetti. Non ricordo che questo accadesse per le brevi settimane in cui avevo Windows 7 Starter in esecuzione, tuttavia, il che mi porta a credere che non sia (solo?) L'hardware ... c'è qualcosa che posso modificare per migliorarlo? Sto usando un Acer Aspire One D257, con Ubuntu 11.10.

Modifica: l'output di dmesgè su http://paste.ubuntu.com/1060054/ e kern.log è su http://paste.ubuntu.com/1060055/


Questa domanda è interessante sia nel caso generale , sia in quello particolare.
Rafał Cieślak,

1
Attivando un grafico della CPU, puoi sapere con certezza se è un picco della CPU che sta causando il rallentamento. L'I / O potrebbe essere un altro colpevole o ritardo della rete in alcuni casi. Succede, indipendentemente dal programma che stai utilizzando attivamente in quel momento?
David Oneill,

Ottimo punto David, lo farò. Uso sempre Vim e Firefox su questa macchina, sono sempre aperti e succede indipendentemente da ciò che è in primo piano. All'inizio ho pensato che fosse la generazione automatica di ctag da Vim, ma dopo aver commentato quella sezione e aver cancellato il mio intero file vimrc, il problema si verifica ancora. Proverò il grafico per vedere se è davvero un picco della CPU o IO attendere.
Jeff Welling,

Quanto non risponde? Il puntatore del mouse non si aggiorna?
AdamKG

Ci scusiamo per la risposta ritardata, penso che congela anche il puntatore, ma ha smesso di succedere o non me ne sono accorto tanto ultimamente. È interessante notare che ho anche avuto la mia unità di backup USB crittografata collegata e montata per la maggior parte del tempo ultimamente, il che mi fa chiedermi se ciò possa essere correlato. Sto provando a fare altri test con e senza l'unità collegata per determinare se A) è correlato e B) il puntatore smette di rispondere durante questi blocchi.
Jeff Welling,

Risposte:


12

Esistono due strumenti aggiuntivi che potresti voler controllare:

Se non ottieni ciò che desideri da questi due strumenti, potrebbe essere necessario utilizzare strumenti per sviluppatori come OProfile o Sysprof .

Tutti gli strumenti elencati sono disponibili nei repository ubuntu

Per quanto riguarda la tua osservazione con USB, da quello che ho sentito, alcuni controller USB si comportano in modo un po 'instabile con un determinato hardware che può causare interruzioni temporali, questo potrebbe causare quello che stai descrivendo. Prova a cercare la tempesta di interrupt USB e otterrai parecchi successi.


Certo, esaminerò i temporali di interruzione, ma il problema ha continuato a verificarsi anche dopo che ho smesso di usare i dispositivi USB su questo sistema così regolarmente. Gran parte del tempo programmerò sul modo di lavorare (transito) ed è allora che lo noterò.
Jeff Welling,

5

Ho usato htop per anni e ho finalmente scoperto come ottenere l'utilizzo della CPU in numeri e percentuali, sono sorpreso di aver perso questo.

immagine hwa iowait

Premi F2

Freccia su "Metri disponibili"

Evidenzia media CPU

F5 o F6 da aggiungere alla colonna

Freccia sull'elemento "CPU [Bar]"

Premi F4 fino a ottenere "CPU [Testo]"

Puoi anche ottenere IORates

F2-> Colonne-> Disponibile

Aggiungi IO_RATE, IO_READ_RATE, IO_WRITE_RATE


2

Il modo migliore per vederlo è usare un'applicazione da riga di comando come topo htop Installa htop .

superiore
superiore

htop
htop

Dovresti guardarlo per un po 'fino a quando non vedi cosa causa lo spike (se è davvero uno spike nell'uso della CPU e non nell'attesa di I / O, che potrebbe non essere colto in tutti i casi).


1
Ho familiarità con top ma non htop, htop indica IO wait / come interpreto quella parte del suo output? Ho controllato le FAQ sul sito Web di htop, ma non ho menzionato IO wait.
Jeff Welling,

@JefWelling: non ha paura. Entrambi lo mostreranno comunque come utilizzo della CPU.
RolandiXor

C'è un monitor aggiuntivo per le attività di I / O. Si chiama iotop (vedi la risposta di danjo133s).
FuzzyQ,

2

Uno strumento nuovo e molto utile è cpustat Ha un'interfaccia grafica che ti consente di monitorare più pid nel tempo.

inserisci qui la descrizione dell'immagine

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.