Die Spalte Time+ in meinem Top-Befehl meldet nicht die korrekte Zeit für ein laufendes PHP-Skript. Sie schwankt auf und ab und meldet zunächst etwas wie
TIME+
22:39.35 php
Und dann drei Sekunden später die Meldung
TIME+
7:12.41 php
Und dann noch einmal drei Sekunden später melden
TIME+
42:44.21 php
Gibt es irgendwelche Hinweise, warum das passiert?
Bearbeiten:
Ich drücke „C“, um den Namen des Prozesses umzuschalten, damit ich weiß, dass es derselbe Prozess ist. Die Zeit wird immer noch falsch gemeldet.
Antwort1
Sind Sie sicher, dass es sich um dieselben PHP-Prozesse handelt? Ich wette, Sie haben mehrere PHP-Prozesse, die „oben draufspringen“.
Wenn Sie alle PHP-Prozesse besser und einfacher überwachen möchten, empfehle ich die Verwendung von „htop“, da dies für Ihr Anliegen viel einfacher ist.
Antwort2
Standardmäßig top
wird nach %CPU sortiert, sodass Sie sehen, wie sich der Prozess in der Liste bewegt. Drücken Sie die <
Taste wiederholt, um die Sortierspalte auf PID zu verschieben, und die Liste hört auf, „herumzuspringen“ (zumindest, solange keine neuen Prozesse angehalten oder gestartet werden). Alternativ können Sie ein ausführen ps p PID u
(indem Sie die PID des php
betreffenden Prozesses einsetzen), um nur diesen Prozess in einer ps
Auflistung anzuzeigen. Wenn die Zeit dort nicht „herumspringt“, sehen Sie wahrscheinlich ein Artefakt der Sortierung in top
.
Antwort3
Dieser Wert wird berechnet, indem das 14. Feld aus /proc//stat genommen wird, das der Kernel verwaltet.
Der fragliche Wert erhöht sich – soweit ich es verstehe – immer nur im Bruchteil einer Sekunde (tatsächlich also im Sekundentakt).
Können Sie die Werte von /proc//stat für diese PID im Abstand von zehn Sekunden überprüfen?