GNU/Linux >> Linux Esercitazione >  >> Linux

Linux - Come posso vedere cosa sta aspettando l'IO del disco

Soluzione 1:

Puoi usare un monitor I/O come iotop, ma ti mostrerà solo processi o thread con operazioni I/O correnti.

Se hai bisogno di sfogliare i processi in attesa di I/O, usa watch per monitorare i processi con il flag STAT 'D' come di seguito:

watch -n 1 "(ps aux | awk '\$8 ~ /D/  { print \$0 }')"

Soluzione 2:

ps axu e cerca i processi che si trovano nello stato "D". Sulla base della manpage ps(1), i processi che si trovano nello stato D sono in una sospensione ininterrotta, che quasi sempre significa "in attesa di IO". Sfortunatamente, l'arresto di questi processi di solito non è possibile.

Soluzione 3:

La risposta di Zanchey è la migliore che conosco per scoprire cosa sta aspettando IO.

Quando dici che il tuo server è sotto carico elevato, cosa intendi con questo? Qualcosa in particolare è lento a rispondere?

Se ti stai chiedendo se il tuo IO su disco è il collo di bottiglia, userei il comando iostat (parte del pacchetto sysstat) per vedere se il disco è effettivamente sotto carico.

Esempio:

[[email protected]: ~] iostat -x 1 3                                                                                           

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.38   34.71    2.64    1.18    0.00   59.21 
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.11    17.35    2.21   20.31    46.57   301.40    15.45     2.27  100.66   1.48   3.34
sda1              0.10    17.31    2.21   20.31    46.48   301.10    15.44     2.27  100.66   1.48   3.34
sda2              0.00     0.00    0.00    0.00     0.00     0.00     3.50     0.00   30.00  30.00   0.00
sr0               0.00     0.00    0.00    0.00     0.00     0.00    18.44     0.00  677.67 512.61   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.22    0.00    4.31    0.00    0.00   89.47   
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sr0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Linux
  1. Come partizionare un disco in Linux

  2. Come posso collegare simbolicamente un file in Linux?

  3. Come posso verificare cosa occupa spazio su disco in /tmp?

  4. Come posso sapere quale versione di Linux sto usando?

  5. Come posso monitorare il disco io?

Come eliminare la partizione in Linux

Come elencare le partizioni del disco in Linux

Come crittografare la partizione su Linux

Come vedere gli utenti che hanno effettuato l'accesso in Linux

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

Come posso monitorare il carico del disco rigido su Linux?