Warum ist die "Echtzeit" viel höher als die kombinierten Zeiten "Benutzer" und "System"?

19

Ich führe und timeviele Befehle (dh nslookup) durch SSHund sammle die Gesamtzeit, die der implizite Dienst benötigt, um zu vervollständigen (dh DNS ). Also sammle ich die userund sys-Zeit, da die realZeit zählt, in der mein Prozess blockiert, was ich nicht brauche ... Ich denke.

Aber einige meiner Tests hatten Ergebnisse als solche:

real 3m22.033s
user 0m0.009s
sys 0m0.014s

Ich führe diese Tests auf Linux-Boxen mit begrenzten Ressourcen durch, aber dennoch ist die realZeit bedeutend hoch. Würde dies nur anzeigen, dass die Box SEHR beschäftigt ist, verschiedene Prozesse auszuführen? Ist es immer noch richtig, die userund sysZeiten zu addieren, um zu wissen, wie viel der Service gekostet hat?

Muhammad Gelbana
quelle

Antworten:

22

Real ist die Gesamtzeit, die zum Beenden des Prozesses benötigt wurde (das ist der Unterschied zwischen Start- und Stoppzeit):

$ time sleep 3

real    0m3.002s
user    0m0.000s
sys     0m0.000s

In dieser Auflistung beziehen sich Benutzer und System auf die Zeit, die jeweils im Benutzermodus und im Kernelmodus verbracht wurde. Diese beinhalten nicht die Zeit, die Sie im Ruhezustand verbringen, wenn Sie inaktiv sind . Ein Prozess geht in den Ruhezustand, wenn er dies absichtlich angefordert hat oder wenn er auf die Verfügbarkeit von E / A (Netzwerk- / Plattenzugriffs- / Benutzerinteraktion) wartet oder auf den Abschluss anderer Prozesse wartet, wenn bei sehr hoher Systemlast keine CPU verfügbar ist , etc.

Wenn Sie anrufen Regel timeauf wget, echten Willen entsprechen dem Zeitpunkt der Download dauert, Benutzer sollte vernachlässigbar sein (es sei denn wgetgefragt wird , intensive Datenverarbeitung durchzuführen), sys sollte klein sein (einige Zeit könnte ausgegeben werden mit Puffern zu behandeln, Daten zurück bewegt und weiter vom Kernel-Space zum User-Space.)

Stéphane Gimenez
quelle
Es tut mir leid, dass ich wgetdie Frage hinzugefügt habe, ich weiß timees eigentlich nicht , aber danke für die Erklärung. Wenn realich sage, dass dies Blockierungszeiten wie das Warten auf Netzwerk-E / A umfasst, denke ich, dass ich diese Zeit auch einbeziehe, weil ich das Netzwerk tatsächlich teste. Vielen Dank.
Muhammad Gelbana
Würden Sie bitte Folgendes bestätigen, um die Netzwerkleistung und die Reaktionsfähigkeit des abgefragten Computers zu testen, ob es sich um einen DNSServer oder einen Ping-Computer handelt. Reicht es aus, nur die realZeit zu messen ?
Muhammad Gelbana
@ Muhammad Gelbana: Diese Echtzeit ist nur eine Stoppuhr, nichts weiter. Wenn Sie ping3 Minuten 22 laufen lassen , werden 3 Minuten 22 zurückgegeben. In diesem Fall ist es einfach nutzlos (und tatsächlich ist es die meiste Zeit als Benchmark nutzlos, das Ergebnis hängt von externen Faktoren ab).
Stéphane Gimenez
Vielen Dank. Aber wisst ihr warum es kein Timeout gab? Ich habe gelesen, dass das Standard-Timeout für nslookup5 Sekunden ist!
Muhammad Gelbana