iostat: tunggu vs svctm

16

Di halaman iostatmanual saya menemukan dua kolom serupa:

await
    The average time (in milliseconds) for I/O requests issued to the device to be  served.  This
    includes the time spent by the requests in queue and the time spent servicing them.

svctm
    The  average  service time (in milliseconds) for I/O requests that were issued to the device.
    Warning! Do not trust this field any more.  This field will be removed in  a  future  sysstat
    version.

Apakah kolom-kolom ini dimaksudkan untuk mewakili hal yang sama? Saya sepertinya kadang-kadang setuju, tapi kadang tidak:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.44    0.02    1.00    0.36    0.00   94.19

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.07     0.96    0.28    1.28     8.98    47.45    72.13     0.02   11.36   11.49   11.34   5.71   0.89

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.00    0.00    2.50    2.50    0.00   87.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     9.00    2.00    6.00    12.00    68.00    20.00     0.05    6.00    2.00    7.33   6.00   4.80

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.57    0.00    0.51    0.00    0.00   94.92

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          13.93    0.00    1.99    1.49    0.00   82.59

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    29.00    0.00    4.00     0.00   132.00    66.00     0.03    7.00    0.00    7.00   7.00   2.80

Selain peringatan jelas yang svctmdidepresiasi, apa perbedaan antara kedua kolom ini ?

dotancohen
sumber

Jawaban:

13

Di linux iostat, awaitkolom (tunggu rata-rata) menunjukkan waktu rata-rata yang dihabiskan oleh permintaan I / O yang dihitung sejak awal hingga akhir.

The svctmkolom (waktu pelayanan) harus menampilkan rata-rata waktu yang dihabiskan melayani permintaan, yaitu waktu yang dihabiskan "luar" OS. Itu harus sama atau lebih kecil dari yang sebelumnya karena permintaan mungkin kehilangan waktu menunggu dalam antrian jika perangkat sudah sibuk dan tidak menerima permintaan yang lebih bersamaan.

Tidak seperti kebanyakan jika tidak semua implementasi seperti Unix / Unix lainnya, kernel Linux tidak mengukur waktu layanan yang sebenarnya sehingga iostatpada platform itu mencoba untuk menurunkannya dari statistik yang ada tetapi gagal karena ini tidak dapat dilakukan di luar kasus penggunaan sepele.

Lihat blog ini dan diskusi menarik berikut untuk detailnya.

Jlliagre
sumber
3
Terima kasih. Saya sekarang mengerti bahwa await= svctm+ however_long_in_queue, sama seperti yang dinyatakan manual manual!
dotancohen