it-swarm.asia

Linux'ta sabit disk yükünü nasıl izleyebilirim?

Linux'ta sabit disk yükünü izlemek için iyi bir komut satırı yardımcı programı var mı? top gibi bir şey ama disk etkinliğini izleme i.s.o. CPU kullanımı.

Daha spesifik olarak, bazı (ağır yük) sunucular için üzerinde çalışan programın çeşitli bölümlerinde çeşitli optimizasyonlardan sonra, şu anda darboğazın sadece diskteki dosyalara giriş olduğundan şüpheleniyorum. Ancak sunucuların ne kadar trafik işleyebileceğini değerlendirmeyi çok zor buluyorum.

İdeal aracım "Şu anda disk bant genişliğinizin% 35'ini kullanıyorsunuz" yazdıran bir şey olurdu. Herhangi bir fikir?

105
Pieter

iostat aracını kullanarak bunun oldukça iyi bir ölçüsünü elde edebilirsiniz.

% iostat -dx /dev/sda 5

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.78    11.03    1.19    2.82    72.98   111.07    45.80     0.13   32.78   1.60   0.64

Disk kullanımı son sütunda listelenir. Bu,

G/Ç isteklerinin aygıta verildiği CPU süresinin yüzdesi (aygıt için bant genişliği kullanımı). Bu doygunluk% 100'e yakın olduğunda cihaz doygunluğu oluşur.

85
Dave Cheney

iotop , topun ne kadar IO her işlem kullandığını gösteren bir versiyonudur. Standart ubuntu depolarındadır; RHEL'de olup olmadığını bilmiyorum veya Fedora, ama olmalı.

enter image description here

İotop'u desteklemeyen daha eski çekirdekler için (örneğin CentOS 5.x veya RHEL 5.x), bunun yerine topio kullanın (burada belgelenmiştir: http://yong321.freeshell.org/freeware/pio.html#linux . İo istatistikleri için/proc // io'ya dayanır ve iotop ile benzer işlevsellik sağlar.Daha fazla bilgi için bağlantıya bakın.

82
Tim Howland

Yorumlarda sastanin tarafından önerildiği gibi, /sys/block/sda/stat veya /proc/diskstats. Bahsedilen diğer araçların hiçbiri mevcut olmadığında ve bunları kolayca yükleyemediğinizde bu yardımcı olabilir.

Örneğin (IIUC) böyle bir şey (bash cinsinden) saniyedeki okuma sayısını vermelidir:

OLD=`awk '{print $1}' /sys/block/sda/stat` # First field is number of read I/Os processed
DT=1
for ii in `seq 1 10`
do
    sleep $DT
    NEW=`awk '{print $1}' /sys/block/sda/stat`
    echo $((($NEW-$OLD)/$DT))
    OLD=$NEW
done

Bakınız https://www.kernel.org/doc/Documentation/iostats.txt ve https://www.kernel.org/doc/Documentation/block/stat.txt belgeler için.

14

İotop/top/iftop'un gücünü tek bir yerde birleştiren ve sisteminizdeki kritik parçaları vurgulayan atop öğesine göz atmalısınız.

8
Yvan

Nmon aracına bir göz atmanızı tavsiye ederim. Daha sonra incelemek üzere bir dosyaya veri kaydetmenin yanı sıra bir dizi sistem parametresinde canlı yükü gösterecektir. Bu ücretsiz bir araçtır burada :

6
MikeyB

toplam bant genişliğinizin ne olduğunu bulmak için hdparm -T /dev/sda tampon önbellek (fileio) performansını test etmek için hdparm -t /dev/sda cihazın okuma performansını test etmek için

örnekler: dizüstü bilgisayarım SATA diskinden 82MB/sn ve önbellekten 2GB/sn alır. Masaüstü bilgisayarım önbellekten 12GB/sn ve HW RAID dizisinden 500MB/sn alır. Bu son numaraların sunucu sınıfı donanımda iki katı olabileceğinden şüpheleniyorum.

readahead'i 256'dan yüksek olarak ayarla, 4096 benim için en iyisi

for i in 128 256 512 1024 2048 4096 8192 16384 32768  
do  
hdparm --setra $i  
  for j in 1 2 4 8 16 32  
  do  
  time dd if=/dev/sda of=/dev/null bs="$j"k  count=<fixthis> 1GB / blocksize  
  done  
done  

farklı blok boyutlarında ve farklı okuma başlarında 1 GB okuma

5
user2987

Sabit disk yükünü göstermek için standart araç iostat.

Diskinizin ne kadar bant genişliğini bilmediğinden, disk disk genişliğinin% kaçını kullandığınızı söylemez. Her durumda, diskinizde büyük miktarda bitişik veri aktarımı için yalnızca üreticinin verdiği rakam bulunur.

4
Alnitak

Ben RRDtool burada istediğiniz sistem verileri dökümü için bir daemon kullanır ve sonra istediğiniz gibi işlemek için izin verir yapması gerektiğini düşünüyorum. Sık sık sistem yükünü ölçmek için grafikler vb. Üretmek için kullandım.

3
PixelSmack

htop işlem bilgilerini kontrol etmek için güzel bir araçtır. Sütun ekleyebilir veya kaldırabilirsiniz ve bunlar arasında işlemlerin okuma ve yazma hızları vardır.

0
inquam