Vagrant + VirtualBox の環境で VM に CPU コアを2つ割り当てる設定を Vagrantfile に書こうとした。
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048", "--cpus", "2"]
end
一見よさそうだが、これで起動すると VM の動作が めちゃ遅い!
このとき、VirtualBox の設定を見るとシステムの欄に 「無効な設定が見つかりました」 という警告が出ている。
どうやら、警告文によるとコアを複数割り当てる場合には I/O APIC を有効化 というチェックボックスを ON にする必要があるようだ。
これを Vagrantfile の記述によって設定するには上のスクリプトにさらに
"--ioapic", "on"
という項を追加すれば OK:
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048", "--cpus", "2", "--ioapic", "on"]
end
これで再度 vagrant up すればチェックボックスが ON になっていることを確認できる。動作が遅い現象も解消されている。
参考:
・http://stackoverflow.com/questions/17117063/how-can-i-create-a-vm-in-vagrant-with-virtualbox-with-two-cpus
・http://www.lefred.be/node/164