Welche Zeiteinheiten verwendet "top"?


59

Wenn ich den Befehl "top" gebe und folgende Ergebnisse erhalte:

PID   USER  PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
00001 bob   25   0 77380 1212 1200 R 95.8  0.0  89122:13 fee         
00002 bob   25   0 77380 1196 1184 R 95.4  0.0  88954:14 fi         
00003 sam   18   0  427m  16m 6308 R 30.0  0.1  54:46.43 fo         
00004 sam   18   0  427m  16m 6308 R 26.5  0.1  52:55.33 fum         

Frage: Was sind die Einheiten in der Spalte "TIME +"?

Was ich versucht habe: (Bitte schlagen Sie eine bessere Strategie für die Suche nach Dokumentation vor ...)

  • man top | grep -C 4 time oder
  • man top | grep <X>wenn ich ersetzen minute, hour, day, oder HHfür X...

Antworten:


47

Minuten: Sekunden. Hundertstel

Die Suche nach "TIME +" oder "seconds" gibt die Antwort (ich würde die Manpage nicht als klar bezeichnen).

Dieses Format ist von BSD geerbt, Sie erhalten es auch mit ps uoder ps lunter Linux.


danke ... (Ich fand TIME + von der ersten Suche, war aber entmutigt); Kann ich davon ausgehen, dass 89122: 13 in Einheiten von MM: SS angegeben ist (89122 Minuten und 13 Sekunden = 60 Tage)?
Abe

1
@Abe Ja, 89122: 13 = 5347333 Sekunden ≈ 62 Tage.
Gilles 'SO- hör auf böse zu sein'

1
@Abe Ich denke, wir können die angegebene Zeit auf die Anzahl der Kerne aufteilen und die Uhrzeit
abrufen,

@ Gilles Ich bin neu in Linux. Welche Zeit bedeutet TIME +? Wie lange läuft der Job?
Mithusengupta123

@ mithusengupta123 Das ist die Menge an CPU-Zeit, die der Prozess verbraucht. Wenn der Prozess nicht an die CPU gebunden ist, kann es sein, dass er wesentlich kürzer als die Ausführungsdauer des Prozesses ist, z. B. ein Prozess, der die meiste Zeit im Leerlauf wartet, um Anforderungen zu bearbeiten.
Gilles 'SO- hör auf böse zu sein'

57

psund topAnzeige der verwendeten CPU-Zeit, nicht der Uhrzeit seit dem Start des Prozesses. Mit dem folgenden Befehl können Sie überprüfen, wann der Prozess gestartet wurde. Das Erstellungsdatum der PID-Datei ist der Zeitpunkt, an dem der Prozess gestartet wurde:

ls -ld /proc/pid

Für Prozess 2303 wäre es also:

ls -ld /proc/2303

2
Ich sehe nirgendwo, wo Gilles sagte, dass die Werte Uhrzeit zeigten ...
Chris Down

Nun, meiner Meinung nach führt es zu "irgendjemandem" im Irrtum.
PJunior

15
Ihre Antwort ist nützlich, aber die Angabe, dass die andere Antwort völlig falsch ist, ist (meiner Meinung nach) nicht korrekt. Die ursprüngliche Frage ist, welche Einheiten verwendet werden. Die "andere Antwort" antwortet darauf. Es gibt nur nicht an, dass dies eine Messung der CPU-Zeit ist, nicht der Uhrzeit. Ihre Antwort verdeutlicht dies und ist daher nützlich (beantwortet aber nicht die ursprüngliche Frage). Ich werde Ihre Antwort ablehnen, wenn Sie aus Ihrer Antwort streichen, dass die andere Antwort "völlig falsch" ist.
Jason S

2
Dies scheint nicht für lange laufende Prozesse zu funktionieren (möglicherweise funktioniert es auch nicht für kurze Jobs). Ich sehe, dass diese Datei auch aus einem anderen Grund aktualisiert wird. Es gibt eine andere Möglichkeit zu berechnen, wann der Prozess erstellt wird ( stackoverflow.com/questions/5731234/… )
Ganesh

Funktionierte nicht für mich, nachdem der Prozess 2 Tage lang ausgeführt wurde, hat diese Datei eine sehr kürzlich geänderte Zeit gemeldet. Auch das OP war "welche Einheiten", während dies interessant ist ... off topic.
Wilbur Whateley
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.