Die Spalte „Time+ (CPU-Zeit)“ im obersten Befehl gibt falsch wieder

Die Spalte „Time+ (CPU-Zeit)“ im obersten Befehl gibt falsch wieder

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 topwird 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 phpbetreffenden Prozesses einsetzen), um nur diesen Prozess in einer psAuflistung 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?

verwandte Informationen