Sys Admin

Diagnostica dei problemi su server Linux in produzione: cinque strumenti essenziali

Diagnostica dei problemi su server Linux in produzione: cinque strumenti essenziali

Diagnostica Server Linux: 5 Comandi Essenziali

In un’infrastruttura IT moderna la disponibilità dei servizi è un requisito imprescindibile. La continuità operativa dipende dalla capacità di identificare e risolvere rapidamente i colli di bottiglia. Questo documento fornisce un approccio metodico alla diagnostica di problemi comuni su server Linux, illustrando cinque comandi fondamentali con esempi pratici e casi reali.

Monitoraggio delle risorse con top

Il comando top consente di osservare in tempo reale l’utilizzo della CPU e della memoria, mostrando i processi più onerosi.

top
%Cpu(s): 75.3 us,  5.0 sy, 18.9 id, 0.5 wa  KiB Mem : 16323056 total, 1524300 free, 12567200 used

Un valore elevato di attesa di I/O indica che i processi non sono limitati dalla CPU ma dalla lentezza di disco o rete.

Un’applicazione web era lenta nonostante il basso uso CPU. L’analisi con top ha mostrato un’attesa di I/O superiore al 20%. La soluzione è stata spostare il database su SSD e introdurre caching.

Controllo dello spazio disco con df

Il comando df mostra lo spazio disponibile sulle partizioni.

df -h
Filesystem      Size  Used Avail Use% Mounted on  /dev/sda1        80G   72G  4.5G  95% /

Un utilizzo superiore al 90% della root può causare blocchi nei processi.

Un server non accettava più connessioni SSH. df ha rivelato la saturazione della partizione root. La rimozione dei log obsoleti e l’introduzione della rotazione automatica hanno risolto il problema.

Analisi delle performance disco con iostat

Il comando iostat fornisce metriche dettagliate sulle prestazioni dei dischi.

iostat -x 1 3
Device:  r/s  w/s rkB/s wkB/s svctm %util  sda      2.0 45.0 120   3600  5.3   98.0

Un valore di %util vicino al 100% indica un disco saturo.

Un database presentava query lente. iostat ha mostrato un utilizzo disco al 98%. La soluzione è stata la migrazione verso dischi NVMe e la separazione dei log.

Verifica dei servizi attivi con netstat

Il comando netstat elenca i servizi in ascolto sulle porte di rete.

netstat -tulpn | grep LISTEN
tcp6   0   0 :::22     :::*   LISTEN  1234/sshd  tcp6   0   0 :::5432   :::*   LISTEN  2345/postgres

Se un servizio è in ascolto solo su 127.0.0.1, non sarà accessibile dall’esterno.

Un client remoto non riusciva a connettersi a PostgreSQL. Netstat mostrava il servizio limitato a localhost. La modifica della configurazione e l’apertura delle regole firewall hanno risolto il problema.

Consultazione dei log del kernel con dmesg

Il comando dmesg fornisce i messaggi del kernel utili per individuare errori critici.

dmesg -T | tail -20
[Mon Oct 1 19:33:45 2025] Out of memory: Kill process 3456 (java)

Questo messaggio indica che l’OOM killer ha terminato un processo per mancanza di memoria.

Un servizio Java terminava improvvisamente. L’analisi con dmesg ha mostrato l’intervento dell’OOM killer. La soluzione ha previsto la riduzione dell’heap JVM e l’aggiunta di memoria RAM.

Comandi come top, df, iostat, netstat e dmesg rappresentano il primo livello di diagnosi per un amministratore di sistema. Consentono di raccogliere evidenze oggettive e riducono i tempi di intervento, migliorando la resilienza complessiva delle infrastrutture Linux in produzione.