All Products
Search
Document Center

Alibaba Cloud Linux:Meningkatkan Pemantauan Throttling I/O Blok

Last Updated:Jun 28, 2025

Mulai dari versi kernel 4.19.81-17.al7, Alibaba Cloud Linux 2 dan Alibaba Cloud Linux 3 menyediakan antarmuka untuk meningkatkan pemantauan throttling I/O blok. Topik ini menjelaskan antarmuka tersebut serta memberikan contoh penggunaannya.

Informasi latar belakang

Throttling I/O blok Linux (BPS atau IOPS) diperlukan dalam berbagai skenario, terutama saat cgroup writeback diaktifkan. Alibaba Cloud Linux menyediakan antarmuka untuk meningkatkan pemantauan throttling I/O blok, sehingga mempermudah operasi terkait throttling I/O.

Antarmuka

Antarmuka

Deskripsi

blkio.throttle.io_service_time

Jumlah total waktu antara pengiriman permintaan dan penyelesaian permintaan untuk operasi I/O. Satuan: nanodetik.

blkio.throttle.io_wait_time

Jumlah total waktu yang dihabiskan oleh operasi I/O menunggu di antrian penjadwal. Satuan: nanodetik.

blkio.throttle.io_completed

Jumlah operasi I/O yang telah selesai. Digunakan untuk menghitung latensi rata-rata pada lapisan throttling I/O blok.

blkio.throttle.total_io_queued

Jumlah operasi I/O yang telah di-throttle. Jumlah operasi I/O yang di-throttle dalam siklus saat ini dapat dihitung berdasarkan data pemantauan periodik dan digunakan untuk menganalisis apakah latensi I/O terkait dengan throttling.

blkio.throttle.total_bytes_queued

Jumlah byte I/O yang telah di-throttle. Satuan: byte.

Antarmuka tersebut tersimpan di /sys/fs/cgroup/blkio/<cgroup>/, dengan <cgroup> menunjukkan grup kontrol yang digunakan.

Contoh

Anda dapat menghitung latensi I/O rata-rata disk menggunakan antarmuka di atas. Contoh ini memantau latensi tulis I/O rata-rata disk vdd setiap interval 5 detik untuk menghitung latensi I/O rata-rata disk vdd. Tabel berikut menjelaskan parameter yang relevan.

Parameter

Deskripsi

write_wait_time<N>

Durasi throttling pada lapisan throttling I/O blok.

write_service_time<N>

Jumlah total waktu antara pengiriman permintaan dan penyelesaian permintaan untuk operasi I/O.

write_completed<N>

Jumlah operasi I/O yang telah selesai.

  1. Peroleh data pemantauan pada waktu T1.

    write_wait_time1 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_wait_time | grep -w "254:48 Write" | awk '{print $3}'`
    write_service_time1 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_service_time | grep -w "254:48 Write" | awk '{print $3}'`
    write_completed1 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_completed | grep -w "254:48 Write" | awk '{print $3}'`
  2. Tunggu selama 5 detik, lalu peroleh data pemantauan pada waktu T2 (T1 + 5s).

    write_wait_time2 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_wait_time | grep -w "254:48 Write" | awk '{print $3}'`
    write_service_time2 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_service_time | grep -w "254:48 Write" | awk '{print $3}'`
    write_completed2 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_completed | grep -w "254:48 Write" | awk '{print $3}'`
  3. Hitung latensi I/O rata-rata selama 5 detik menggunakan rumus berikut:

    Latensi I/O rata-rata = (Total durasi I/O pada waktu T2 - Total durasi I/O pada waktu T1)/(Jumlah operasi I/O yang selesai pada waktu T2 - Jumlah operasi I/O yang selesai pada waktu T1)

    avg_delay = `echo "((write_wait_time2 + write_service_time2) - (write_wait_time1+write_service_time1)) / (write_completed2 - write_completed1)" | bc`