首页 > 代码库 > KVM虚拟机内存超配后-虚拟机内存减半现象分析及解决

KVM虚拟机内存超配后-虚拟机内存减半现象分析及解决

现象:

cloudstack4.3,4.4版本,使用kvm虚拟机时,如果配置了内存超用,会发现创建的虚拟机内存为计算方案的一半。


分析:

配置完超配系数为2以后,创建虚拟机,打开虚拟机(计算方案为2C/2G)的xml配置文件如下:

  <name>i-2-32-VM</name>
  <uuid>eb1a307f-ff54-4f40-aa88-d6071535cd92</uuid>
  <description>CentOS 5.5 (64-bit)</description>
  <memory unit=‘KiB‘>2097152</memory>
  <currentMemory unit=‘KiB‘>1048576</currentMemory>


可以看到,虚拟机中实际显示的为currentMemory(minRam),即为当前内存为1G。

但memory unit实际为最大使用内存(maxRam)。


可以看到,2G实际被定义为虚拟机的maxRam,但实际分配为minRam,即看到的减半现象。


解决:

1.编辑agent配置文件,添加参数“vm.memballoon.disable=true

[root@SJCloudKVM-5 agent]# cat /etc/cloudstack/agent/agent.properties | grep memballoon 
vm.memballoon.disable=true

2.重启libvirtd和cloudstack-agent服务。

3.关闭,并重新启动虚拟机。


关于vm.memballoon.disable=true的解释:

# vm.memballoon.disable=true
# Disable memory ballooning on vm guests for overcommit, by default overcommit  feature enables balloon and sets currentMemory to a minimum value.


本文出自 “systems” 博客,请务必保留此出处http://systems.blog.51cto.com/2500547/1591576

KVM虚拟机内存超配后-虚拟机内存减半现象分析及解决