GNU/Linux >> Znalost Linux >  >> Linux

Linux - Jak zjistím, co čeká na IO disku

Řešení 1:

Můžete použít I/O monitor jako iotop, ale zobrazí vám pouze procesy nebo vlákna s aktuálními I/O operacemi.

Pokud potřebujete procházet procesy čekající na I/O, použijte hodinky k monitorování procesů s příznakem STAT 'D', jak je uvedeno níže:

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

Řešení 2:

ps axu a hledejte procesy, které jsou ve stavu "D". Na základě manuálové stránky ps(1) jsou procesy, které jsou ve stavu D, v nepřerušitelném spánku, což téměř vždy znamená 'čekání na IO'. Bohužel, zabíjení těchto procesů obvykle není možné.

Řešení 3:

Zancheyho odpověď je to nejlepší, co znám, abych zjistil, co čeká na IO.

Když říkáte, že váš server je pod vysokou zátěží, co tím myslíte? Něco konkrétního reaguje pomalu?

Pokud se ptáte, zda je váš disk IO úzkým hrdlem, použil bych příkaz iostat (součást balíku sysstat), abych zjistil, zda je disk skutečně silně zatížen.

Příklad:

[[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. Co je předávání IP v Linuxu? Jak povolit přesměrování IP?

  2. Jak mohu symbolicky propojit soubor v Linuxu?

  3. Jak programově získám volné místo na disku pro adresář v Linuxu

  1. Jak mohu vidět velikost souborů a adresářů v linuxu?

  2. Jak zjistím, jaký je můj nejpoužívanější linuxový příkaz?

  3. Jak mohu zjistit, co způsobuje pomalé zvyšování použitého místa na disku v Linuxu?

  1. Jak rozdělit disk v Linuxu

  2. Linux – Jak vědět, co dělat Grep v Dmesg?

  3. Jak mohu zkontrolovat, co zabírá místo na disku v /tmp?