在 vagrantfile 上设置 virtualbox 的 1/4 内存
Setting up 1/4 of memory of virtualbox on vagrantfile
我是 vagrant 的新手,我正在尝试将我的机器设置为系统内存的 1/4,如下所示:
config.vm.define "UbuntuServer2" do |server2|
server2.vm.box = "ubuntu/trusty64"
server2.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
vb.customize ["modifyvm", :id, "--memory", 'echo -n $($(awk '/MemTotal/' {print } /proc/meminfo / 1024 / 4))']
end
end
但是我收到了这个错误:
小路:
行号:38
消息:NameError:未初始化的常量 MemTotal
如何初始化这个变量?
我正在使用 MacOs 10.11.5
提前致谢。
如果您的主机 OS 是 mac
,这就是我在这种情况下使用的方法
config.vm.define "UbuntuServer2" do |server2|
server2.vm.box = "ubuntu/trusty64"
server2.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
vb.customize ["modifyvm", :id, "--memory", mem]
end
end
我得到了一个更完整的脚本,如果需要可以帮助任何人
config.vm.provider "virtualbox" do |v|
host = RbConfig::CONFIG['host_os']
# Give VM 1/4 system memory & access to all cpu cores on the host
if host =~ /darwin/
cpus = `sysctl -n hw.ncpu`.to_i
# sysctl returns Bytes and we need to convert to MB
mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
elsif host =~ /linux/
cpus = `nproc`.to_i
# meminfo shows KB and we need to convert to MB
mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4
else
cpus = `wmic cpu get NumberOfCores`.split("\n")[2].to_i
mem = `wmic OS get TotalVisibleMemorySize`.split("\n")[2].to_i / 1024 /4
end
v.customize ["modifyvm", :id, "--memory", mem]
v.customize ["modifyvm", :id, "--cpus", cpus]
end
我是 vagrant 的新手,我正在尝试将我的机器设置为系统内存的 1/4,如下所示:
config.vm.define "UbuntuServer2" do |server2|
server2.vm.box = "ubuntu/trusty64"
server2.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
vb.customize ["modifyvm", :id, "--memory", 'echo -n $($(awk '/MemTotal/' {print } /proc/meminfo / 1024 / 4))']
end
end
但是我收到了这个错误: 小路: 行号:38 消息:NameError:未初始化的常量 MemTotal
如何初始化这个变量? 我正在使用 MacOs 10.11.5 提前致谢。
如果您的主机 OS 是 mac
,这就是我在这种情况下使用的方法config.vm.define "UbuntuServer2" do |server2|
server2.vm.box = "ubuntu/trusty64"
server2.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
vb.customize ["modifyvm", :id, "--memory", mem]
end
end
我得到了一个更完整的脚本,如果需要可以帮助任何人
config.vm.provider "virtualbox" do |v|
host = RbConfig::CONFIG['host_os']
# Give VM 1/4 system memory & access to all cpu cores on the host
if host =~ /darwin/
cpus = `sysctl -n hw.ncpu`.to_i
# sysctl returns Bytes and we need to convert to MB
mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
elsif host =~ /linux/
cpus = `nproc`.to_i
# meminfo shows KB and we need to convert to MB
mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4
else
cpus = `wmic cpu get NumberOfCores`.split("\n")[2].to_i
mem = `wmic OS get TotalVisibleMemorySize`.split("\n")[2].to_i / 1024 /4
end
v.customize ["modifyvm", :id, "--memory", mem]
v.customize ["modifyvm", :id, "--cpus", cpus]
end