Soru 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ı programı var mı? Gibi bir şey top ancak daha sonra disk aktivitesini 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ümlerindeki çeşitli optimizasyonlardan sonra, artık darboğazın diskteki dosyaların günlüğe kaydedilmesi olduğunu sanıyorum. Ancak sunucuların ne kadar trafik tutabileceğini değerlendirmek çok zor.

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


88
2018-05-18 13:56


Menşei


Mükemmel soru, tam olarak aradığım şey =) - rafa.ferreira
Sysfs'i doğrudan okumak mümkündür, /sys/block/sda/stat. Alan # 1 toplam okuma sayısını verir, # 5 alanı toplam # sayısıdır, # 9 alanı devam eden I / O işlemlerinin sayısıdır. Daha fazlasını gör kernel.org/doc/Documentation/iostats.txt Değerler uzun işaretsizdir ve sarılabilir. - sastanin
Bu çok güzel bir soru çünkü her zaman Plesk sunucularında bu sorunla mücadele ediyoruz. Ancak, eksik olan şey how do you do it with SNMP?. Giriş yapmak ve bir şeyleri kontrol etmek güzel, ancak birisinin tarihi veriye ihtiyacı var. - Eugene van der Merwe
unix.stackexchange.com/questions/55212/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


Cevaplar:


Bunu kullanarak oldukça iyi bir ölçü alabilirsiniz. iostat aracı.

% 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, şu şekilde tanımlanır:

G / Ç isteklerinin cihaza verildiği CPU zamanının yüzdesi   (cihaz için bant genişliği kullanımı). Cihaz doygunluğu   Bu değer% 100'e yakın olduğunda oluşur.


77
2018-05-18 14:15



Varsa, hangi paket Debian'da bulunuyor? apt-cache dump iostat için hiçbir şey açmadı - hBy2Py
@Brian: Sysstat paketinde (her neyse ...) - Joe
Bunu RHEL 6.5'te bulamadım. Bu RHEL için kullanılabilir mi? - Hazok
Bu bir gecikmeyle devam etmek zorunda kalmadan çalışabilir mi? Verileri almak için tek bir örneği çalıştırmaya çalışmak, büyük olasılıkla örnek alınamadığı için aynı sayıya sahip olur ??? - Wilf
@Hazok RHEL 6.5 üzerindeki sysstat RPM'nin bir parçasıdır. - TheGeneral


iotop her işlemin ne kadar kullandığını inceleyen bir üst sürümüdür. Standart ubuntu depolarında; RHEL veya Fedora'da olup olmadığını bilmiyorum, ama olmalı.

enter image description here

İotop'u desteklemeyen eski çekirdekler iç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.


75
2018-05-18 14:14



Gerçekten, Ubuntu'da varsayılan olarak yüklenmez, bu yüzden bir tane sorun olabilir: Bunu elde etmek için sudo apt-get install iotop - Moshe
iotop 2.6.20'den daha yüksek bir çekirdek gerektirir, maalesef hem RedHat el4 hem de el5'i göz ardı eder. - Dave Cheney
RedHat 5.4'ten itibaren, iotop çalışmasını yapmak için gerekli bitler geri yüklenmiştir. Keyfini çıkarın! - Dave Cheney
Bu Fedora'da :). - jamie


Sastanin tarafından yorumlarda belirtildiği gibi, verilen değerleri doğrudan işleyebilirsiniz. /sys/block/sda/stat veya /proc/diskstats. Bu, belirtilen diğer araçların hiçbiri mevcut olmadığında ve bunları kolayca yükleyemediğinizde yardımcı olabilir.

Mesela (IIUC) bunun gibi bir şey (bash olarak) 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

Görmek https://www.kernel.org/doc/Documentation/iostats.txt ve https://www.kernel.org/doc/Documentation/block/stat.txt belgeler için.


12
2017-07-22 10:16





Bir göz atmalısın üstündeiotop / top / iftop'un gücünü tek bir yerde birleştiren ve sisteminizdeki kritik parçaları vurgulayan.


5
2018-03-01 04:42





Nmon aracına bir göz atmanızı tavsiye ederim. Size, bir dizi sistem parametresinde canlı yükü göstermenin yanı sıra daha sonraki bir tarihte bir dosyaya veri kaydeder. Mevcut ücretsiz bir araçtır İşte:


4
2018-05-18 15:52





Toplam bant genişliğinizin ne olduğunu öğrenmek için hdparm -T /dev/sda arabellek önbelleği (dosya) performansını sınamak için hdparm -t /dev/sda cihazın performansını okumak için

örnekler: dizüstü bilgisayarım SATA diskten 82MB / sn ve önbellekten 2GB / sn alır. Benim dekstop önbellekten 12GB / sn ve HW RAID dizisinden 500MB / sn alır. Son numaraların sunucu sınıfı donanımında iki katına çıkabileceğinden şüpheleniyorum.

readahead'i 256'dan yüksek olarak ayarla, 4096 benim için en iyi şekilde çalışıyor

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-ahd'larda 1GB okuma süresi


4
2018-05-18 15:58



SF'ye hoşgeldiniz. Mesajlarınızda kod vurgularını dizeleri veya arka plandaki paragrafları çevrelemek suretiyle kullanabilirsiniz. - ℝaphink
İki şey - 1) --setra şimdi -ave 2) hdparm -{T,t} komutları sadece disketi okur, strace, bu yüzden tahribatsızdır. (İnternette tavsiye hakkında standart feragatname geçerlidir) - i336_


Sabit disk yükünü gösteren standart araç iostat.

Diskinizin ne kadar bant genişliği olduğunu bilmediğinden, ne kadar yaş disk bant genişliği kullandığınızı söylemez. Her durumda, diskinizde yalnızca bitişik verinin büyük transferleri için üreticinin kayıtlı rakamı bulunur.


3
2018-05-18 14:02





RRDtool'un istediğini yapması gerektiğini düşünüyorum. İşte sistem verilerini dökmek için bir arka plan kullanır ve istediğiniz gibi işlemenizi sağlar. Sistem yükünü ölçmek için sıklıkla grafikler vb. Üretmek için kullandım.


2
2018-05-18 14:03