当给 KVM 虚拟机设置 hugepage 时,需要在虚拟机的配置文件里加上下面一段:
<memoryBacking> <hugepages/>
</memoryBacking>
但是,加上这么一段之后,再次启动虚拟机,可能起不来,service libvirtd restart 可能会得到如标题的错误。
这个问题的原因可能是:
1. host 没有设置足够多的 hugepage
2. guest 设置的内存大小超出了 host 的 hugepage
解决办法:
1. 检查 host hugepage 设置
cat /proc/meminfo |grep -i huge
Hugepagesize * HugePages_Free 就是 guest 可以分配的内存。
2. 检查 guest 内存配置
用下面的命令查看虚拟机的配置,<kvm> 是虚拟机的名字
virsh edit <kvm>
如下,memory 是 16G,那么 host 的 hugepage 必须设置大于16G,否则就会出现标题的错误。
<memory unit='KiB'>16777216</memory>
<currentMemory unit='KiB'>16777216</currentMemory>
<memoryBacking>
<hugepages/>
</memoryBacking>
所有评论(0)