web-dev-qa-db-ja.com

具体的には、UNIXの実時間、ユーザーCPU時間、システムCPU時間とは何ですか?

名前に基づいて推測することはできますが、具体的にはUNIXの実時間、ユーザーCPU時間、システムCPU時間は何ですか?

User-cpu timeはユーザーコードの実行に費やした時間で、kernel-cpu timeは特権操作(ディスクへのIOなど)のためにカーネルで費やした時間ですか?

この測定の単位は時間です。

そして、実時間は本当にプロセスがCPUに費やした秒数なのか、それとも名前が誤解を招くだけなのか?

127

壁時計時間は、壁の時計(または手元のストップウォッチ)がプロセスの開始から「今」までの経過として測定する時間です。

ユーザーCPU時間とシステムCPU時間は、ユーザーコードで費やした時間とカーネルコードで費やした時間とほぼ同じです。

単位は秒(およびサブ秒。マイクロ秒またはナノ秒の場合もあります)です。

実時間は、プロセスがCPUに費やした秒数ではありません。これは経過時間であり、CPUがオンになるのを待つ時間(他のプロセスが実行されるまでの時間)も含まれます。

125

壁時計時間:コンピューターの内部時計に従って経過した時間。外の世界の時間と一致する必要があります。これはCPU使用率とは関係ありません。参照用に提供されています。

ユーザーのCPU時間とシステム時間:まさにあなたの考え。 readwriteなどのI/O呼び出しを含むシステムコールは、カーネルコードにジャンプして実行することにより実行されます。

壁時計時間が<CPU時間の場合、プログラムを並列で実行しています。壁時計時間> CPU時間の場合、ディスク、ネットワーク、またはその他のデバイスを待機しています。

すべては SI ごとに秒単位で測定されます。

33
Fred Foo

壁時計の時間は、壁(または腕時計)の時計で測定した経過時間です。

ユーザーCPU時間は、「ユーザーランド」に費やされた時間、つまり非カーネルプロセスに費やされた時間です。

システムCPU時間はカーネルで費やされる時間で、通常はシステムコールの処理に費やされる時間です。

6
ennuikiller
time [WHAT-EVER-COMMAND]

real    7m2.444s
user    76m14.607s
sys 2m29.432s

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                24

本物または壁時計

実際の7m2.444s

24コアプロセッサを搭載したシステムでは、このcmd/processが完了するまでに7分以上かかりました。それは、与えられたすべてのコアで最も可能性のある並列性を利用することによって。

user

ユーザー76m14.607s

Cmd/processはこれだけのCPU時間を使用しました。つまり、シングルコアCPUを搭載したマシンでは、実際のユーザーとユーザーはほぼ同じになるため、同じコマンドを完了するには約76分かかります。

sys

sys 2m29.432s

これは、コンテキスト切り替え、リソース割り当てなどを含む、このcmdを実行するためにすべての基本/システムレベルの操作を実行するのにカーネルが要する時間です。

注:この例では、コマンドが並列処理/スレッドを使用することを前提としています。

詳細なマニュアルページ: https://linux.die.net/man/1/time

6
147.3k