tencent cloud

文档反馈

M6p 实例配置持久内存

最后更新时间:2022-03-23 11:29:09

    操作场景

    本文介绍如何在 M6p 实例上配置持久内存。

    实例配置

    本文使用了以下配置的云服务器实例,获取的相关信息请以实际情况为准:

    • 实例规格:内存型 M6p 实例 M6p.LARGE16(4核16GB)。其他规格配置请参见 内存型 M6p
    • 操作系统: TencentOS Server 3.1(TK4)。
      说明

      建议您的实例使用以下操作系统:

      • TencentOS Server 3.1
      • CentOS 7.6及更高版本
      • Ubuntu 18.10及更高版本

    前提条件

    已创建并登录 M6p 实例

    英特尔® 傲腾™ DC BPS 硬件(PMEM)模式介绍

    Memory 模式

    在 Memory 模式下,常规 DRAM 充当最常访问数据的缓存,而持久内存作为后备内存使用,高速缓存管理操作由内存控制器自动处理。

    AD 模式

    M6p 机型采用该模式,在 M6p 机型中,平台侧将 BPS 硬件配置为 AD 模式透传给云服务器使用。在 AD 模式下,应用程序可以把 PMEM 设备作为内存使用,或作为本地 SSD 盘使用。

    操作步骤

    PMEM 初始化

    首次使用实例时请依次执行以下命令,对 PMEM 设备初始化。若您已执行过 PMEM 初始化,则请跳过该步骤。

    yum install -y ndctl
    
    ndctl destroy-namespace all --force
    
    说明

    最大规格实例具有两个 region,执行以下命令后,请将 region0 替换为 region1 并再次执行命令。

    ndctl disable-region region0
    
    ndctl init-labels all
    
    ndctl enable-region region0
    

    在 AD 模式下配置 PMEM

    您可按照实际需求,将持久内存作为内存或本地 SSD 盘使用:

    PMEM 可作为字符设备提供给上层应用(例如 redis)进行持久内存的分配,可借助 memkind 等 PMDK 框架来使用。其配置方法如下:

    1. 执行以下命令,生成字符设备。
      ndctl create-namespace -r region0 -m devdax
      

      返回结果如下图所示,表示已生成 dax0.0 字符设备。

      最大规格实例具有两个 region,若您使用最大规格实例,请同时执行以下命令。
      ndctl create-namespace -r region1 -m devdax -f
      

      配置完成后,/dev 目录下已生成 dax0.0 字符设备,可映射持久化内存。
    2. 执行以下命令,查看持久内存大小。
      ndctl list -R
      

      返回结果如下图所示:

    扩展功能(可选)

    您可通过该步骤进行功能扩展,依次执行以下命令,使用 PMEM 扩充云服务器的内存。

    1. 在高版本的内核(5.1 以上且使用了 KMEM DAX 的驱动,如 TencentOS Server 3.1 的内核)支持下,可将 devdax 模式的 PMEM 进一步配置为 kmemdax,可使用 PMEM 扩充云服务器的内存。
      yum install -y daxctl
      

      daxctl migrate-device-model
      

      reboot
      

      daxctl reconfigure-device --mode=system-ram --no-online dax0.0
      

      返回结果如下图所示:
    2. 执行以下命令,查看系统内存扩充的情况。
      numactl -H
      

      返回结果如下图所示:

    参考资料

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持