2012-12-09 8 views
8

sto usando un processore ARM piccola single core in esecuzione sotto Debian e hanno difficoltà a capire l'uscita di utilizzo della CPU superiore, vedi:Understanding Linux superiore CPU uscita utilizzo

top - 15:31:54 up 30 days, 23:00, 2 users, load average: 0.90, 0.89, 0.87 
Tasks: 44 total, 1 running, 43 sleeping, 0 stopped, 0 zombie 
Cpu(s): 65.0%us, 20.3%sy, 0.0%ni, 14.5%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st 
Mem:  61540k total, 40056k used, 21484k free,  0k buffers 
Swap:  0k total,  0k used,  0k free, 22260k cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND                      
26028 root  20 0 2536 1124 912 R 1.9 1.8 0:00.30 top                       
31231 root  19 -1 45260 964 556 S 1.9 1.6 1206:15 owserver                     
    3 root  15 -5  0 0 0 S 0.3 0.0 0:08.68 ksoftirqd/0                     
    694 root  20 0 28640 840 412 S 0.3 1.4 468:26.74 rsyslogd   

La colonna% CPU è molto basso sopra tutti i processi, in questo esempio è tutto insieme 4,4% (tutti gli altri processi erano stati impostati su 0%) Ma la CPU allover sulla riga 3 mostra il 65% di noi e il 20% di sy, quindi per entrambi un valore molto alto - e comunque, questo è il modo in cui il sistema si sente: molto lento :-( Il sistema è quasi sempre in questa condizione: CPU molto bassa per tutti i processi, ma CPU utente alta + sistema Qualcuno può spiegare perché c'è un tale Elevata incoerenza all'interno dell'output dell'utensile superiore? E quale strumento posso usare per scoprire meglio cosa causa l'utilizzo elevato della CPU del sistema utente + - il top sembra essere inutile qui.

aggiornamento: nel frattempo ho trovato questa discussione here, che discute una domanda simile, ma non può verificare ciò che è scritto lì:

  • Il comando uptime mostra l'utilizzo medio della CPU per 1/5/15 minuti
  • Questo è simile a quello della prima riga di in alto in uscita come somma di% us +% sy. Ma questo sta cambiando molto, forse è una media ogni 10 secondi?
  • Anche se in cerca di tempo più lungo in uscita superiore, la somma di% su +% sy è sempre parecchie volte superiore alla sintesi di tutte le CPU%

Grazie Achim

risposta

6

si dovrebbe leggere il manpage di top per capirne l'output in modo più astuto. Dalla pagina di manuale:

% della CPU - l'utilizzo della CPU

La parte del compito del tempo di CPU trascorso dall'ultimo aggiornamento dello schermo, espressa come percentuale del tempo totale di CPU. Il tempo di aggiornamento dello schermo predefinito è 3 secondi, che può essere modificato con #top -d ss.tt. Per misurare l'utilizzo della CPU commulativa, eseguire top -S.

-S: modalità tempo cumulativo levetta

Inizia superiore con l'ultimo ricordata stato 'S' invertita. Quando 'Modalità cumulativa' è On, ogni processo è elencato con la volta della CPU che esso e i suoi figli morti hanno usato.

Gli stati della CPU sono visualizzati nell'area di riepilogo. Vengono sempre visualizzati in percentuale e si riferiscono all'intervallo tra l'ora e l'ultimo aggiornamento.

us -- User CPU time 
     The time the CPU has spent running users' processes that are not niced. 

    sy -- System CPU time 
     The time the CPU has spent running the kernel and its processes. 

    ni -- Nice CPU time 
     The time the CPU has spent running users' proccess that have been niced. 

    wa -- iowait 
     Amount of time the CPU has been waiting for I/O to complete. 

    hi -- Hardware IRQ 
     The amount of time the CPU has been servicing hardware interrupts. 

    si -- Software Interrupts 
     The amount of time the CPU has been servicing software interrupts. 

    st -- Steal Time 
     The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine). 

In circostanze normali%% s% dovrebbe sempre essere superiore.