Hangi işlemin ağır disk G / Ç'sine neden olduğunu belirlemek?


19

Bu soruyu gördüm: Diske ağır yazma nasıl belirlenir?

Ve ben kullandım dstat ve tepesinde önce ... ama Disk I / O'yu neyin sebep olduğunu süreç iğne ucu görünmüyor. Örneğin, dstat'tan:

dstat -ta --top-bio
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----most-expensive----
     time     |usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw |  block i/o process
14-12 16:16:25| 22   3  49  26   0   0|2324k    0 |  17k 6144B|   0     0 |1324     0 |
14-12 16:16:26| 24   3  30  43   0   0|4960k 8192B|1498B 4322B|   0     0 |1494     0 |wget          0  4096B
14-12 16:16:27| 25   4  38  33   0   0|4612k  548k|5011B   27k|   0     0 |1582     0 |kjournald     0    24k
14-12 16:16:28| 23   3  42  32   0   0|5072k    0 |  24k 4368B|   0     0 |1495     0 |

Toplam dsk / toplamın ne kadar yüksek olduğuna dikkat edin - 2 ila 5 MB / sn. Ama sonra 'en pahalı' sütununa bakın - burada sadece birkaç bayt, orada birkaç KB ve hatta bazen hiçbir şey yok. 'Üstte' ile aynı şey. Yüksek genel disk kullanımı gösterir, ancak tek tek işlemlerden düşük kullanım gösterir. CentOS 5, çekirdek 2.6.18-53 kullanıyorum.

Daha yeni bir çekirdek sürümüne ihtiyacım var mı? Belki bazı sistem yapılandırma ayarları bir yerde? 'Üstte' ana sayfası, bazı çekirdek yamaları yüklemenizi önerir, ancak kendi çekirdeğimi yapılandırma ve derleme zorluğundan geçmek istemem.

Yanıtlar:


26

iotop ( link ) starter için;) Bir çıktı gönderdiğini görmedim.

1: Günlük dosya sistemi ve atime ile neredeyse aynı durumu yaşadım - ancak daha fazla yazımla.

Noatime ile yeniden monte etmeye çalışın ve dosya sistemi tabanlı olup olmadığını görmek için dosya sistemi günlüğünü (yalnızca test için) kapatmayı deneyin.

2: Sanırım bu bölüm sadece yeniden yapılanma baskını dizisinin bir parçası değil, değil mi?

3: Çok küçük dosyalar (gerçek blok cihazı blok boyutu ve / veya dosya sistemi blok boyutu) çok daha küçük varsa ve bu küçük dosyaları okuyorsanız, sistemdeki tüm blokları okursunuz ve çoğu bu blokların hiçbiri boşuna okunacak.

4: Yukarıda hiçbir şey yardımcı olmazsa, her zaman çalıştırarak erişilen dosyaların listesini alabilirsiniz.

echo 1 > /proc/sys/vm/block_dump

lütfen sistem performansını çok düşürdüğünü unutmayın. Talimatlar buradaki önceki yazımda mevcuttur


1
Beni yaklaşık 5 saniye ile yendi;) +1
pehrs

Ben sadece şanslıydım, ama hemen hemen cevabı uzattı, çünkü bu tam olarak sorunun cevabı değildi;)
asdmin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.