私のtopコマンドのTime+列は、実行中のphpスクリプトの正しい時間を報告しません。最初は上下に変動し、次のようなものを報告します。
TIME+
22:39.35 php
そして3秒後に報告
TIME+
7:12.41 php
そしてさらに3秒後に報告
TIME+
42:44.21 php
なぜこのようなことが起こるのか、何か手がかりはありますか?
編集:
「c」を押してプロセス名を切り替えて、同じプロセスであることを確認しました。それでも、時間は誤って報告されています。
答え1
これらが同じ PHP プロセスであることは確かですか? おそらく、複数の PHP プロセスが「上にジャンプ」しているのでしょう。
すべての PHP プロセスをより良く、より簡単に監視したい場合は、監視対象に応じてはるかに簡単な「htop」を使用することをお勧めします。
答え2
デフォルトではtop
%CPU でソートされるため、リスト内のプロセスが移動します。<
キーを繰り返し使用してソート列を PID に移動すると、リストの「移動」が停止します (少なくとも、新しいプロセスが停止または開始しない限り)。 または、ps p PID u
(対象のプロセスの PID を代入してphp
) を実行して、リスト内のそのプロセスだけを表示しますps
。 で時間が「移動」しない場合は、 でのソートのアーティファクトが表示されている可能性がありますtop
。
答え3
この値は、カーネルが管理する /proc//stat から 14 番目のフィールドを取得して計算されます。
問題の値は、私が理解する限り、「jiffies」(実質的には 100 分の 1 秒)単位でのみ増加します。
その pid の /proc//stat の値を 10 秒ごとに cat できますか?