CPU使用率はどういう意味ですか?


11

プロセスによるCPU使用率を監視しています。プロセスはCPUを50%しか使用しませんか?プロセスは100%、0%、100%の順に使用しませんか?他のすべての命令が異なるプログラムであるのとは異なります。


1
たまたまデュアルプロセッサーを手に入れましたか?

間違いなくSuperUserへの質問です。
ノルドリン2009

回答:


16

ポーリングの合計は、毎秒約1回だけです。最後の1秒間がどれだけ使用されたかを見ています。

CPUが少しの間50%に留まっているのを見た場合、デュアルCPUシステムで1つのCPUの100%を使用している可能性があります。


4
「デュアルコアシステムの1つのコア」-...または「ハイパースレッディング」を備えたシングルCPU。

@ChrisW:修正されました。
Joel Coehoorn、2009

デュアルコアシステムで使用されるCPUパワーの総量が等クワッドコア400%に、200%になるようにCPU使用率は、多くの場合、個別CPU 100%のうち報告されている
デビッドZ

Windowsタスクマネージャーではありません。
Joel Coehoorn、2009

11

技術的にはあなたは正しいです。CPUは常に使用されているか、使用されていません。しかし、それをグラフに表示することはあまり役に立ちません。そのため、グラフは一定期間、おそらく1秒あたりのCPU使用率を平均化しています。


3

OSは、特定の期間にプロセスをスケジュールします。したがって、プロセスが(たとえば)10ミリ秒のうち1ミリ秒にスケジュールされている場合、10%のCPUを使用します。

(シングルスレッド、シングルCPUシステムでは)プロセスが実行されているか、実行されていないため、少し直感に反しています。つまり、100%または0%を使用しています。表示されるパーセンテージは、時間枠で測定され、実行するプロセスにタイムスロットを割り当てるOSの指標です。

I / Oにアクセスしている場合、プロセスはこれに寄与しないことに注意してください。したがって、巨大な計算をしている場合は、100%を登録します(他に何も実行しないと仮定)。その後、ネットワークパケット/ディスクアクセスなどを待機すると、プロセスがまだ実行されているにもかかわらず、CPUの数値が低下します。


2

非常に低いレベルでは、あなたは基本的に正しいです。特定の瞬間に、プロセッサは特定のプロセスの命令を実行しているか、実行していないかのいずれかです。

しかし、OSはプロセスとプロセッサの間に位置し、それらが時間を共有します。表示される割合は、OSがそのプロセスに許可した最近の処理時間の割合です。


1

平均時間に基づいています。すべてのスレッドは(優先度に基づいて)同じ時間のCPU時間を持つことができますが、スレッドは「ありがとう、私はアイドルです」と言うだけで、次のスレッドに順番を渡すことができます。そのため、プログラムは常に同じ時間を使用しているわけではなく、ほとんどのプログラムはCPUを0%消費しており、CPUを本当に必要とするプログラムは、それ自体でほぼ100%の時間がかかる可能性があります。

なぜ50%に制限されているのですか?おそらく2つのCPUコアがあり、1つだけを使用しています。

または、示唆されているように、ハイパースレッディングを使用していますが、これが正確にどのように動作するのかわかりません。


0

プログラムが大量のI / O(ディスクまたはネットワークの読み取り/書き込み)を実行している可能性があります。これはプログラムをビジー状態に保ちますが、CPU時間をほとんどまたはまったく必要としません。


0

システムの使用率はサンプリングされて平均化されます。

たとえば、プロセス/スレッドが1秒間に実行に費やした時間の記録が保持されます。CPUに1秒を費やした場合、100%のCPU(2つのCPUを使用している場合は50%など)、100ミリ秒を費やした場合は、10%のCPU使用率になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.