Centos 7 kvm 宿主机内存超售
因为宿主机运行了很多kvm虚拟机,导致内存超售无法启动,报错如下
error: internal error: process exited while connecting to monitor: qemu-system-x86_64: cannot set up guest memory ‘pc.ram’: Cannot allocate memory
显示内存不足,无法分配内存,查看物理机内存使用正常,.xml修改虚机内存后启动依然报错
解决办法,调整宿主机内核参数
内核参数overcommit_memory
可选值:0、1、2
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允> 许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
解决方法,修改内存参数
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
sysctl -p
sysctl vm.overcommit_memory=1
echo 1 > /proc/sys/vm/overcommit_memory