3
LinuxのハイパースレッディングでのCPU負荷測定
マルチコアハイパースレッディング対応のCPUの実際の使用方法を取得するにはどうすればよいですか? たとえば、4つの仮想コアを表す2コアCPUについて考えてみましょう。 top仮想コアの1つのコアが完全に使用されるため、シングルスレッドのワークロードはで100%と表示されます。top4つの実際のコアがあるように、CPUと期待どおりに動作します。 ただし、2つのスレッドでは問題が発生します。すべてが正常に機能する場合、2つの実際のコアとバランスが取れているため、200%の使用率が得られます。 。私には大丈夫だと思います。 ただし、2つのスレッドが単一の実際のコアで実行される場合、100%を2回使用するように表示され、仮想コアの使用率は200%になります。しかし、実際には、1つのコアが2つのスレッドでパワーを共有し、合計CPUパワーの半分しか使用していません。 したがって、で示される使用数topは、CPUのワークロードの合計を測定するために使用することはできません。 また、ハイパースレッディングが実際のコアで2つの仮想マシンをどのようにバランスさせるかについても疑問に思います。2つのスレッドが異なるサイクル数をとる場合、実際の負荷が異なっていても仮想コアが両方とも100%の負荷を示すように「適応」しますか?