負荷の高い ESX サーバーがゲスト VM の CPU スパイクを引き起こす可能性はありますか?

負荷の高い ESX サーバーがゲスト VM の CPU スパイクを引き起こす可能性はありますか?

そのため、製品テスト用に ESX 4.1 サーバー上で多数の VM を実行しています。ESX サーバーは時々高負荷になります。一部のユースケースでは CPU レベルが高くなることがありますが、常にこれを再現できるわけではありません。ESX サーバー全体に高負荷がかかると、ゲスト マシンの CPU 使用率が高くなりますか?

別の言い方をすると、ゲスト マシンがサーバーよりも多くの CPU リソースを必要とする場合、OS とプロセスによって示される CPU 使用率にどのような影響がありますか?

答え1

ESXのパフォーマンスに関するヒントの標準的な情報源の1つは、パフォーマンス トラブルシューティング ガイド! (PDF)

簡単に言うと、ホストがビジーで、VM が「準備時間」が高いことを報告している場合 (これは、VM が作業を実行する準備ができているが、ハイパーバイザーによってスケジュールされるマシンの物理 CPU が見つからない場合のカウンターです)、発生している症状は、ゲスト内の CPU 使用率が高いことではなく、個々の VM がワークロードを処理するのに十分な物理 CPU 時間を取得していないことです。これは、ゲスト内で CPU 使用率が高いように見えることがありますが、これはゲストが仮想化自体を認識していないために犯している計算ミスにすぎません。

したがって、準備時間をチェックし、実際に長い場合は、マシン/クラスターに物理 CPU を追加するか、使用量を減らす方法を見つけます。

ゲスト内の CPU 監視は、マシンがアイドル状態のときとビジー状態のときにずれが生じる可能性があります。1 つのシナリオでは、アイドル プロセスはハイパーバイザーによってスケジュールされません。もう 1 つのシナリオでは、多くのマシンによる使用率が高いため、一部のマシンで CPU が不足するため、ハイパーバイザー レベルの監視を追加せずにゲスト レベルの監視を使用しないでください。

答え2

ゲスト内の CPU 監視は悪い考えです。どのハイパーバイザーでも、どのゲストも CPU 時間がどれくらいかかっているかを実際に知ることは本質的にほぼ不可能です。知る唯一の方法は、ハイパーバイザーを介して外部を見ることです。したがって、非常に忙しいハイパーバイザーは、ゲスト内の CPU 使用率の統計を簡単に大幅に外す可能性があります。とにかく、これらの数字を信頼しないでください。

関連情報