Diagnosi di un carico elevato su un VPS
Utilizzare htop, top e iotop-c per trovare il processo colpevole
Quando il tuo VPS inizia a rallentare – SSH sembra ritardato, i siti web rispondono lentamente o anche digitare nel terminale sembra lento – di solito significa che una o più risorse di sistema (CPU, RAM o I/O del disco) sono spinte al limite. Questa guida ti accompagna attraverso un processo pratico, passo dopo passo, per identificare cosa sta succedendo e quale processo è da incolpare, utilizzando tre strumenti standard di Linux: htop, top e iotop-c.
Il pubblico è presunto essere amministratori di sistema principianti o intermedi, familiari con la riga di comando e i concetti base di Linux.
Primo passo: Sapere cosa significa realmente "carico elevato"
Molte persone vedono un "carico medio" elevato e vanno nel panico – ma non tutti i carichi elevati sono negativi. Chiarifichiamo questo.
Cos'è il "carico medio"?
Il "carico medio" ti dice quanti processi stanno aspettando la CPU in un dato momento. È mostrato come tre numeri (per gli ultimi 1, 5 e 15 minuti).
Esempio: uptime
Output:
17:41:25 up 2 days, 3:45, 1 user, load average: 2.34, 1.89, 1.42
Interpretazione:
- 2.34 – carico medio nell'ultimo minuto
- 1.89 – negli ultimi 5 minuti
- 1.42 – negli ultimi 15 minuti
Ora, confronta quei numeri con il tuo numero di core della CPU. Se hai 2 core:
- Un carico intorno a 2.0 significa che entrambe le CPU sono completamente utilizzate – il sistema è occupato, ma va bene.
- Un carico molto più alto di 2.0 (come 3 o 4) significa che c'è una coda – troppi processi stanno aspettando.
Controlla quanti core hai:
nproc
Se il carico ≫ numero di core per un lungo periodo, è il momento di indagare.
Secondo passo: Ottieni una panoramica rapida con htop
htop è il modo più semplice per visualizzare cosa sta succedendo all'interno del tuo VPS in tempo reale.
Installa htop
Usa il comando adatto alla tua distribuzione Linux per installare:
sudo apt install htopper Ubuntu/Debiansudo yum install htopper CentOS/RHEL
Eseguilo
Esegui il comando htop. Vedrai un'interfaccia colorata come questa:

Comprendere il layout
- Le barre superiori mostrano l'uso della CPU, della memoria e dello swap in tempo reale.
- Il carico medio è visibile nell'angolo in alto a destra.
- L'elenco dei processi mostra cosa sta girando e quanta CPU e RAM utilizza ciascun processo.
Consigli di navigazione
- Ordina per uso della CPU: premi F6, poi scegli "PERCENT_CPU"
- Ordina per memoria: premi F6, scegli "PERCENT_MEM"
- Vista ad albero (mostra processi padre/figlio): premi F5
- Termina un processo: evidenzialo – premi F9 – scegli il segnale (il predefinito è 15, "termina")
- Cerca un processo: premi F3, digita parte del suo nome (es. "nginx")
Cosa cercare
- Processi con alta CPU% – questi stanno consumando la maggior parte del tempo della CPU.
- Processi con alta MEM% – questi stanno consumando RAM e potrebbero costringere il sistema a fare swap.
- Se un processo continua a riapparire in cima ogni pochi secondi, potrebbe essere uno script in loop o un servizio che si riavvia.
Esempio
Esegui htop. Se vedi qualcosa del genere:

È chiaro che msty-local-studio con PID 6346 sta usando più CPU e memoria di tutto il resto. Ora sai dove concentrare i tuoi prossimi controlli.
Terzo passo: Verifica incrociata con top
Mentre htop è amichevole, top è disponibile su ogni sistema Linux – nessuna installazione richiesta. È un buon ripiego quando hai solo accesso SSH a un ambiente minimo.
Eseguilo
Esegui il comando top. Vedrai un'interfaccia come questa:

Punti chiave
- La linea %Cpu(s) mostra dove va il tempo della CPU:
- us – processi utente
- sy – compiti di sistema/kernel
- wa – in attesa di I/O (disco)
- %wa (attesa I/O) sopra il 10–15% spesso significa un collo di bottiglia del disco.
- Il carico medio e il riepilogo delle attività ti dicono quanto è occupato il sistema.
Scorciatoie da tastiera utili
- Shift + P – ordina per CPU
- Shift + M – ordina per memoria
- Shift + T – ordina per tempo di esecuzione del processo
- 1 – attiva/disattiva l'uso della CPU per core
- k – termina un processo (inserisci il PID quando richiesto)
- q – esci da
top
Quando usare top
Usa top quando:
htopnon è installato (come su un sistema di recupero o un container Docker).- Vuoi uno strumento leggero che mostri l'equilibrio CPU vs. I/O in tempo reale.
Quarto passo: Se CPU e RAM sembrano a posto – Controlla l'I/O del disco usando iotop-c
A volte tutto sembra normale – l'uso della CPU non è alto, la memoria è a posto – eppure il sistema sembra bloccato. Comandi come ls o cd si bloccano per secondi, e il carico medio è ancora alto. Questo è un classico segno di attesa I/O, dove la CPU è inattiva ma in attesa che le operazioni del disco siano completate.
Installa iotop-c
Usa il comando adatto alla tua distribuzione Linux per installare:
sudo apt install iotop-cper Ubuntu/Debiansudo yum install iotop-cper CentOS/RHEL
Abilita il monitoraggio I/O usando il comando:
sudo sysctl kernel.task_delayacct=1
Eseguilo
Esegui il comando come utente root: sudo iotop-c. Vedrai un'interfaccia come questa:

