iostat: warte auf vs. svctm

16

In der iostatManpage habe ich diese beiden ähnlichen Spalten gefunden:

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.

Sollen diese Spalten dasselbe darstellen? Ich scheine, dass sie manchmal zustimmen, aber manchmal nicht:

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

Was ist der Unterschied zwischen diesen beiden Spalten, abgesehen von der offensichtlichen Warnung, svctmdie abgeschrieben wird ?

dotancohen
quelle

Antworten:

13

Unter Linux iostatzeigt die awaitSpalte (durchschnittliche Wartezeit) die durchschnittliche Zeit an, die eine E / A-Anforderung von ihrem Anfang bis zu ihrem Ende benötigt.

In der svctmSpalte (Servicezeit) sollte die durchschnittliche Zeit angegeben werden, die für die Bearbeitung der Anforderung aufgewendet wurde, dh die Zeit, die "außerhalb" des Betriebssystems verbracht wurde. Sie sollte gleich oder kleiner als die vorherige sein, da die Anforderung möglicherweise Zeit verloren hat, in einer Warteschlange zu warten, wenn das Gerät bereits ausgelastet ist und keine weiteren gleichzeitigen Anforderungen akzeptiert.

Im Gegensatz zu den meisten anderen Unix / Unix-ähnlichen Implementierungen misst der Linux-Kernel nicht die tatsächliche Servicezeit, sodass iostatdiese Plattform versucht, sie aus vorhandenen Statistiken abzuleiten, was jedoch fehlschlägt, da dies nur in einfachen Anwendungsfällen möglich ist.

Weitere Informationen finden Sie in diesem Blog und den folgenden interessanten Diskussionen .

jlliagre
quelle
3
Vielen Dank. Ich verstehe jetzt das await= svctm+ however_long_in_queue, so wie es im feinen Handbuch heißt!
Dotancohen