Pertanyaan Bagaimana saya bisa memantau beban hard disk di Linux?


Apakah ada utilitas baris perintah yang baik untuk memantau beban hard disk di linux? Sesuatu seperti top tetapi kemudian memantau aktivitas disk i.s.o. penggunaan CPU.

Lebih khusus lagi, saya menduga bahwa untuk beberapa server (beban berat) setelah beberapa pengoptimalan di berbagai bagian program yang berjalan di atasnya, saat ini kemacetan hanyalah penebangan ke file pada disk. Tapi saya merasa sangat sulit untuk menilai berapa banyak traffic yang dapat ditangani server.

Alat ideal saya adalah sesuatu yang mencetak "Anda menggunakan 35% dari bandwidth disk Anda sekarang". Ada ide?


88
2018-05-18 13:56




Pertanyaan sempurna, adalah apa yang saya cari =) - rafa.ferreira
Itu mungkin untuk membaca sysfs secara langsung, seperti /sys/block/sda/stat. Kolom # 1 memberikan jumlah total pembacaan, bidang # 5 adalah jumlah total penulisan, bidang # 9 adalah jumlah operasi I / O yang sedang berlangsung. Lihat selengkapnya di kernel.org/doc/Documentation/iostats.txt Nilai-nilai itu tidak ditandatangani lama dan mungkin membungkus. - sastanin
Ini adalah pertanyaan yang sangat bagus karena kami selalu berjuang dengan masalah ini di server Plesk. Namun, apa yang hilang itu how do you do it with SNMP?. Tidak apa-apa untuk masuk dan memeriksa barang-barang, tetapi orang benar-benar membutuhkan data historis. - Eugene van der Merwe
unix.stackexchange.com/questions/55212/… - Ciro Santilli 新疆改造中心 六四事件 法轮功


Jawaban:


Anda bisa mendapatkan ukuran yang cukup bagus dari ini menggunakan iostat alat.

% 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

Pemanfaatan disk terdaftar di kolom terakhir. Ini didefinisikan sebagai

Persentase waktu CPU saat permintaan I / O dikeluarkan ke perangkat   (utilisasi band-lebar untuk perangkat). Saturasi perangkat   terjadi ketika nilai ini mendekati 100%.


77
2018-05-18 14:15



Dalam paket apa ini berada di Debian, jika ada? apt-cache dump tidak mengubah apa pun untuk iostat - hBy2Py
@Brian: Ada dalam paket sysstat (melalui yum anyway ...) - Joe
@Joe Nifty, terima kasih! - hBy2Py
Tidak dapat menemukannya di RHEL 6.5. Apakah ini tersedia untuk RHEL? - Hazok
Bisakah ini bekerja tanpa harus melanjutkan dengan penundaan? Mencoba menjalankan satu instance untuk mendapatkan data dari mendapatkan nomor yang sama mungkin karena tidak dapat mengambil sampel ??? - Wilf


iotop adalah versi top yang melihat berapa banyak IO yang digunakan setiap proses. Ada dalam repositori ubuntu standar; Saya tidak tahu apakah itu di RHEL atau Fedora, tetapi seharusnya.

enter image description here

Untuk kernel yang lebih tua (katakanlah 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. Itu bergantung pada / proc // io untuk statistik io dan menyediakan fungsi yang sama seperti iotop. Lihat tautan untuk detail lebih lanjut.


75
2018-05-18 14:14



Memang, itu tidak diinstal secara default di Ubuntu, sehingga orang bisa mengeluarkan: sudo apt-get install iotop untuk mendapatkannya - Moshe
iotop membutuhkan kernel lebih tinggi dari 2.6.20, yang sayangnya mengesampingkan kedua RedHat el4 dan el5. - Dave Cheney
Pada RedHat 5.4, bit yang dibutuhkan untuk membuat pekerjaan iotop telah dilaporkan kembali. Nikmati! - Dave Cheney
Itu ada di Fedora :). - jamie


Seperti yang disarankan oleh sastanin dalam komentar, Anda dapat memproses nilai langsung yang diberikan dalam /sys/block/sda/stat atau /proc/diskstats. Ini mungkin berguna ketika tidak ada alat lain yang disebutkan yang tersedia dan Anda tidak dapat menginstalnya dengan mudah.

Misalnya (IIUC) sesuatu seperti ini (dalam bash) harus memberikan jumlah bacaan per detik:

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

Lihat https://www.kernel.org/doc/Documentation/iostats.txt dan https://www.kernel.org/doc/Documentation/block/stat.txt untuk dokumentasi.


12
2017-07-22 10:16





Anda harus melihatnya di atas, yang menggabungkan kekuatan iotop / top / iftop, semuanya di satu tempat, dan menyoroti bagian penting pada sistem Anda.


5
2018-03-01 04:42





Saya akan merekomendasikan untuk melihat alat nmon. Ini akan menunjukkan Anda tinggal memuat pada sejumlah parameter sistem serta merekam data ke file untuk kemudian teliti. Ini adalah alat gratis yang tersedia sini:


4
2018-05-18 15:52





untuk mengetahui berapa total bandwidth Anda yang mungkin Anda gunakan hdparm -T /dev/sda untuk menguji kinerja buffer cache (fileio) hdparm -t /dev/sda untuk menguji perangkat membaca kinerja

contoh: laptop saya mendapat 82MB / detik dari disk SATA dan 2GB / detik dari cache. Dekstop saya mendapat 12GB / detik dari cache dan 500MB / sec dari array RAID HW. Saya menduga angka-angka terakhir bisa dua kali lipat pada perangkat keras kelas server.

mengatur readahead lebih tinggi dari 256, 4096 bekerja paling baik untuk saya

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  

kali membaca 1GB dengan ukuran blok yang berbeda dan baca-depan yang berbeda


4
2018-05-18 15:58



Selamat datang di SF. Anda dapat menggunakan penyorotan kode dalam posting Anda dengan menempatkan tanda kutip di sekitar string atau indentasi paragraf. - ℝaphink
Dua hal - 1) --setra sekarang -a, dan 2), yang hdparm -{T,t} perintah hanya mengeluarkan disk yang dibaca, menurut strace, jadi tidak merusak. (Penafian standar tentang saran di Internet berlaku) - i336_


Alat standar untuk menunjukkan beban hard disk iostat.

Ini tidak akan memberi tahu Anda berapa banyak bandwidth disk usia usia yang Anda gunakan, karena tidak tahu berapa banyak bandwidth yang dimiliki disk Anda. Dalam hal apapun, disk Anda hanya memiliki angka produsen yang dikutip untuk transfer besar data yang berdekatan.


3
2018-05-18 14:02





Saya pikir RRDtool harus melakukan apa yang Anda inginkan sini ia 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.


2
2018-05-18 14:03