Il comando top è stato pensato per aiutare gli utenti ad individuare i processi attivi e quando alcuni applicativi utilizzano la memoria RAM o la CPU di più rispetto a quando dovrebbero.
Il comando top è molto semplice da usare. A video viene generalmente visualizzato un risultato simile a questo:
top – 22:09:08 up 14 min, 1 user, load average: 0.21, 0.23, 0.30
Tasks: 81 total, 1 running, 80 sleeping, 0 stopped, 0 zombie
Cpu(s): 9.5%us, 31.2%sy, 0.0%ni, 27.0%id, 7.6%wa, 1.0%hi, 23.7%si, 0.0%st
Mem: 255592k total, 167568k used, 88024k free, 25068k buffers
Swap: 524280k total, 0k used, 524280k free, 85724k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3166 apache 15 0 29444 6112 1524 S 6.6 2.4 0:00.79 httpd
3161 apache 15 0 29444 6112 1524 S 5.9 2.4 0:00.79 httpd
3164 apache 15 0 29444 6112 1524 S 5.9 2.4 0:00.75 httpd
3169 apache 15 0 29444 6112 1524 S 5.9 2.4 0:00.74 httpd
3163 apache 15 0 29444 6112 1524 S 5.6 2.4 0:00.76 httpd
3165 apache 15 0 29444 6112 1524 S 5.6 2.4 0:00.77 httpd
3167 apache 15 0 29444 6112 1524 S 5.3 2.4 0:00.73 httpd
3162 apache 15 0 29444 6112 1524 S 5.0 2.4 0:00.77 httpd
3407 root 16 0 2188 1012 816 R 1.7 0.4 0:00.51 top
240 root 15 0 0 0 0 S 0.3 0.0 0:00.08 pdflush
501 root 10 -5 0 0 0 S 0.3 0.0 0:01.20 kjournald
2794 root 18 0 12720 1268 560 S 0.3 0.5 0:00.73 pcscd
1 root 15 0 2060 636 544 S 0.0 0.2 0:03.81 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.07 events/0
La prima linea dall’alto:
top – 22:09:08 up 14 min, 1 user, load average: 0.21, 0.23, 0.30
“22:09:08? indica l’ora corrente; “up 14 min” indica da quanto tempo il sistema è stato avviato; “1 user” quanti utenti sono collegati al sistema; “load average: 0.21, 0.23, 0.30? indica il carico medio del server (1minute, 5 minutes, 15 minutes).
Il carico medio è il risultato di una serie di calcoli per valutare l’utilizzo medio della CPU in un determinato periodo di tempo. Un carico medio pari a 1 significa che la CPU è completamente utilizzata ma i programmi non necessitano di attendere per essere utilizzati. Un carico medio superiore a 1 indica che i programmi dovranno aspettare per essere utilizzati e che il sistema diventerà più lento. Se il carico medio è molto sopra a e il server è molto lento, consigliamo di espandere il servizio e richiederne uno più performante.
La seconda linea dall’alto:
Tasks: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie
Mostra il numero dei processi e il loro stato attuale
La terza linea dall’alto:
Cpu(s): 9.5%us, 31.2%sy, 0.0%ni, 27.0%id, 7.6%wa, 1.0%hi, 23.7%si, 0.0%st
Mostra il dettaglio di utilizzo della CPU. “9.5%us” i processi utente occupano il 9.5%; “31.2%sy” i processi di sistema occupano il 31.2%; “27.0%id” la percentuale di CPU disponibile; “7.6%wa” tempo di attesa IO della CPU.
Come prima cosa contrllare il valore del %id per vedere quanta parte di CPU è disponibile. Se il valore di %id è basso allora controllare %us e %wa per capire che occupa la CPU.
La quarta linea dell’alto:
Mem: 255592k total, 167568k used, 88024k free, 25068k buffers
Swap: 524280k total, 0k used, 524280k free, 85724k cached
Mostra l’utilizzo della memoria: “255592k total” è la memoria totale del sistema; “167568K used” è la parte di RAM che contiene dati; “88024k free” è la parte di RAM che non contiene dati; “25068K buffers and 85724k cached” è la parte di RAM che contiene dati per l’IO.
Per calcolare la quantità corretta di memoria disponibile bisogna usare la seguente formula :
memoria libera + (memoria buffers + memoria cached)
88024k + (25068k + 85724k) = 198816k
Per calcolare quanta memoria è usata dai programmi :
memoria usata – (memoria buffers + memoria cached)
167568k – (25068k + 85724k) = 56776k
Top visualizza i processi ordinati sulla base della quantità di CPU che utilizzano in ordine decrescente. I processi vengono indicati con questi dati :
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3166 apache 15 0 29444 6112 1524 S 6.6 2.4 0:00.79 httpd
PID – l’ID del processo
USER – l’utente che ha lanciato il processo
PR – la priorità del processo
NI – l’indice del processo (un valore più alto indica una priorità minore)
VIRT – il valore complessivo di memoria virtuale utilizzata
RES – la dimensione del task residente
SHR – la quantità di memoria condivisa utilizzata
S – stato del task. I valori possibili sono S (sleeping), D (uninterruptible sleep), R (running), Z (zombies), o T (stopped or traced)
%CPU – percentuale di CPU utilizzata
%MEM – percentuale di memoria utilizzata
TIME+ – il tempo totale di CPU utilizzata
COMMAND – comando lanciato
Lavorare con TOP
Ora che abbiamo individuato le informazioni che vengono fornite da TOP possiamo vedere come modificare come queste informazioni vengono visualizzate. Per modificare la visualizzazione basta premere uno di questi tasti :
M – Ordina sulla base della memoria in uso
P – Ordina sulla base della CPU in uso
T – Ordina sulla base del tempo complessivo
z – Cambia colore
k – Chiudi un processo
q – Esci
Ad esempio per eliminare il processo con un PID = 3161, premere “k” e quindi inserire il numero di PID : 3161.