長時間実行プロセスのps経過時間形式について


10

ps演習の一部としてコマンドを使用して、特定のしきい値よりも長く実行されているプロセスを特定しています。

次のテンプレートを使用して、knowプロセスコマンドの経過時間を取得しています。

ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'

実行時間の短いプロセスで、etime(経過時間)の値の形式がわかり、これからプロセスの実行時間minutes:secondsを簡単に判断できます。

非常に長時間実行されるプロセス(数日)の場合、形式がわかりません。

htop126時間実行しているように見えるMySQLサーバープロセスがあります。

実行ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'すると、の値が得られます9-03:35:32

私の推測では、これは9何か、3時間35分32秒という意味です。9の単位がわかりません。

問題のプロセスは126時間、約5.25日実行されています。これは、上記の出力の9が日数を表していないことを示唆しています。(9 * 12)時間+ 3時間+ 35分+ 32秒は5日未満であるため、半日になることもできません。

長時間実行されているプロセスで表示される経過時間の値を解釈するにはどうすればよいですか?上記の出力で9に付随する単位は何ですか?


ここでは、POSIX時間形式が表示されています。Minutes:secondsはBSD時間形式です。Linux psは、渡すオプションに応じて、どちらか一方を表示します。
Gilles「SO-悪をやめなさい」

再確認するには、etimes代わりに試しetimeて結果を比較してください。
ルスラン

回答:


16

標準によると:

POSIXロケールでは、次の形式でプロセスが開始されてからの経過時間。

[[dd-]hh:]mm:ss

ここで、ddは日数、hhは時間数、mmは分数、ssは秒数を表します。ddフィールドは10進整数でなければならない。hh、mm、およびssフィールドは、左側にゼロが埋め込まれた2桁の10進整数でなければなりません。

つまり、9は、信じられないにかかわらず、日数を意味します。htopからの出力を誤って解釈していませんか?top(時間形式はminutes:seconds)の意味は何ですか?htopで見ているフィールドがetimeに相当することを確信していますか?(たとえば、CPU時間の126 を意味する可能性がありますか?)


確認してくださってありがとうございます。htopは確かに126時間を示していますが、これは実際の時間ではなく、他の時間(おそらくCPU時間)かもしれません。htopのフィールドはetimeと同等ではありません。ここでは誤って想定しています。
Jon Cram

1
@JonCram本当に時間ですか?元の上部には分のみが表示されます(つまり、数時間に分割されるのではなく、60を超える分になります)。126:37のような数値は、126分37秒を意味します。htopも同じかもしれないと思っていました。9日間で126時間のCPU時間は多くのように思えます。
Random832
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.