iostat: aguardar vs. svctm

16

Na página de iostatmanual, encontrei essas 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 devem representar a mesma coisa? Parece 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 que svctmé depreciado, qual é a diferença entre essas duas colunas ?

dotancohen
fonte

Respostas:

13

No linux iostat, a awaitcoluna (espera média) mostra o tempo médio gasto por uma solicitação de E / S calculada desde o início até o final.

A svctmcoluna (tempo de serviço) deve exibir o tempo médio gasto no atendimento 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 tempo de espera em uma fila se o dispositivo já estiver ocupado e não aceitar solicitações simultâneas.

Ao contrário da maioria das implementações, se não todas as outras implementações do tipo Unix / Unix, o kernel do Linux não mede o tempo real de serviço; portanto, iostatessa plataforma está tentando derivá-lo das estatísticas existentes, mas falha, pois isso simplesmente não pode ser feito fora dos casos de uso triviais.

Veja este blog e as discussões interessantes a seguir para obter detalhes.

jlliagre
fonte
3
Obrigado. Agora eu entendo isso await= svctm+ however_long_in_queue, exatamente como o manual indica!
dotancohen