透明大页内存技术

透明大页面(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

可以看到输出类似:

  • 大页面将以 2MB 为增量进行设置。将大页面的数量设置到 25,000,请运行以下命令:

如果要进行永久设置,则使用以下命令将

可以在 /etc/sysctl.d/ 目录下创建一个 nr_hugepages.conf 配置文件:

然后执行 sysctl -p刷新使之生效。

  • 挂载大页面:

  • 重启libvirtd之后,再运行以下命令启动虚拟机

  • 验证 /proc/meminfo 中对修改:

参考

Last updated

Was this helpful?