іостат: чекай проти svctm


16

На сторінці сторінки iostatя знайшов ці дві схожі колонки:

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.

Чи ці колонки мають означати те саме? Я думаю, що іноді вони згодні, але іноді ні:

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

Окрім очевидного попередження, яке svctmзнецінюється, чим відрізняється ці два стовпці ?

Відповіді:


13

У Linux iostat, awaitстовпець (середнє очікування) показує середній час, витрачений на запит вводу / виводу, обчислений від його початку до кінця.

У svctmстовпці (час обслуговування) повинен відображатися середній час, витрачений на обслуговування запиту, тобто час, витрачений "поза" ОС. Він повинен бути рівним або меншим, ніж попередній, оскільки запит може втратити час на очікування в черзі, якщо пристрій уже зайнятий і не приймає більше одночасних запитів.

На відміну від більшості, якщо не всіх інших Unix / Unix подібних реалізацій, ядро ​​Linux не вимірює фактичний час служби, тому iostatна цій платформі намагаються отримати її з існуючої статистики, але не вдається, оскільки це просто неможливо зробити за межами тривіальних випадків використання.

Дивіться цей блог та цікаві дискусії, які випливають за деталями.


3
Спасибі. Тепер я розумію, що await= svctm+ however_long_in_queue, так само, як говорить тонкий посібник!
dotancohen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.