Linux'ta toplam okuma ve toplam yazma IOPS'ı nasıl elde edilir?


32

Komut satırını kullanarak veya programatik bir şekilde IOPS'yi Linux'ta ayrı olarak nasıl okuyabilir ve yazabilirim? sysstatPaket kurdum .

Lütfen bana sysstatpaket komutları kullanarak bunları nasıl ayrı ayrı hesapladığımı söyle .

Veya, onları dosya sistemi kullanarak hesaplamak mümkün mü?

örn: /proc ya /sysya/dev

Yanıtlar:


46

iostatsysstatİstenirse genel iops'ı gösterebilen veya bunları okuma / yazma ile ayrılmış olarak gösterebilen paketin bir parçasıdır .

Run iostatsadece göstermek cihaz bilgilerini sayfasına -d bayrağıyla, ve ayrıntılı bilgi (ayrı okuma / yazma istatistikler) için -x. Bilgi almak istediğiniz cihazı komut satırına sonradan ekleyerek belirleyebilirsiniz.

iostat -dxÇıktı hakkında bir fikir edinmek için koşuya ve özete bakmaya çalışın . Ayrıca iostat -dx 1sorun giderme veya canlı izleme için yararlı olan sürekli yenilenen bir çıktı göstermek için kullanabilirsiniz .

awkAlan 4'ü kullanmak size okuma / saniye verirken alan 5'i yazma / saniye verir .

Yalnızca okur / saniye:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

Sadece yazar / sn:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

Bir eğik çizgiyle ayrılmış okuma / sn ve yazma / sn:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

Genel IOPS (çoğu insanın neden bahsettiği):

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

Örneğin, son komutu ana sürücüm / dev / sda ile çalıştırmak şuna benziyor:

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

Eğer anlamına Not değil ayrıcalıklı olmayan kullanıcılar için kullanışlı hale ya bu çalışmasına kök olmak gerekir.

TL; DR: Eğer sadece ilgileniyorsanız sda, aşağıdaki komut size genel IOPS verecektir sda:

iostat -d sda | grep sda | awk '{ print $2; }'

IOPS'yi tüm cihazlara eklemek istiyorsanız, awk'yi tekrar kullanabilirsiniz:

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

Bu şekilde çıktı üretir:

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88


Teşekkürler Mr.Dannel yararlı. tam sistem almak istersem Oku / Yaz IOPS Nasıl yapılır?
15’deki

koşarken dm-0 için iostat -dx 1böyle bir şeye sahibim Linux 2.6.35.14-106.fc14.i686 (shashi) 08/24/2015 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 2.46 13.80 2.27 2.03 136.26 123.91 60.53 0.11 25.77 4.43 1.91 dm-0 0.00 0.00 2.35 0.77 93.07 6.11 31.86 0.17 53.73 2.59 0.81 dm-1 0.00 0.00 1.02 2.83 8.14 22.66 8.00 0.83 214.34 0.60 0.23 dm-2 0.00 0.00 1.37 11.89 34.77 95.14 9.80 1.67 126.06 0.84 1.11, dm-1, dm-2 tekrarlı bir şekilde eklemeli miyim?
15’te

Yanıtı genel bir şablonla ve bunun için bir örnekle güncelledim sda. Sabit sürücünüzün iostat -d sda | grep sda | awk '{ print $2; }'
IOPS'sini

Hayır, 1. cevabında bahsettiğim gibi ayrı olmak istiyorum. biraz karıştırmayın, dm-*o yüzden sordum, bu bölümler üzerinde ek
yapmam

Ahh Tamam. Her bir dm-xcihazın ne olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz : lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- Yanıtı bunun yanı sıra sonuçları nasıl ekleyeceğimi de güncelleyeceğim.
Daneel
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.