web-dev-qa-db-ja.com

KVM CPU割り当て数は物理ホストのCPU数と異なる可能性がありますか?

this の質問を読みました。たとえば、4つのゲストがそれぞれ2つのvCPUを搭載したクアッドコアマシンを使用できることはすでに知っていました。すべてが常に100%のCPU使用率を必要とするわけではないので、スケジューラーがこれを処理してくれます。

私の質問は、これがフェイルオーバーまたは移行の状況にどのように関連するかについてです。

Host1に2つのデュアルコアCPUがあり、guest1に4つのvCPUを割り当てた場合(つまり、4つの物理コアすべてにアクセスした場合)、デュアルコアが1つしかないHost2に移行しようとするとどうなりますか-コアCPU?

Qemu-kvmは物理的な数よりも多くのvCPUをエミュレートできますか?または、仮想マシンをシャットダウンし、CPU割り当てを変更して移行してから、再起動する必要がありますか(ライブ移行は不要)?

どうもありがとう。

1
jwbensley

はい、利用可能な物理コアよりも多くの仮想CPUを構成して実行できます。これはアイドル状態のWindowsServer 2008(x86、ドイツ語)KVMゲストで、4コアのシングルCPU IntelX3210マシンで10個のCPUを示しています。

Task manager showing 10 CPUs

しかし、あなたがしていることを知っているときだけそうすべきです:

1つは、これには、負荷を実行するための追加の実行ユニットがないという利点なしに、より多くの仮想CPUのタイミング/同期のオーバーヘッドが伴うことです。さらに重要なオーバーヘッドは、即時実行がスケジュールされているスレッドの数が使用可能な物理CPUの数よりも多い場合は常に、ホストが必要以上に頻繁にコンテキストスイッチを実行する必要があることです。ゲストOSのスレッドスケジューラはハイパーバイザーのスケジューラに対して機能し、パフォーマンスが大幅に低下します。

したがって、VMをpCPUの数が少ないホストに移行した場合は、使用可能なpCPUの数と一致するようにいくつかのvCPUをオフラインにする必要があります。少なくともLinuxでは /sys/devices/system/cpu/cpu<X>/online を切り替えて再起動せずに実行します。

実行中のシステム上のCPUの数を減らすための別の理論的アプローチには、CPUホットプラグの使用が含まれますが、この機能のOSサポートはかなりまばらであり、KVMは、のオンライン再構成を許可しません。 CPUの数も同様です。

2
the-wabbit

移行が発生した場合、またはvcpuの割り当てが不足している場合はどうなるか、最後のコメントを確認してください。 KVMおよび仮想CPUから物理CPUへのマッピング 説明します

0
Hafiz ur Rahman