iostat: await vs. svctm

11

Na página iostat , encontrei estas duas colunas semelhantes:

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.

Essas colunas representam a mesma coisa? Eu pareço que às vezes eles concordam, mas às vezes não:

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

Além do aviso óbvio de que svctm é depreciado, qual é a diferença entre essas duas colunas ?

    
por dotancohen 08.12.2013 / 07:17

1 resposta

10

No linux iostat , a coluna await (espera média) está mostrando o tempo médio gasto por uma solicitação de E / S calculada desde o início até o fim.

A coluna svctm (tempo de serviço) deve exibir o tempo médio gasto na manutenção da solicitação, ou seja, o tempo gasto "fora" do sistema operacional. Ele deve ser igual ou menor que o anterior, pois a solicitação pode ter perdido o tempo de espera em uma fila se o dispositivo já estiver ocupado e não aceitar mais solicitações simultâneas.

Diferentemente da maioria, se não de todas as outras implementações do tipo Unix / Unix, o kernel do Linux não mede o tempo real de serviço, então iostat nessa plataforma está tentando derivá-lo das estatísticas existentes, mas falha porque isso não pode ser feito fora casos de uso triviais.

Veja este blog e as discussões interessantes que se seguem para detalhes.

    
por 08.12.2013 / 10:42