操作指南

最佳实践

故障处理

API 文档

有奖征文|投稿上云技术实践,赢取价值5000元大奖> HOT
文档中心 > 云服务器 > 最佳实践 > M6p 实例配置持久内存

操作场景

本文介绍如何在 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 扩充云服务器的内存。
    说明

    ndctl 和 daxctl 版本需大于 66。


    yum install -y daxctl
    daxctl migrate-device-model
    reboot
    daxctl reconfigure-device --mode=system-ram --no-online dax0.0
    返回结果如下图所示:
  2. 执行以下命令,查看系统内存扩充的情况。
    numactl -H
    返回结果如下图所示:

参考资料

目录