Ich verwende einen ps
Befehl als Teil einer Übung, um Prozesse zu identifizieren, die länger als ein bestimmter Schwellenwert ausgeführt werden.
Ich verwende die folgende Vorlage, um die verstrichene Zeit für einen Know-Prozess-Befehl abzurufen:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Ich stelle bei kurz laufenden Prozessen fest, dass der Wert für etime (verstrichene Zeit) das Format annimmt, minutes:seconds
und anhand dessen kann ich leicht feststellen, wie lange ein Prozess ausgeführt wurde.
Bei sehr langen Prozessen (Tage) verstehe ich das Format nicht.
Ich habe einen MySQL-Serverprozess, der htop
126 Stunden lang ausgeführt wird.
Das Ausführen ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
gibt mir einen Wert von 9-03:35:32
.
Meine beste Vermutung ist, dass dies 9 etwas, 3 Stunden, 35 Minuten, 32 Sekunden bedeutet. Ich kann nicht herausfinden, was die Einheiten für die 9 sind.
Der fragliche Prozess lief 126 Stunden, ungefähr 5,25 Tage. Dies deutet darauf hin, dass die 9 in der obigen Ausgabe keine Tage darstellt. Sie können auch keine halben Tage sein, da (9 * 12) Stunden + 3 Stunden + 35 Minuten + 32 Sekunden weniger als 5 Tage sind.
Wie interpretiere ich den Wert der verstrichenen Zeit, den ich für lang laufende Prozesse sehe? Welche Einheiten begleiten die 9 in der obigen Ausgabe?
ps
zeigt das eine oder andere an, abhängig von den Optionen, die Sie übergeben.etimes
stattetime
und die Ergebnisse zu vergleichen.Antworten:
Nach dem Standard :
Die 9 bedeutet also Tage, ob Sie es glauben oder nicht. Könnten Sie die Ausgabe von htop falsch interpretieren? Was sagt top (mit einem Zeitformat von
minutes:seconds
)? Sind Sie sicher, dass das Feld, das Sie in htop betrachten, etime entspricht? (zum Beispiel könnte es Mittel 126 Minuten von CPU Zeit?)quelle