VMを作成するときにすべてのCPUコアをVMに渡したくないのはなぜですか?

VMを作成するときにすべてのCPUコアをVMに渡したくないのはなぜですか?

(私はxcp-ng / xenをハイパーバイザーとして使用していますが、qemu / kvmとvirtualboxを使用してから一般的な質問です。これについても知りたいです。)VMを作成するたびに、できるだけ多くのコアを提供するオプションがあります。可能な限り、システムにいくつかのCPUコアがある場合でも、必要に応じてすべてのVMにすべてのCPUコアを提供できます。これは、VMがそれを共有するという意味のようです。

それから私の心に質問が浮かびました。理由がありますか?いいえホストシステムが単にハイパーバイザーのミッションを実行し、すべての仮想マシンにすべてのコアを提供する場合はどうなりますか?

ベストアンサー1

これは、仮想マシンが無視できないロード状態にあるときに発生するコンテキスト遷移の量が増加するためです。コンテキスト遷移は、ハイパーバイザーで実行すると、はるかにコストがかかります。以下は最近のものです。仮想化オーバーヘッド性能測定そうでした。

各仮想マシンを少数のCPUコアに制限すると、他の利点もあります。たとえば、仮想マシンの1つに障害が発生しても、マシンの他のすべてが中断できないことを意味します。 CPUを共有するVMには潜在的なセキュリティ上の問題もありますが、実行中のすべてのVM(スペクター/メルトダウン攻撃など)を信頼するため、問題になりません。

おすすめ記事