Setting “Paravirtualization Interface” in Vagrantfile

前端 未结 2 459
傲寒
傲寒 2021-02-06 07:07

VirtualBox 5 exposes a setting called \"Paravirtualization Interface\" that can improve performance for some specific guest operating systems.

Is there a way to set this

相关标签:
2条回答
  • 2021-02-06 07:25

    Found it. VBoxManage (the VirtualBox CLI tool) has an optional argument called --paravirtprovider. You can add that to the vb.customize call:

    Vagrant.configure(2) do |config|
      config.vm.box = "ubuntu/trusty64"
      config.vm.provider "virtualbox" do |vb|
        vb.customize [
          "modifyvm", :id,
          "--memory", "1024",
          "--paravirtprovider", "kvm", # for linux guest
          "--cpus", "2"
        ]
      end
    end
    

    The other CPU settings are also available that way, vb.customize accepts the same argument as VBoxManage. Refer to VboxManage --help to get a list of all the options.

    0 讨论(0)
  • 2021-02-06 07:26

    My Vagrantfile did not have a vb.customize section (maybe the accepted answer uses older format (?)). Based on https://www.vagrantup.com/docs/virtualbox/configuration.html and https://www.virtualbox.org/manual/ch08.html (search for --nictype) the following worked for me. I did not need to set KVM explicitely, because I was on Linux and it was the default.

    Vagrant.configure("2") do |config|
    
        config.vm.box = "ubuntu/bionic64"
        config.vm.hostname = "whatever"
    
        config.vm.provider "virtualbox" do |vb|
            vb.memory = "512"
            vb.cpus = "2"
            vb.default_nic_type = "virtio"
        end
    end
    

    By setting this default_nic_type to virtio, not only the first NAT-ed NIC got this type, but also I defined a second NIC (not shown here) and it also got created as virtio (virtio-net in virtualbox settings GUI).

    0 讨论(0)
提交回复
热议问题