15.13.6. 仮想 CPU 数を設定する

デフォルトで、仮想 CPU (vCPU) 数はアクティブなゲストドメイン上でのみ変更できます。アクティブでないゲストドメインの設定を変更するには、--config フラグを使用します。virsh コマンドを使って、ゲスト仮想マシンに割り当てられる CPU の数を変更します。
# virsh setvcpus {domain-name, domain-id or domain-uuid} count [[--config] [--live] | [--current] [--guest] 
以下のパラメーターを virsh setvcpus コマンドに設定することができます。
  • {domain-name, domain-id or domain-uuid} - 仮想マシンを指定します。
  • --count - 設定する仮想 CPU の数を指定します。

    重要

    --count 値は、ゲスト仮想マシンの作成時にゲスト仮想マシンに割り当てられた CPU の数を超えることはできません。
  • --maximum - 次回の起動時に仮想 CPU の上限値を設定します。
  • --config - 設定変更は次回の起動時に有効になります。
  • --live - 設定変更は、稼働中のゲスト仮想マシンで有効になります。
  • --current - 設定変更は、現在のゲスト仮想マシンで有効になります。
  • --guest - 設定変更は、ゲスト仮想マシンの CPU の状態を変更します。--guest で行なわれた設定は、ゲストの再起動時にリセットされます。

注記

multi-queue, を使用して vCPU のパフォーマンスを強化する方法についての詳細は、『Red Hat Enterprise Linux 仮想化のチューニングと最適化ガイド』を参照してください。

例15.4 vCPU のホットプラグとホットアンプラグ

vCPU をホットプラグするには、以下のコマンドを実行します。
virsh setvcpus guestVM1 2 --live
上記の例では、--live フラグが示すように guestVM1 の実行中に guestVM1 の vCPU 数は 2 つ増加します。
同様に、同じ稼働中のゲストから 1 つの vCPU をホットアンプラグするには、以下を実行します。
virsh setvcpus guestVM1 1 --live
値は、ホスト、ハイパーバイザー、またはゲストドメインの元の記述による制限によって制限される可能性があります。Xen の場合、ドメインが準仮想化されている場合は稼働中のドメインの仮想 CPU のみを調整できます。
--config フラグが指定されている場合、変更はゲスト仮想マシンの保存された XML 設定に対して行なわれ、ゲストドメインの次回起動時にのみ有効になります。
--live が指定されている場合、ゲスト仮想マシンのドメインはアクティブであるはずであり、変更はただちに有効になります。このフラグにより、vCPU のホットプラグが可能になります。--config フラグと --live フラグの両方は、ハイパーバイザーにサポートされている場合、一緒に指定することができます。
--current が指定されている場合、フラグは、現在のアクティブなゲスト仮想マシンの状態に影響を与えます。フラグが指定されていない場合、--live フラグがデフォルトで使用されます。アクティブなゲスト仮想マシンがない場合にフラグなしでこのコマンドを実行すると、失敗します。場合によっては、ハイパーバイザーは --config の使用も想定します。さらにハイパーバイザーは、変更を永続的にするために XML 設定を調整するかどうかを決定します。
--maximum フラグは、ドメインの次回起動時にホットプラグできる仮想 CPU の最大数を制御できます。そのため、このフラグは --config フラグとのみ使用する必要があり、--live フラグと一緒に使用することはできません。