Il comando Top di Linux serve a monitorare in tempo reale lo stato dei processi di sistema.
Può essere utile a scoprire cosa sta impegnando severamente la CPU oppure cosa c’è nella RAM (magari un processo “cresciuto” troppo). Si tratta di un comando estremamente comodo e di semplice interpretazione, installato di default in gran parte delle distribuzioni Linux più comuni.
Per lanciarlo, semplicemente scriviamo:
top
Otterremo una schermata come questa:

Cerchiamo ora di capire cosa ci racconta il comando Top.
Nella prima riga, che inizia con top, troviamo:
- ora attuale
- uptime della macchina, cioè il tempo trascorso dall’avvio del sistema
- utenti connessi
- load average, ovvero il carico medio del sistema rispettivamente nell’ultimo minuto, negli ultimi 5 minuti, nelll’ultimo quarto d’ora. Valori intorno a 1 non sono preoccupanti, valori maggiori di 1 indicano che un processo per essere eseguito deve attendere. L’attesa sarà maggiore tanto più risulta maggiore questo valore.
Nella seconda riga, che inizia con Tasks, troviamo:
- processi in esecuzione
- processi attivi
- processi in sleeping
- processi stoppati
- processi zombie, cioè processi avviati da un processo padre che attendono di essere fermati da quest’ultimo
Nella terza riga, che inizia con CPU, troviamo:
- carico dei processi utente
- carico dei processi di sistema
- carico dei processi con priorità di aggiornamento nice
- percentuale di inattività della cpu
- percentuale dei processi in attesa di operazioni I/O
- percentuale della CPU per interrupt hardware
- percentuale della CPU per interrupt software
- “quantità” di CPU usata da (eventuali) macchine virtuali
Ad esempio nel mio caso vediamo che i processi utente occupano l’1,8% della CPU, mentre i processi di sistema lo 0,5%.
Nella quarta e quinta riga troviamo le informazioni relative alla memoria RAM e all’area di SWAP.
Infine, abbiamo l’elenco di tutti i processi in esecuzione, ognuno corredato da una serie di informazioni utili a capire lo stato del processo stesso e il suo impatto sul sistema:
- PID – ID del processo
- USER – utente proprietario del processo
- PR – priorità in cui il processo è stato lanciato
- NI – valore rappresentante il valore “NICE”
- VIRT – memoria virtuale utilizzata dal processo
- RES – memoria fisica utilizzata dal processo
- SHR – memoria condivisa dal processo
- S – stato del processo: S=sleep R=esecuzione Z=zombie
- %CPU – percentuale del processo sul carico sulla cpu
- %MEM – percentuale del processo sul carico della RAM
- TIME+ – tempo di attività del processo
- COMMAND – nome del processo
Possiamo anche manipolare le informazioni visualizzate dal comando Top, usando le seguenti opzioni:
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 – chiude un processo
q – esce dal comando Top
Ad esempio per killare un processo con ad esempio PID 1234, basta premere la lettera k e inserire 1234 come PID.
Attenzione perchè le opzioni appena viste rispettano maiuscole e minuscole.
Esiste anche una versione più evoluta del comando Top, il comando HTop, che spesso però non è presente di default. Mi riservo di parlarne in futuro in un post apposito.
Alla prossima..