[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: interpretare output di top



On Monday 01 October 2007 09:03, Lucio Crusca wrote:
> La CPU risulta occupata per il 23.8% da processi userspace, ma facendo
> la somma dell'occupazione dei processi elencati si raggiunge appena il
> 5%. Chi sta usando il restante 18.8%?

Purtroppo non è così semplice.  'Top' aggiorna i dati a intervalli 
regolari, ad esempio 3 o 5 secondi, usando le informazioni che il kernel 
mette a disposizione nel filesystem /proc.

Questi intervalli di tempo, per quanto brevi, sono piuttosto lunghi per il 
kernel.  Sommariamente si può dire che: il kernel misura il tempo in 
multipli di intervalli piccolissimi chiamati "jiffies"; quando si compila 
il kernel, a seconda dell'uso a cui è destinato, si può cambiare il valore 
di una variabile che decide quanti di questi jiffies al secondo ci 
saranno; nel caso di Linux essi sono 100, oppure 250 oppure 1000.  

Un qualsiasi processo in esecuzione sarà eseguito in parte in modalità 
utente e in parte in modalità kernel (ad esempio quando il processo fa una 
chiamata di sistema per accedere a file, ecc.).  Le informazioni relative 
al tempo di CPU di un processo in termini di jiffies sono contenute nel 
file "/proc/PID/stat", dove PID indica il numero che identifica il 
processo: il campo 14 e 15 indicano rispettivamente "utime", cioè quanti 
jiffies in modo utente, e "stime" cioè quanti in modo kernel.

Ad esempio per il processo 1 (init):
   # cat /proc/1/stat | awk '{ print $14, $15;}'
   0 48
   #

48 jiffies su questo sistema sono 0.192 secondi. Così pochi che 'ps', 
approssimando, dichiara lo 0.0%.

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1   1948   652 ?        Ss   08:45   0:00 init [2]

Il valore "%CPU" qui corrisponde al rapporto tra tempo di cpu impiegato e 
tempo di esecuzione del processo.  Come si legge nella pagina man 
di 'ps': "è piuttosto improbabile che la somma delle percentuali di 
utilizzo della CPU corrisponda esattamente al 100%".

Saluti.

alfredo



Reply to: