Centos7 kvm宿主机内存超售

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7是一种流行的Linux操作系统,而KVM(Kernel-based Virtual Machine)是一种基于Linux内核的虚拟化技术。在CentOS 7上安装KVM可以实现虚拟化环境的搭建。以下是CentOS 7上安装KVM的步骤: 1. 确认硬件支持:首先,确保你的CPU支持虚拟化技术,并且已经在BIOS中启用了相关选项。可以通过执行以下命令来检查CPU是否支持虚拟化: ``` egrep -c '(vmx|svm)' /proc/cpuinfo ``` 如果返回的结果大于0,则表示你的CPU支持虚拟化。 2. 安装KVM软件包:在CentOS 7上安装KVM需要安装一些软件包。可以使用以下命令来安装这些软件包: ``` sudo yum install qemu-kvm libvirt virt-install bridge-utils ``` 3. 启动libvirtd服务:KVM依赖于libvirtd服务,需要确保该服务已经启动并设置为开机自启动。可以使用以下命令来启动和设置开机自启动: ``` sudo systemctl start libvirtd sudo systemctl enable libvirtd ``` 4. 配置网络桥接:为了使虚拟机能够与外部网络通信,需要配置网络桥接。可以编辑`/etc/sysconfig/network-scripts/ifcfg-<网卡名称>`文件,将其配置为桥接模式。例如,如果你的网卡名称是`eth0`,则可以编辑`/etc/sysconfig/network-scripts/ifcfg-eth0`文件,将其配置为桥接模式。 5. 创建虚拟机:现在可以使用`virt-install`命令来创建虚拟机。该命令提供了许多选项,可以根据需要进行配置。以下是一个示例命令: ``` sudo virt-install --name myvm --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/myvm.qcow2,size=20 --os-type linux --os-variant centos7 --network bridge=br0 --graphics none --console pty,target_type=serial ``` 这个命令将创建一个名为`myvm`的虚拟机,分配了2GB的内存和2个虚拟CPU,使用了一个大小为20GB的磁盘镜像,并且使用了之前配置的网络桥接。 以上是在CentOS 7上安装KVM的基本步骤。你可以根据自己的需求进行进一步的配置和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值