iostat: жду против 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.