「リアルタイム」の時間が「ユーザー」と「sys」の時間を合わせたよりもはるかに長いのはなぜですか?


19

私はtime多くのコマンドを実行し(つまりnslookupSSH、暗黙的なサービスが完了するのに必要な合計時間(つまりDNS)を収集します。私が集めてusersysとして時間をreal私のプロセスは私が必要としないブロックされたときの時間数時間...私は推測します。

しかし、私のテストのいくつかにはそのような結果がありました:

real 3m22.033s
user 0m0.009s
sys 0m0.014s

私はこれらのテストを限られたリソースのLinuxボックスで実行しますが、それでもreal時間が非常に長くなります。これは、ボックスが異なるプロセスの実行で非常にビジーであることを示すだけでしょうか?サービスの所要時間を知るためusersys時間と時間を合計することはまだ正しいですか?

回答:


22

実数は、プロセスが終了するまでにかかった合計時間です(開始時間と停止時間の差)。

$ time sleep 3

real    0m3.002s
user    0m0.000s
sys     0m0.000s

このリストでは、usersysは、それぞれユーザーモードとカーネルモードで費やされた時間を指します。これらにスリープ状態で非アクティブなときに費やさた時間は含まれません。プロセスが意図的に要求したとき、またはIO(ネットワーク/ディスクアクセス/ユーザーインタラクション)が利用可能になるのを待っているか、他のプロセスが終了するのを待っているときなど

お電話の場合、通常、timewget実際のダウンロードは、かかる時間への意志の対応、ユーザが(しない限り、無視できるはずですwget集中的なデータ処理を行うように求めている)、sysは小さくすべきは、(いくつかの時間は、データの背中を動かし、バッファに対処するために費やされるかもしれませんカーネルスペースからユーザースペースまで)


wget質問に追加して申し訳ありませんが、実際にはそうtimeではありませんが、説明に感謝します。real実際にネットワークをテストしているので、ネットワークIOを待機するなどのブロック時間を含むと言うと、その時間も含めるように思われます。ありがとうございました。
ムハンマドゲルバナ

ネットワークのパフォーマンスと、照会されたマシンがDNSサーバーであるか、ping されたマシンであるかをテストするために、以下を確認してくださいreal。時間を測定するだけで十分ですか?
ムハンマドゲルバナ

@MuhammadGelbana:このリアルタイムは単なるストップウォッチであり、それ以上のものではありません。あなたが許可すればping3分22のために実行、それが3分22を返します。これは、このケースでは、単に役に立たないのです(実際に、それは最も時間のベンチマークとして役に立たないですが、結果は外部要因に依存します)。
ステファンギメネス

ありがとう。しかし、なぜタイムアウトしなかったのか知っていますか?デフォルトのタイムアウトnslookupは5秒だと読みました!
ムハンマドゲルバナ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.