この質問に関連する:Perfmon の「% Processor Time」カウンターが 100% を超えるのはなぜですか?
タスク マネージャーでプロセスを手動で監視していたところ、ユーザーから問題が報告され、Oracle プロセスが一定期間 (5 ~ 15 分) にわたって 80% ~ 95% を使用していることがわかりました。
そのため、私は過去数日間、そのプロセスを追跡するために perfmon を使用してきましたが、短期間で 100% を超えることに気付きました。つまり、perfmon では、すべてのプロセッサの合計であるようです。
私の質問は、タスク マネージャーで表示されていた 80 ~ 95% は、実際にはパフォーマンス モニターの 160 ~ 180% に相当していたのではないかということです。
(もちろん、一部のプロセスではすべてのプロセッサを効率的に使用できない場合があることを考慮に入れます)。
タスク マネージャーでは、CPU 使用率が 80 ~ 95% と表示されていました。
パフォーマンス モニターは、単一のプロセス オブジェクトのライン上で 100% を超える急上昇を起こすことがあります。
答え1
マルチプロセッサ システムでは、システム モニタによって報告される Processor\% Processor Time の値は、特定のプロセッサまたはスレッドに対して 100 パーセントを超えることはありません。
一方、プロセス オブジェクトについて報告される % プロセッサ時間の値は 100 パーセントを超える値を報告する場合があります。このような値が発生した場合、プロセスのスレッドが累積的に 100 パーセントを超えるプロセッサを使用していることを示している可能性があります。
基本的に、プロセス (複数の実行パスを持つ) を調べると、複数のコアが同時にコードを実行している場合は 100% を超えることがわかります。プロセスには複数のコアが用意されており、そのうちのいくつかで実行することを選択できます。
一方、CPU スレッドを調べると、実際に測定されているリソースが 100% を超える値が表示されることはありません。CPU スレッドは、Microsoft の用語で CPU コアを意味します。HT 対応コアには 2 つのスレッドがあります。