irtualBoxは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にすることができません。