Ř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