1)预留大页
echo 256 > /sys/kernel/mm/hugepages/hugepages-<SIZE>kB/nr_hugepages
2)确认大页已预留成功
$ cat /proc/meminfo | grep Huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
HugePages_Total: 231
HugePages_Free: 103
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 65536 kB
Hugetlb: 15138816 kB
3)修改虚拟机配置文件
$ virsh edit <guestname>
在虚拟机的 xml 配置文件中添加以下内容:
<memoryBacking>
<hugepages/>
</memoryBacking>
4)确认 qemu-kvm 进程的运行进程中包含 -mem-path 参数
$ ps -ef | grep qemu
root 4182 1 1 17:35 ? 00:00:42 /usr/libexec/qemu-kvm -S -M rhel5.4.0 -m 1024 -mem-prealloc
-mem-path /hugepages/libvirt/qemu -smp 1 -name vm1 -uuid 3f1f3a98-89f8-19ac-b5b5-bf496e2ed9be -no-kvm-pit-reinjection
-monitor pty -pidfile /var/run/libvirt/qemu//vm1.pid -boot c -drive file=/vmimages/vm1,if=ide,index=0,boot=on,cache=none
-drive file=,if=ide,media=cdrom,index=2 -net nic,macaddr=54:52:00:00:00:01,vlan=0 -net tap,fd=15,script=,vlan=0,ifname=vnet0
-serial pty -parallel none -usb -vnc 127.0.0.1:0 -k en-us
参考资料:
1. https://help.ubuntu.com/community/KVM%20-%20Using%20Hugepages
2. https://access.redhat.com/solutions/36741