(Seorang pria Windows bertanya) Mengukur Latensi Disk di Linux: Apakah saya repot?

11

Pada Windows, setiap kali saya ingin memvalidasi / mengkonfirmasi bahwa mungkin ada masalah terkait IO pada volume yang dihidupkan oleh database atau aplikasi dengan latensi rendah lainnya, saya memeriksa latensi disk.

Jika saya melihat Windows Average Disk sec / Transfer counter> 18-20ms secara konsisten, maka kenari saya di tambang batubara baru saja mati dan saya perlu menyelidiki lebih lanjut. Drop-mati sederhana.

Saya sedang melihat Linux sekarang, dan tidak melihat metrik berbasis latensi serupa. Penelitian cepat yang telah saya lakukan menunjukkan bahwa saya bahkan mungkin tidak INGIN ... Saya melihat banyak referensi untuk I / O Tunggu menjadi cara kebanyakan orang melacak ini.

Apakah ada aturan praktis yang Anda gunakan sehubungan dengan ini? Misalnya APA PUN saya / saya tunggu saya melihat buruk untuk volume database? Apakah ada perintah iostat sederhana yang memberi saya tampilan yang lebih baik pada kesehatan disk secara keseluruhan daripada hanya TOP eyeballing?

Terimakasih banyak!

Russell Christopher
sumber
4
Anda dapat melihatioping
ewwhite
Terima kasih, @ewwhite. Saya kira saya hanya ingin tahu apakah saya perlu mengubah fokus saya sepenuhnya dan bukannya memantau ini dengan cara yang berbeda, Anda tahu?
Russell Christopher
2
Aktifkan koleksi sysstat di sistem Anda. Kemudian Anda dapat memeriksa persentase CPU iowait, yang sangat berguna untuk mendiagnosis kelambatan terkait IO.
EEAA
2
@RussellChristopher Anda dapat melihat contoh saroutput di sini . Perhatikan %iowaitkolomnya.
EEAA
@Matt sementara itu SANGAT mirip, fokusnya sedikit berbeda. QA itu lebih fokus pada melakukan tes dalam lingkungan yang disimulasikan, dimana Q ini tampaknya lebih tentang pemantauan kinerja saat ini di lingkungan produksi.
BeowulfNode42

Jawaban:

12

Secara pribadi saya menggunakan perintah iostat -xk 10dan melihat awaitkolom.

  • -x Menampilkan statistik yang diperluas.
  • -k Menampilkan statistik dalam kilobyte per detik. Atau gunakan m untuk megabytes / s.
  • 10 interval tampilan dalam detik

Ini adalah metrik yang hampir identik dengan windows Average Disk sec / Transfer dan terdaftar dalam ms, bukan detik. Jadi aturan praktis yang sama dapat diterapkan, meskipun ini akan tergantung pada semua hal. Saya biasanya menemukan bahwa pengguna mulai menggerutu pada 15 ms dan 20 ms sangat buruk.

Tekan ctrl + c untuk keluar, atau tentukan jumlah iterasi yang akan dilihat dengan parameter hitungan. Perhatikan bahwa hasil iterasi pertama sangat miring karena sampel waktu kecil yang digunakan dalam iterasi pertama.

Dari man iostathalaman

menunggu Waktu rata-rata (dalam milidetik) untuk permintaan I / O yang dikeluarkan untuk perangkat yang akan dilayani. Ini termasuk waktu yang dihabiskan oleh permintaan dalam antrian dan waktu yang dihabiskan untuk melayani mereka.

Sunting: await adalah metrik utama yang saya gunakan untuk menonton disk di bawah beban produksi untuk melihat apakah throughput dan iops-nya dapat memenuhi permintaan.

Stat% iowait lebih tentang keseimbangan antara cpu dan penggunaan disk. % iostat akan tetap lebih rendah dari yang diharapkan jika aktivitas cpu dan disk tinggi. Di sisi lain, mulai dari tingkat penggunaan disk yang cukup rendah,% iostat bisa relatif tinggi jika cpu idle. Makhluk ini menunggu harus diambil dengan sebutir garam juga. Jika ada banyak baca / tulis berurutan yang terjadi, angka tersebut akan condong ke nilai yang lebih rendah, dan aturan praktis 18 ~ 20ms Anda tidak akan berguna dalam kondisi ini karena sebagian besar potongan yang ditulis akan menjadi data berurutan dan akan dilayani oleh disk dengan sangat cepat, sedangkan io acak lainnya akan menunggu, karena sistem Native-Command-Queuing (NCQ) yang ada di dalam disk untuk mengoptimalkan throughput dengan membiarkan disk memilih urutan permintaan yang dilayani.

BeowulfNode42
sumber
Terima kasih @ beowulfNode42. Apakah ini metrik utama yang Anda gunakan dalam mengincar "bad disk"? Relik Baru, tampaknya berfokus pada persentase menunggu / dan menggunakan disk (baca dan tulis) persentase ... Ini membuat saya bertanya-tanya apakah saya mengejar metrik yang salah, atau jika MEREKA hanya melaporkan informasi yang kurang bermanfaat ....
Russell Christopher
@RussellChristopher, statistik lainnya menyediakan konteks yang diperlukan untuk menafsirkan info tunggu. misalnya, apakah ada banyak iops (r / dan w / s), banyak MB / s, adalah ukuran permintaan rata-rata (avgrq-sz) besar atau kecil, dan apa ukuran antrian rata-rata adalah (avgqu-sz). Ya, bersama dengan metrik terkait cpu% iowait,% pengguna,% sistem dll untuk melihat apakah disk memperlambat cpu atau sebaliknya.
BeowulfNode42