iostat: await vs. svctm


16

Nella iostatmanpage ho trovato queste due colonne simili:

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.

Queste colonne sono pensate per rappresentare la stessa cosa? Sembra che a volte siano d'accordo, ma a volte no:

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

Oltre all'ovvio avvertimento che svctmè ammortizzato, qual è la differenza tra queste due colonne ?

Risposte:


13

Su Linux iostat, la awaitcolonna (attesa media) mostra il tempo medio impiegato da una richiesta I / O calcolata dall'inizio alla fine.

La svctmcolonna (tempo di servizio) dovrebbe visualizzare il tempo medio impiegato per soddisfare la richiesta, ovvero il tempo trascorso "al di fuori" del sistema operativo. Dovrebbe essere uguale o inferiore a quello precedente poiché la richiesta potrebbe aver perso tempo in attesa in una coda se il dispositivo è già occupato e non accetta più richieste simultanee.

A differenza della maggior parte, se non di tutte le altre implementazioni come Unix / Unix, il kernel di Linux non misura il tempo di servizio effettivo, quindi iostatsu quella piattaforma sta cercando di ricavarlo dalle statistiche esistenti ma fallisce in quanto ciò non può essere fatto al di fuori di banali casi d'uso.

Vedi questo blog e le interessanti discussioni che seguono per i dettagli.


3
Grazie. Ora capisco che await= svctm+ however_long_in_queue, proprio come afferma il manuale!
dotancohen
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.