it-swarm.it

Scopri quali processi stanno scrivendo sul disco rigido

Sul mio Lenovo T400 e Ubuntu, la luce per la scrittura su disco fisso continua a lampeggiare. Mi chiedevo se in Linux è possibile scoprire quali processi stanno eseguendo I/O sul disco rigido? Proprio come da top, puoi scoprire quali processi utilizzano la maggior parte della CPU e della memoria.

33
Tim

Iotop è un buon strumento per quello che vuoi. Permette anche di visualizzare la quantità accumulata di I/O su qualsiasi DISK READ, DISK WRITE, SWAPIN e IO (percentuale complessiva). Questo avviene attraverso un'interfaccia intelligente:

  • Basta premere a sulla tastiera e ordinerà i processi più affamati in cima.
  • Invertire l'ordine, basta premere r.
  • Se vuoi ordinare per altre colonne, premi semplicemente il tasto sinistra/destra.

Come top, la presentazione è piuttosto occupato. Un'altra cosa è che non ha le miriadi di opzioni che top ha (es. Non posso scegliere di nascondere nessuna delle colonne non mi interessano), ma lo strumento è più che sufficiente per il suo scopo specifico.

42
tshepang

Puoi usare lsof ( man lsof ). Di seguito verrà restituito un elenco di tutti i file aperti per la scrittura:

lsof | grep -e "[[:digit:]]\+w"
15
James Sumners

Usa strace.

2
user541686

Soprattutto per attività su disco insufficiente, è necessario utilizzare iotop in modalità batch, per evitare che le linee di accesso brevi scompaiano rapidamente. La risposta di Come posso leggere/scrivere il file system in base al nome del file in Linux? mostra come farlo.

Finora iotop è la migliore soluzione globale. 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 processo, puoi anche trovare i file con

 lsof -p $PID
2
Frank Breitling