8.2.3.2. 配置静态大页
在某些情况下,最好对巨页进行更大的控制。 要在客户机上使用静态巨页,请使用 virsh edit 将以下内容添加到 guest XML 配置中:
<memoryBacking>
<hugepages/>
</memoryBacking>
这指示主机使用大页面将内存分配到虚拟客户机,而不使用默认的页面大小。
运行以下命令来查看当前的巨页值:
cat /proc/sys/vm/nr_hugepages
过程 8.1. 设置巨页
以下示例步骤显示了用于设置巨页的命令。
- 查看当前的巨页值:
# cat /proc/meminfo | grep Huge AnonHugePages: 2048 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB - 巨页的增量为 2MB。要将巨页数量设置为 25000,请使用以下命令:
echo 25000 > /proc/sys/vm/nr_hugepages注意要使设置持久,请在客户端机器上的/etc/sysctl.conf文件中添加以下行,X 是预期的巨页数:# echo 'vm.nr_hugepages = X' >> /etc/sysctl.conf # sysctl -p之后,通过将transparent_hugepage=never添加到客户端/etc/grub2.cfg文件中的/kernel行的末尾,为内核引导参数添加 transparent_hugepage=never。 - 挂载巨页:
# mount -t hugetlbfs hugetlbfs /dev/hugepages - 将以下几行添加到虚拟机 XML 配置的 memoryBacking 部分:
<hugepages> <page size='1' unit='GiB'/> </hugepages> - 重启 libvirtd :
# systemctl restart libvirtd - 启动虚拟机:
# virsh start virtual_machine - 如果虚拟机已在运行,重启它:
# virsh reset virtual_machine
- 验证
/proc/meminfo中的更改:# cat /proc/meminfo | grep Huge AnonHugePages: 0 kB HugePages_Total: 25000 HugePages_Free: 23425 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB
巨页不仅可能有益于主机,而且客户机总数必须小于主机中的可用值。