ITPub博客

首页 > 数据库 > 数据库开发技术 > 46 最佳实践-性能最佳实践-内存大页

46 最佳实践-性能最佳实践-内存大页

原创 数据库开发技术 作者:shuchaoyang 时间:2023-04-01 08:00:00 0 删除 编辑

46 最佳实践-性能最佳实践-内存大页46.1 概述46.2 操作指导

46 最佳实践-性能最佳实践-内存大页

46.1 概述

相比传统的4K内存分页,openEuler也支持2MB/1GB的大内存分页。内存大页可以有效减少TLB miss,显著提升内存访问密集型业务的性能。openEuler使用两种技术来实现内存大页。

  • 静态大页

    静态大页要求宿主机操作系统在加载前提前预留一个静态大页池,虚拟机创建时通过修改xml配置文件的方式,指定虚拟机的内存从静态大页池中分配。静态大页能保证虚拟机的所有内存在host上始终以大页形式存在,保证物理连续,但增加了部署的困难,修改静态大页池的页面大小后需要重启host才能生效。静态大页的页面大小支持2M或1G。

  • 透明大页

    如果开启透明大页模式THP(Transparent Huge Pages),虚拟机分配内存时自动选择可用的2M连续页,同时自动完成大页的拆分合并,当没有可用的2M连续页时,它会选择可用的64K(AArch64架构)或4K(x86_64架构)页面进行分配。透明大页的好处是不需要用户感知,同时能尽量使用2M大页以提升内存访问性能。

在虚拟机完全使用静态大页的场景下,可以通过关闭透明大页的方法,减少宿主机操作系统的开销,以便虚拟机获得更稳定的性能。

46.2 操作指导

  • 使用静态大页

    在创建虚拟机之前通过修改XML的方式,为虚拟机配置使用静态大页。

      <memoryBacking>
       <hugepages>
         <page size='1' unit='GiB'/>
       </hugepages>
     </memoryBacking>

    以上XML片段表示为虚拟机配置1G静态大页。

      <memoryBacking>
      <hugepages>
        <page size='2' unit='MiB'/>
      </hugepages>
    </memoryBacking>

    以上XML片段表示为虚拟机配置2M静态大页。

  • 使用透明大页

    通过sysfs可以动态开启使用透明大页:

    # echo always > /sys/kernel/mm/transparent_hugepage/enabled

    动态关闭使用透明大页:

    # echo never > /sys/kernel/mm/transparent_hugepage/enabled


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!


有什么吐槽或反馈意见,直接告诉我!

温馨提示:如出现二维码失效也可直接添加微信号:ysc13803862469。



原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303582