Bagaimana cara mendapatkan total baca dan tulis total IOPS di Linux?


32

Bagaimana saya bisa membaca dan menulis IOPS secara terpisah di Linux, menggunakan baris perintah atau dengan cara terprogram? Saya telah menginstal sysstatpaket.

Tolong beritahu saya bagaimana cara menghitung ini secara terpisah menggunakan sysstatperintah paket.

Atau, mungkinkah menghitungnya menggunakan sistem file?

ex: /proc atau /sysatau/dev

Jawaban:


46

iostatadalah bagian dari sysstatpaket, yang dapat menampilkan keseluruhan IOP jika diinginkan, atau menunjukkan mereka dipisahkan oleh membaca / menulis.

Menjalankan iostat dengan flag -d untuk hanya menampilkan halaman informasi perangkat, dan -x untuk informasi detail (statistik baca / tulis terpisah). Anda dapat menentukan perangkat yang Anda inginkan informasinya hanya dengan menambahkannya di baris perintah.

Coba jalankan iostat -dxdan lihat ringkasannya untuk merasakan hasilnya. Anda juga bisa menggunakaniostat -dx 1 untuk menampilkan output yang terus-menerus menyegarkan, yang berguna untuk pemecahan masalah atau pemantauan langsung,

Menggunakan awk, bidang 4 akan memberi Anda membaca / detik , sedangkan bidang 5 akan memberi Anda menulis / detik .

Hanya baca / detik:

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

Hanya menulis / dtk:

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

Baca / dtk dan tulis / dtk dipisahkan dengan garis miring:

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

Keseluruhan IOPS (apa yang dibicarakan kebanyakan orang):

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

Sebagai contoh, menjalankan perintah terakhir dengan drive utama saya, / dev / sda, terlihat seperti ini:

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

Perhatikan bahwa Anda melakukannya tidak perlu menjadi root untuk menjalankan ini, membuatnya berguna untuk pengguna yang tidak memiliki hak istimewa.

TL; DR: Jika Anda hanya tertarik sda, perintah berikut ini akan memberi Anda IOPS keseluruhan untuk sda:

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

Jika Anda ingin menambahkan IOPS di semua perangkat, Anda dapat menggunakan awk lagi:

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

Ini menghasilkan output seperti:

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


Terima kasih Mr.Dannel bermanfaat. jika saya ingin mendapatkan sistem lengkap Baca / Tulis IOPS Cara mendapatkan?
shas

ketika saya menjalankan iostat -dx 1saya mendapat ans seperti ini 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.11untuk dm-0, dm-1, dm-2 secara rekursif yang harus saya tambahkan?
shas

Saya telah memperbarui jawaban dengan templat keseluruhan dan contoh untuk sda. Jika Anda hanya ingin melihat IOPS untuk hard drive Anda, maka gunakan perintah terakhir itu untuk keseluruhan IOPS ( iostat -d sda | grep sda | awk '{ print $2; }')
Daneel

Tidak, saya ingin secara terpisah seperti yang Anda sebutkan dalam jawaban 1. agak bingung dengan dm-*jadi saya bertanya, saya perlu melakukan penambahan pada partisi tersebut
shas

Ahh ok. Anda dapat menggunakan perintah berikut untuk memeriksa apakah masing-masing dm-xperangkat: lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- Saya akan memperbarui jawabannya dengan ini, serta cara menambahkan hasilnya.
Daneel
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.