Salta ai contenuti

iotop - Cheatsheet Per-Process Disk I/O Monitor

iotop - Cheatsheet Per-Process Disk I/O Monitor

iotop è uno strumento top-like che mostra disk I/O usage per processo in tempo reale. Dove iostat ti dice che un device è busy, iotop ti dice quale processo sta leggendo e scrivendo, a quale velocità, e con quale priorità I/O. È il modo più veloce per rispondere “cosa sta martellando il disco adesso?” Legge i kernel accounting data e quindi richiede root.

Installazione

PiattaformaComando
Debian/Ubuntusudo apt install iotop
Fedora/RHELsudo dnf install iotop
Arch Linuxsudo pacman -S iotop
RequisitoKernel con CONFIG_TASK_IO_ACCOUNTING (standard)
Verificasudo iotop --version

Esecuzione

ComandoDescrizione
sudo iotopVista live interattiva di tutti i processi
sudo iotop -oSolo mostra processi effettivamente facendo I/O
sudo iotop -aMostra I/O accumulato (totali, non velocità)
sudo iotop -PMostra processi (non thread individuali)
sudo iotop -u USERFiltra per utente
sudo iotop -d 5Refresh ogni 5 secondi

Il Display

ColonnaSignificato
TID/PIDThread o process ID
PRIOClasse priorità I/O scheduling
USERProcess owner
DISK READVelocità lettura attuale
DISK WRITEVelocità scrittura attuale
SWAPIN% tempo speso swapping in
IO% tempo in attesa su I/O
COMMANDLa command line del processo

Due linee header mostrano Total e Actual disk read/write per l”intero sistema.

Interactive Keys

KeyAzione
oToggle --only (nascondi processi idle)
aToggle accumulated vs velocità
pToggle processi/thread
rInverti l”ordine di sort
/ Cambia la colonna di sort
qQuit

Modalità Batch / Logging

Per script e catturare evidenza, esegui non-interattivamente.

# Log i top I/O processi ogni 2s, 10 iterazioni, solo quelli attivi
sudo iotop -boPqqq -d 2 -n 10 > iotop.log
FlagEffetto
-bBatch (non-interactive) mode
-oSolo processi attivi
-n NNumero di iterazioni
-qQuiet (ripeti per sopprimere header)
-kKilobytes

Workflow Comuni

# "Cosa sta scrivendo su disk adesso?" — solo attivi, processi non thread
sudo iotop -oP

# Cattura un periodico I/O spike nel tempo
sudo iotop -boP -d 1 -n 60 > spikes.log

# Attribuisci il carico disk a un utente
sudo iotop -oP -u appuser

Priorità I/O (pair con ionice)

iotop mostra la classe PRIO (ionice); cambi con ionice.

ionice classSignificato
ionice -c 1Realtime I/O priority
ionice -c 2 -n 0..7Best-effort (default), level 0 = highest
ionice -c 3Idle — solo I/O quando il disco è altrimenti libero
# Deprioritize un heavy batch job''s disk I/O
ionice -c 3 -p $(pgrep -n backup)

iotop vs Tool Correlati

ToolRisponde
iotopQuale processo sta facendo disk I/O
iostatSe il device è saturo
pidstat -dPer-process I/O (scriptable, sysstat)
dstat/doolCombined system view

Workflow: iostat mostra il disco è busy → iotop mostra quale processo → ionice deprioritize.

Risorse