Comando top in Linux: monitorare CPU, memoria e processi

top aggiorna periodicamente l’uso della CPU, della memoria e lo stato dei processi. È uno strumento interattivo utile per individuare le attività che consumano risorse quando un server rallenta.

La parte superiore presenta un riepilogo del sistema; sotto compaiono i valori dei singoli processi. Osserva più aggiornamenti per distinguere un picco occasionale da un comportamento persistente. Per chiudere la schermata premi q.

Sintassi di base

top [opzioni]

La guida si riferisce a procps-ng su Linux. Implementazioni e opzioni possono variare: verifica man top nella tua installazione. Per l’uso interattivo apri un terminale; per un’istantanea senza interazione usa la modalità batch descritta sotto.

Esempi pratici

Aprire la vista aggiornata

Durante l’esecuzione premi P maiuscola per ordinare per CPU e M maiuscola per memoria. Confronta alcuni aggiornamenti e premi q per uscire. Questi tasti vanno premuti dentro top, non digitati come comandi della shell.

top

Osservare un PID specifico

Il PID è l’identificatore del processo. Sostituisci 1234 con quello che hai trovato, per esempio con ps. La vista permette di concentrarsi sulle variazioni di quel processo.

top -p 1234

Se il processo termina, il PID non rappresenta una prenotazione permanente della stessa attività: prima di intervenire verifica nuovamente il bersaglio.

Stampare una sola iterazione

-b attiva l’output batch e -n 1 limita l’esecuzione a una schermata, poi termina. È utile quando serve testo anziché una sessione interattiva. Il risultato rappresenta una rilevazione, non un monitoraggio prolungato.

top -b -n 1

Quali valori leggere per primi

In alto trovi il carico medio e il riepilogo di CPU e memoria; nella tabella sottostante compaiono PID, uso della CPU e memoria per processo. Per vedere soltanto le prime otto righe dell’output batch:

top -b -n 1 | head -n 8

Schema illustrativo della schermata: i puntini sono segnaposto, non valori misurati. Le otto righe selezionate possono mostrare solo il riepilogo; non garantiscono la presenza della tabella dei processi.

top - ... load average: ...
Tasks: ... total, ... running
%Cpu(s): ... us, ... sy, ... id
MiB Mem : ... total, ... free, ... used
    PID USER      %CPU %MEM COMMAND

load average riporta medie su 1, 5 e 15 minuti: non è una percentuale di CPU. Nella riga CPU, us riguarda il tempo dei processi utente senza priorità nice modificata, sy il kernel e id il tempo inattivo. Nella tabella, %MEM esprime la quota di memoria fisica residente del processo.

Non diagnosticare un problema dal solo %CPU: considera durata, ruolo dell’attività e variazioni fra aggiornamenti. Unità, colonne e disposizione dipendono da implementazione e configurazione. In particolare, il poco spazio indicato come free non basta da solo a dimostrare che la memoria sia esaurita.

Su Windows, nell’ambiente Git Bash disponibile per questa verifica, top non è installato. I quattro esempi eseguibili hanno superato il controllo sintattico di Bash, ma schermata, percentuali e tasti interattivi non sono stati provati su un sistema Linux.

Opzioni principali

Opzione Funzione
-p PID Limita l’osservazione al PID indicato.
-d secondi Imposta l’intervallo fra gli aggiornamenti.
-b Usa la modalità batch, senza input interattivo.
-n numero Limita il numero di iterazioni prima dell’uscita.

Per esempio, top -d 2 richiede aggiornamenti ogni due secondi; -d regola l’intervallo, mentre -n conta le iterazioni. In modalità batch non affidarti al tasto q: usa un limite -n per una raccolta finita.

Precauzioni nell’interpretazione e nei comandi

I valori iniziali di CPU e tempo accumulato dipendono dal momento osservato e dal metodo di calcolo. Non trattare la prima schermata come la media di un intervallo di monitoraggio. Osserva più aggiornamenti prima di confrontare attività diverse.

In modalità Irix, con processi multithread su più CPU, procps-ng può mostrare un valore superiore al 100%. La normalizzazione cambia fra le modalità Irix e Solaris; il tasto I le alterna. Un valore oltre 100% non significa automaticamente che la misurazione sia errata.

q chiude soltanto top, senza terminare i processi osservati. Il comando interattivo k, invece, richiede un PID e un segnale da inviare: può influire sul processo bersaglio. Per una semplice osservazione non serve usarlo. Se apri quel prompt per errore, Esc annulla l’operazione.

Domande frequenti

Come si esce da top?

Premi q nella schermata interattiva. È un comando interno di top, non della shell, e lascia in esecuzione i processi che stavi osservando. L’esempio batch con -n 1 termina invece automaticamente dopo una schermata.

Documentazione di riferimento

Per opzioni, campi e differenze di visualizzazione consulta il manuale top(1) di procps-ng e confrontalo con la documentazione della versione installata.