Iotop è un buon strumento per quello che vuoi. Consente inoltre di visualizzare la quantità accumulata di I/O su qualsiasi DISK READ, DISK WRITE, SWAPIN e IO (percentuale complessiva). Questo avviene tramite un'elegante interfaccia:
- Basta premere a sulla tastiera e ordinerà i processi più affamati in cima.
- Invertendo l'ordine, basta premere r .
- Se vuoi ordinare in base ad altre colonne, premi semplicemente il tasto sinistra/destra.
Come top
, la presentazione è piuttosto impegnativa. Un'altra cosa è che non ha la miriade di opzioni che top
ha (ad es. non posso scegliere di nascondere nessuna delle colonne che non mi interessano), ma lo strumento è più che sufficiente per il suo scopo specifico.
Puoi usare lsof
(uomo lsof). Quanto segue restituirà un elenco di tutti i file aperti per la scrittura:
lsof | grep -e "[[:digit:]]\+w"
Soprattutto per una bassa attività del disco, è necessario utilizzare iotop in modalità batch, per evitare che le linee di accesso brevi scompaiano rapidamente. La risposta di Come registro le letture/scritture del file system per nome file in Linux? mostra come farlo.
Finora
iotop
è la migliore soluzione complessiva. Il seguente comando fornisce un output in tempo reale di tutti i processi che utilizzano il disco.
iotop -bktoqqq -d .5
where: -b is batch mode
-k is kilobytes/s
-t adds timestamp
-o only show processes or threads actually doing I/O
-qqq removes output headers
-d .5 updates every .5 seconds
Una volta che hai l'id del processo, puoi anche trovare i file con
lsof -p $PID