CPUのホットプラグ

VirtualBoxはCPUのホットプラグ(CPU hot-plugging)をサポートしています。

CPUのホットプラグ(hotplug)というのは、仮想マシンが稼働している状態で割り当てているCPUを増やしたり(ホットアド)、CPUを減らしたり(ホットリムーブ)することができる機能です。

この機能があれば、普段は1CPUで仮想マシンを稼働させておいて、処理が重い作業をするときだけ(仮想マシンを稼働させたまま)2CPUで動かすといったことが可能になります。

ただし、この機能を使うにはゲストOSがCPUのホットプラグをサポートしている事と、ホストマシンが複数のCPU(コア)を持っている必要があります。
WindowsだとWindows Server 2008 x64 Data Center Edition、Linuxでは最近のカーネルはホットプラグ(hotplug)をサポートしています。
また、Windowsではホットアド(hot-add)のみ可能で、Linuxはホットアド(hot-add)とホットリムーブ(hot-remove)ですが8CPUかつ64bitゲストである必要があります。

ちょっと敷居が高いですが、とりあえず解説します。

CPU hot-pluggingの有効化

まずは対象の仮想マシンに対してCPU hot-plugging機能の有効化を行います。

> VBoxManage modifyvm "VM name" --cpuhotplug on

 次に仮想マシンに割り当てることのできる最大のCPU数を設定します。

> VBoxManage modifyvm "VM name" --cpus 8

CPUのホットアド(hot-add)

 ホットアド(hot-add)はcontrolvmコマンドで行います。

> VBoxManage controlvm "VM name" --plugcpu 3

ちなみに仮想マシンが停止状態の時はmodifyvmコマンドでCPUの数を増やします。

> VBoxManage modifyvm "VM name" --plugcpu 3

CPUのホットリムーブ(hot-remove)

ホットリムーブ(hot-remove)もcontrolvmコマンドで行います。

> VBoxManage controlvm "VM name" --unplugcpu 3

こちらも仮想マシンが停止状態の時はmodifyvmコマンドでCPUの数を減らします。

> VBoxManage modifyvm "VM name" --unplugcpu 3

もちろん --unplugcpu 0 としてCPUを0にすることができません。