透明大页内存技术
透明大页面(THP,transparent huge page)将为性能自动优化系统设置。通过允许所有的空余内存被用作缓存以提高性能。
一旦 /sys/kernel/mm/transparent_hugepage/enabled 被设置为 always ,透明大页面将被默认使用。运行以下命令禁用透明大页面:
echo never > /sys/kernel/mm/transparent_hugepage/enabled透明大页面支持不能阻止 hugetlbfs 的使用。但在 hugetlbfs 未使用时,KVM 将使用透明大页面来替代常规的 4KB 页面大小。
静态大页面配置
在某些情况下,更优的选择是增加对大页面的控制。在客机中使用静态大页面,使用 virsh edit 向客机 XML 配置添加以下命令:
<memoryBacking>
        <hugepages/>
</memoryBacking>以上命令使主机使用大页面向客机分配内存,以替代使用默认的页面大小。
- 查看当前的大页面值,请运行以下命令 
cat /proc/sys/vm/nr_hugepages例如,输出:
118784这里输出的当前大页值就是
/proc/meminfo中的HugePages_Totaol
- 查看当前的大页面值: 
cat /proc/meminfo | grep Huge可以看到输出类似:
AnonHugePages:    526336 kB
HugePages_Total:   118784
HugePages_Free:    16126
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB- 大页面将以 2MB 为增量进行设置。将大页面的数量设置到 25,000,请运行以下命令: 
echo 25000 > /proc/sys/vm/nr_hugepages如果要进行永久设置,则使用以下命令将
sysctl -w vm.nr_hugepages=N可以在 /etc/sysctl.d/ 目录下创建一个 nr_hugepages.conf 配置文件:
vm.nr_hugepages=25000然后执行 sysctl -p刷新使之生效。
- 挂载大页面: 
mount -t hugetlbfs hugetlbfs /dev/hugepages- 重启 - libvirtd之后,再运行以下命令启动虚拟机
# systemctl start libvirtd
# virsh start 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参考
Last updated
Was this helpful?