Apakah ada utilitas baris perintah yang baik untuk memantau beban hard disk di linux? Sesuatu seperti top
tapi kemudian memantau aktivitas penggunaan disk iso cpu.
Lebih khusus lagi, saya menduga bahwa untuk beberapa server (beban berat) setelah beberapa optimasi pada berbagai bagian program yang berjalan di atasnya, sekarang bottleneck hanyalah logging ke file pada disk. Tetapi saya merasa sangat sulit untuk menilai seberapa banyak lalu lintas yang dapat ditangani oleh server.
Alat ideal saya akan menjadi sesuatu yang mencetak "Anda menggunakan 35% dari bandwidth disk Anda sekarang". Ada ide?
linux
hard-drive
load-testing
Pieter
sumber
sumber
/sys/block/sda/stat
. Kolom # 1 memberikan total # dari bacaan, bidang # 5 adalah total # dari penulisan, bidang # 9 adalah jumlah operasi I / O yang sedang berlangsung. Lihat lebih lanjut di kernel.org/doc/Documentation/iostats.txt Nilai-nilainya tidak ditandai lama dan mungkin terbungkus.how do you do it with SNMP?
. Tidak apa-apa untuk masuk dan memeriksa hal-hal, tetapi yang benar-benar membutuhkan data historis.Jawaban:
Anda bisa mendapatkan ukuran yang cukup baik dari ini menggunakan
iostat
alat ini.Pemanfaatan disk tercantum di kolom terakhir. Ini didefinisikan sebagai
sumber
apt-cache dump
tidak mengubah apa pun untuk iostatiotop adalah versi top yang melihat seberapa banyak IO yang digunakan setiap proses. Ada dalam repositori standar ubuntu; Saya tidak tahu apakah itu di RHEL atau Fedora, tetapi seharusnya begitu.
Untuk kernel yang lebih lama (misalkan CentOS 5.x atau RHEL 5.x) yang tidak mendukung iotop, gunakan topio sebagai gantinya (didokumentasikan di sini: http://yong321.freeshell.org/freeware/pio.html#linux . Ini bergantung pada / proc // io untuk statistik io dan menyediakan fungsionalitas yang mirip dengan iotop. Lihat tautan untuk perincian lebih lanjut.
sumber
Seperti yang disarankan oleh sastanin dalam komentar, Anda dapat memproses langsung nilai yang diberikan dalam
/sys/block/sda/stat
atau/proc/diskstats
. Ini mungkin membantu ketika tidak ada alat lain yang disebutkan tersedia dan Anda tidak dapat menginstalnya dengan mudah.Misalnya (IIUC) sesuatu seperti ini (dalam bash) harus memberikan jumlah pembacaan per detik:
Lihat https://www.kernel.org/doc/Documentation/iostats.txt dan https://www.kernel.org/doc/Documentation/block/stat.txt untuk dokumentasi.
sumber
Anda harus melihat di atas , yang menggabungkan kekuatan iotop / top / iftop, semuanya di satu tempat, dan menyoroti bagian-bagian penting pada sistem Anda.
sumber
Saya akan merekomendasikan untuk melihat alat nmon. Ini akan menunjukkan kepada Anda beban langsung pada sejumlah parameter sistem dan juga merekam data ke file untuk pembacaan selanjutnya. Ini alat gratis yang tersedia di sini :
sumber
untuk mengetahui berapa total bandwidth Anda, Anda dapat menggunakan
hdparm -T /dev/sda
untuk menguji kinerja cache buffer (fileio)hdparm -t /dev/sda
untuk menguji kinerja perangkat yang dibacacontoh: laptop saya mendapat 82MB / detik dari disk SATA dan 2GB / detik dari cache. Dekstop saya mendapatkan 12GB / detik dari cache dan 500MB / detik dari array HW RAID. Saya menduga angka-angka terakhir bisa menjadi dua kali lipat pada perangkat keras kelas server.
atur readahead lebih tinggi dari 256, 4096 paling cocok untuk saya
kali membaca 1GB pada ukuran blok yang berbeda dan berbagai baca-depan
sumber
--setra
sekarang-a
, dan 2),hdparm -{T,t}
perintah hanya mengeluarkan disk yang dibaca, menurutstrace
, jadi tidak rusak. (Penafian standar tentang saran di Internet berlaku)Alat standar untuk menampilkan beban hard disk adalah
iostat
.Itu tidak akan memberi tahu Anda berapa banyak usia disk bandwidth yang Anda gunakan, karena tidak tahu berapa banyak bandwidth yang dimiliki disk Anda. Bagaimanapun, disk Anda hanya memiliki angka yang dikutip dari pabrikan untuk transfer besar data yang berdekatan.
sumber
Saya pikir RRDtool harus melakukan apa yang Anda inginkan di sini menggunakan daemon untuk membuang data sistem dan kemudian memungkinkan Anda untuk memprosesnya sesuka Anda. Saya sering menggunakannya untuk menghasilkan grafik dll untuk mengukur beban sistem.
sumber