GNU/Linux >> Linux Esercitazione >  >> Linux

Come determinare quale processo sta scrivendo su disco in Linux

È anche possibile su Linux ottenere statistiche I/O per processo, così puoi vedere esattamente chi sta leggendo e scrivendo pesantemente, usando un programma chiamato iotop. iotop deve essere avviato con l'utente root. Puoi usare iotop, ad esempio, per sapere quanto velocemente il tuo disco rigido può leggere e scrivere, quindi premere il tasto q per uscire. Leggi la sezione del manuale su iotop per saperne di più sulle sue scorciatoie, ad esempio per ordinare le colonne.

Per visualizzare quale processo sta scrivendo su disco, possiamo usare il comando "iotop" per ottenere tali informazioni

# iotop

Visualizza un output come il seguente esempio:

Total DISK READ : 0.00 B/s | Total DISK WRITE : 88.95 M/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 88.95 M/s
  TID PRIO USER DISK READ DISK WRITE SWAPIN IO>    COMMAND
27236 be/4 root 0.00 B/s  88.95 M/s  0.00 % 87.91% dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc
25600 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % less -s
    1 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % systemd --switched-root --system --deserialize 22
    2 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kthreadd]
    3 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [ksoftirqd/0]
    6 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kworker/u30:0]
    7 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcu_sched]
    8 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcu_bh]
    9 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcuos/0]
   10 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcuob/0]
   11 rt/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [migration/0]
   12 rt/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [watchdog/0]
   13 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khelper]
   14 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kdevtmpfs]
   15 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [netns]
   16 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [perf]
   17 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [xenwatch]
   18 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [xenbus]
   20 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khungtaskd]
   21 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [writeback]
   22 be/5 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [ksmd]
   23 be/7 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khugepaged]
   24 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [crypto]
   25 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kintegrityd]
   26 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [bioset]
   27 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kblockd]
   28 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [md]
   29 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [devfreq_wq]
   31 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kswapd0]
   32 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [fsnotify_mark]
 1058 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % cupsd -f

Delle colonne presentate qui, potremmo essere interessati a quanto segue:

  • TID :questa colonna fornisce il PID del processo che effettua le richieste di I/O. Questo può essere utilizzato per indagare o terminare il programma.
  • LETTURA DISCO :questa colonna illustra il numero di byte letti al secondo dal processo elencato.
  • SCRITTURA DISCO :questa colonna indica il numero di byte scritti al secondo dal processo elencato.
  • IO :questa colonna mostra la percentuale di tempo che il processo elencato ha impiegato per inviare richieste di I/O.
  • COMANDO :questa colonna descrive il nome del processo che gestisce l'I/O. Se questo è un processo principale, potrebbe includere anche opzioni della riga di comando.

Nell'esempio precedente abbiamo eseguito in un'altra sessione ssh un dd test (dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc) per visualizzare l'azione W/R in corso sul disco .

Se vuoi vedere solo i processi correnti che scrivono su disco, premi il tasto "o" e otterrai un output come:

Total DISK READ : 0.00 B/s | Total DISK WRITE : 86.90 M/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 86.90 M/s
  TID PRIO USER DISK READ DISK WRITE SWAPIN IO>     COMMAND
27239 be/4 root 0.00 B/s  86.90 M/s  0.00 % 89.17 % dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc

Di seguito sono elencate alcune delle opzioni più comuni che possiamo utilizzare:

  • Premi a sinistra e tasti freccia destra per modificare l'ordinamento.
  • Premi r per invertire l'ordine di ordinamento.
  • Premi o solo per vedere processi o thread che eseguono effettivamente l'I/O, invece di mostrare tutti i processi o thread.
  • Premi p mostra solo i processi. Normalmente iotop mostra tutti i thread.
  • Premi a visualizzare l'I/O accumulato anziché la larghezza di banda. In questa modalità, iotop mostra la quantità di processi di I/O eseguiti dall'avvio di iotop.
  • Premi i per cambiare la priorità di un thread o di un thread di processo, ad esempio ionice.
  • Premi q per uscire da iotop.

Fare riferimento alle pagine man per ulteriori informazioni.

# man iotop


Linux
  1. Come uccidere un processo zombie su Linux

  2. Come partizionare un disco in Linux

  3. Linux:come determinare quale modulo contamina il kernel?

  4. Come posso sapere in Linux quale processo ha inviato un segnale al mio processo

  5. Come posso determinare quale processo ha un file aperto in Linux?

Come creare partizioni in Linux

Come uccidere un processo in Linux

Come elencare le partizioni del disco in Linux

Come KILL un processo su Linux

Come crittografare la partizione su Linux

Come determinare cosa sta utilizzando più spazio su disco su un server Linux?