Interpretazione
- La colonna IO mostra quanto tempo ogni processo è bloccato in attesa di I/O.
- Alto IO (es. 90–100%) – quel processo sta aspettando pesantemente sul disco.
- Controlla se stai eseguendo backup, importazioni di dati di grandi dimensioni o lavori di compressione.
Cause comuni di sovraccarico I/O
- Database (
mysqld,postgres) che esegue una query di grandi dimensioni. - Script di backup (
rsync,tar,dd) che copiano file enormi. - File di log che crescono incontrollabilmente in
/var/log. - Swap mal configurato – se il sistema inizia a fare swap pesantemente, sovraccarica il disco.
Quinto passo: Correlare ciò che hai trovato
Ora che hai usato htop, top e iotop-c, è il momento di mettere insieme il puzzle.
| Sintomo | Causa Probabile | Strumento da Controllare |
|---|---|---|
| Alto uso della CPU | Script difettoso, processo pesante | htop, top |
| Alto uso della memoria | Perdita di memoria, troppi lavoratori | htop |
| Alta attesa I/O, risposta lenta | Collo di bottiglia del disco, swapping | iotop-c, top |
| Alto carico ma CPU inattiva | Esaustione I/O o memoria | top, iotop-c |
Controlla anche i log di sistema per avvisi:
journalctl -xe
o:
tail -n 50 /var/log/syslog
Potresti trovare messaggi su errori del kernel, montaggi falliti o processi uccisi dall'OOM (Out Of Memory) killer.
Sesto passo: Prendi provvedimenti
Una volta identificato il colpevole, decidi cosa fare dopo.
Riavvia o ferma il processo
sudo systemctl restart <service>
o, se necessario:
sudo kill -9 <pid>
Libera spazio su disco
Se l'uso del disco è alto, usa df -h per determinare quale partizione pulire, o sudo du -sh /var/log/* per determinare quali log pulire.
Riduci il carico del processo
- Limita i cron job in modo che non vengano eseguiti contemporaneamente.
- Regola i limiti delle query del database o la cache.
- Riduci il numero di lavoratori in Nginx, Apache o Gunicorn.
Se nulla aiuta – aggiorna le risorse
Se raggiungi costantemente i limiti anche con carichi di lavoro ottimizzati, è il momento di aggiungere più CPU, RAM o passare a uno storage più veloce (es. da SSD a NVMe).
Settimo passo: Prevenzione e Monitoraggio Continuo
Non dovresti dover accedere manualmente e controllare il carico ogni volta. Puoi impostare il monitoraggio e gli avvisi con strumenti come: glances, netdata, prometheus, ecc.
Comandi di Riferimento Rapido
| Obiettivo | Comando |
|---|---|
| Mostra il carico medio | uptime |
| Vedi il carico CPU/memoria visivamente | htop |
| Vista minima dei processi | top |
| Monitora l'attività del disco | iotop-c |
| Visualizza i log | journalctl -xe |
Esempio Reale: Lo Script di Backup Fuori Controllo
Mettiamo tutto insieme con uno scenario reale.
Situazione
- VPS con 2 core CPU e storage SSD
- Improvvisamente sembra molto lento – ritardo SSH, timeout delle pagine web
uptimemostra: carico medio: 8.5, 7.3, 6.9 – troppo alto per 2 core.
Indagine
- Esegui
htop: l'uso della CPU è basso – solo 10–15%. L'uso della memoria è a posto. Quindi non è legato alla CPU. - Esegui
top: %wa = 40% – sistema in attesa di I/O del disco. - Esegui
iotop-c:
Bingo – uno script di backup che comprime una grande directory direttamente su disco.
Correzione
- Ferma o riprogramma il backup per eseguirlo di notte.
- Comprimi in
/tmp(in memoria) prima di spostarlo su disco. - Usa
ioniceper ridurre la sua priorità sul disco.
Risultato
Le prestazioni del VPS tornano alla normalità istantaneamente.
Pensieri Finali
Diagnosticare un carico elevato non è magia – si tratta di controllare sistematicamente CPU, memoria e disco uno per uno. Usa i tuoi strumenti come un detective:
- La CPU è al massimo? –
htop,top - La memoria è piena o sta facendo swap? –
htop,top - Il disco è sovraccarico? –
iotop-c - I log lo confermano? –
journalctl
Una volta identificato il processo colpevole, puoi decidere: ottimizzarlo, terminarlo o programmarlo meglio. Col tempo, inizierai a riconoscere i modelli – un processo di carico pesante, troppi cron job o un'app web mal configurata. È allora che smetti di spegnere incendi e inizi a gestire come un vero amministratore di sistema.