Come registrare il carico della CPU?


Risposte:


42

Funziona molto bene:

 while true; do uptime >> uptime.log; sleep 1; done
  • Ciò registrerà il caricamento della tua CPU ogni secondo e lo aggiungerà a un file uptime.log.

    Puoi quindi importare questo file in Gnumeric o nel foglio di calcolo di OpenOffice per creare un bel grafico (seleziona 'separato da spazi' durante l'importazione).

Come ha notato Scaine, questo non sarà sufficiente per diagnosticare il problema. Quindi, esegui anche questo (o usa la sua risposta per questa parte):

while true; do (echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail) >> ps.log; sleep 5; done
  • Questo aggiungerà i primi 10 processi più affamati di CPU a un file ps.logogni cinque secondi.

    Nota che questo non è il carico completo di informazioni topche ti darebbe. Questo è solo il top 10, e solo il loro utilizzo della CPU, l'utilizzo della memoria e il primo argomento (cioè il loro comando senza ulteriori argomenti, come in /usr/bin/firefox)

Dopo aver utilizzato un foglio di calcolo per creare un grafico per vedere quando il carico della CPU ha attraversato il tetto, è quindi possibile cercare questo file per il tempo più vicino per vedere quale processo lo ha causato.

Ecco come appariranno quei file:

uptime.log

~$ cat uptime.log 
 22:57:42 up 1 day,  4:38,  4 users,  load average: 1.00, 1.26, 1.21
 22:57:43 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 22:57:44 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 22:57:45 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 ...

ps.log

%CPU %MEM ARGS Mo 17. Jan 23:09:47 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.1  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
%CPU %MEM ARGS Mo 17. Jan 23:09:48 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.0  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
 ...

3
Questo stampa effettivamente l'utilizzo corretto della CPU ?? Ho provato questo su centos e solo l'uso della memoria era corretto :(
Menelaos Bakopoulos

Come posso far funzionare questo comando sul mio VPS anche dopo aver chiuso la connessione Putty?
Lucas Bustamante,

1
Se l'utilizzo della CPU segnalato da non ha pssenso, prova a eseguirlo come root.
Stefano Palazzo

Come posso fare in modo che questo comando continui a funzionare sul mio VPS anche dopo aver chiuso la connessione Putty ????
Mostafa,

10

È possibile eseguire il topcomando in modalità batch utilizzando l' -bopzione, quindi scaricarlo su un file.

All'avvio del PC, apri un terminale, esegui

top -b > ~/cpu.txt

Quindi quando il tuo PC si blocca, apri semplicemente il (probabilmente enorme) file di testo e controlla l'ultima voce per alcuni dettagli su ciò che era in esecuzione appena prima dell'incidente. Nel fatto che il file sarà così stupidamente grande che è meglio eseguire tail -250 ~/cpu.txtinvece un .

Controlla anche il tuo /var/log/kern.log nel caso in cui il tuo problema sia legato all'hardware (è improbabile che ciò avvenga solo dopo un aggiornamento, ma vale comunque la pena di controllarlo).



0

Per coloro che devono eseguire questo comando al termine della sessione putty (client SSH). puoi usare il comando screen(o installarlo usando apt-get)

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.