it-swarm.asia

Linux - Disk için nelerin beklediğini nasıl görebilirim IO

Çok yüksek bir yüke sahip bir sunucum var. CPU kullanımı açısından hiçbir şey bana atlamıyor ve değişmiyor.

Sanırım bazı işlemler disk IO'yu bekliyor ve neyin beklediğini görmek istiyorum.

IO'yu hangi süreçlerin beklediğini gösterecek herhangi bir program var mı? Ben iotop hakkında biliyorum ama şu anda IO ne yapıyor gösterir.

Yoksa bu aptalca bir soru mu? (Öyleyse nasıl olduğunu açıklayın :))

42
Rory

İotop gibi bir G/Ç monitörü kullanabilirsiniz, ancak yalnızca geçerli G/Ç işlemlerine sahip işlemleri veya iş parçacıklarını gösterecektir.

G/Ç için bekleyen işlemlere göz atmanız gerekiyorsa, STAT işareti 'D' olan işlemleri aşağıdaki gibi izlemek için saati kullanın:

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

ps axu ve "D" durumunda olan işlemleri arayın. ps (1) manpage , D durumunda olan süreçler kesintisiz uyku durumundadır, bu neredeyse her zaman 'IO'yu beklemek' anlamına gelir. Ne yazık ki, bu süreçleri öldürmek genellikle mümkün değildir.

18
Zanchey

Zanchey'nin cevabı, IO'yu neyin beklediğini bulmak için bildiğim en iyisidir.

Sunucunuzun yüksek yük altında olduğunu söylediğinizde bununla ne demek istersiniz? Özellikle bir şey yavaş cevap veriyor mu?

Diskinizin IO darboğaz olup olmadığını merak ediyorsanız, diskin gerçekten ağır yük altında olup olmadığını görmek için iostat komutunu (sysstat paketinin bir parçası) kullanırdım.

Misal:

[[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
16
Kyle Brandt

block_dump hangi işlemlerin blok okuma/yazma işlemleri yaptığını günlüğe kaydetmeyi etkinleştir:

echo 1 > /proc/sys/vm/block_dump
tail -f /var/log/syslog

tamamlandığında, günlük dosyalarınızı spam etmemek için izlemeyi devre dışı bırakın:

echo 0 > /proc/sys/vm/block_dump
0