Was sind die Unterschiede zwischen Wanduhrzeit, Benutzerzeit und CPU-Zeit?

14

Wir führen Computerjobs mit GridEngine aus. Jeder Job gibt 3 verschiedene Zeiten zurück:

  • Wanduhr Zeit
  • Benutzerzeit
  • CPU-Zeit

Was sind die Unterschiede zwischen diesen drei? Welche dieser drei Optionen eignet sich am besten, um die Leistung von zwei Anwendungen / Skripten zu vergleichen

Peter Smit
quelle

Antworten:

17

Die Wanduhrzeit ist die tatsächliche Zeit, die für die Ausführung eines Auftrags benötigt wird. Dies entspricht dem Timing Ihres Jobs mit einer Stoppuhr, und die gemessene Zeit zur Erledigung Ihrer Aufgabe kann von allem anderen beeinflusst werden, was das System gerade tut.

Die Benutzerzeit misst die Zeit, die die CPU für die Ausführung Ihres Codes aufgewendet hat. Dies zählt nichts anderes, das möglicherweise ausgeführt wird, und auch nicht die im Kernel verbrachte CPU-Zeit (z. B. für Datei-E / A).

Die CPU-Zeit misst die Gesamtzeit, die die CPU für die Ausführung Ihres Codes oder für alle vom Code angeforderten Aufgaben aufgewendet hat. Dies beinhaltet die Kernel-Zeit.

Die Messung der "Benutzerzeit" ist wahrscheinlich am besten geeignet, um die Leistung verschiedener Jobs zu messen, da sie am wenigsten von anderen Ereignissen auf dem System beeinflusst wird.

Greg Hewgill
quelle
3

Aus Wikipedia:

Der Begriff "Benutzer-CPU-Zeit" kann zunächst etwas irreführend sein. Die Gesamtzeit (reale CPU-Zeit) ist die Kombination aus der Zeit, die die CPU für die Ausführung einer Aktion für ein Programm benötigt, und der Zeit, die die CPU für die Ausführung von Systemaufrufen für den Kernel im Namen des Programms benötigt. Wenn ein Programm ein Array durchläuft, sammelt es Benutzer-CPU-Zeit. Wenn umgekehrt ein Programm einen Systemaufruf wie exec oder fork ausführt, sammelt es System-CPU-Zeit

Die Wanduhrzeit ist die tatsächliche Zeit, die ein Computer zum Ausführen einer Aufgabe benötigt. Dies ist die Summe aus drei Begriffen: CPU-Zeit, E / A-Zeit und Verzögerung des Kommunikationskanals (z. B. wenn Daten auf mehrere Computer verteilt sind). Im Gegensatz zur CPU-Zeit, die nur die Zeit misst, in der der Prozessor aktiv an einer bestimmten Aufgabe arbeitet, misst die Wall-Zeit die Gesamtzeit für den Abschluss des Prozesses. Der Unterschied zwischen beiden besteht in der Zeit, die aufgrund von programmierten Verzögerungen oder Wartezeiten auf die Verfügbarkeit von Ressourcen vergeht.

Maxwell
quelle