配置HugePage
翻译自https://www.thegeekdiary.com/centos-rhel-67-how-to-configure-hugepages/
什么是HugePage
HugePages是Linux内核与2.6版本集成的一个特性。这个特性基本上提供了4K页面大小(IA64为16K)的替代方案,提供更大的页面。HugePages是一种拥有更大页面的方法,它对于处理非常大的内存非常有用。
使用内核可调vm.nr_hugepages配置hugepages
1. 编辑/etc/sysctl.conf文件,并在nr_hugepages参数中指定hugepages的数量。该条目使参数在重新引导时保持不变,但在运行下一步中描述的' sysctl -p '命令之前不会生效。
# vi /etc/sysctl.conf vm.nr_hugepages = 10
2. 执行' sysctl -p '命令以启用hugepages参数。
# sysctl -p ... vm.nr_hugepages = 10
注意:建议在配置hugepages之后重新启动系统,因为当系统启动时,拥有连续内存的空间(用于hugepages分配)的机会要大得多。
验证
要验证hugepages参数设置,可以对下面给出的两个方法使用任意一个:
1. 检查文件/proc/meminfo:
# cat /proc/meminfo | grep Huge HugePages_Total: 10 HugePages_Free: 10 HugePages_Rsvd: 0 Hugepagesize: 2048 kB
解释:
HugePages_Total——大页面池的大小。
HugePages_Free -池中未使用的巨大页面的数量。
HugePages_Rsvd -承诺从池中分配但尚未分配的巨大页面数量。
HugePages_Surp -是“盈余”的缩写,是池中超过/proc/sys/vm/nr_hugepages值的巨大页面数。最大剩余的巨大页面数量由/proc/sys/vm/nr_overcommit_hugepages控制。
2. 使用sysctl命令:
# sysctl a | grep nr_hugepages vm.nr_hugepages = 10
如何计算hugepage?
可采用以下方法计算。使用下面公式中“cat /proc/meminfo”的outpur值。
HugePages_Total - HugePages_Free = HugePages_Used