部分re6p实例规格支持配置持久内存使用方式,作为内存或本地SSD盘使用。本文介绍如何配置持久内存的使用方式。

前提条件

  • 实例规格为以下规格之一:
    • ecs.re6p.large
    • ecs.re6p.xlarge
    • ecs.re6p.2xlarge
    • ecs.re6p.13xlarge
    • ecs.re6p.26xlarge
  • 镜像的版本满足以下要求:
    • Alibaba Cloud Linux 2
    • CentOS 7.6及更高版本
    • Ubuntu 18.10及更高版本
    • SUSE Linux 12 SP4及更高版本

背景信息

持久内存型实例配备大容量的持久内存,访问速度相对普通内存低,但在停机或重启后,持久内存中数据不会丢失。持久内存的使用方式如下:
  • 作为内存使用:您可以将部分原本存放在普通内存中的数据存放到到持久内存中,例如对访问速度要求较低的非热点数据。持久内存容量大,单GiB价格更实惠,可以帮助您大幅降低单GiB内存的整体拥有成本(TCO)。
  • 作为本地SSD盘使用:持久内存作为本地SSD盘使用时,类似性能超高的SSD盘,读写延时低至400 ns。因此,您可以为需要极致稳定RT(响应时间)的核心应用数据库选用持久内存。您也可以将原有的缓存盘换成持久内存,获得更高的IOPS和带宽、更低的延时,提升整体集群业务性能。
注意 持久内存中数据的可靠性取决于物理服务器和持久内存设备的可靠性,因此存在单点故障风险。建议您在应用层做好数据冗余,将需要长期保存的业务数据存储到云盘上,以保证应用数据的可靠性。
本文示例中使用的配置如下:
  • 实例规格:ecs.re6p.2xlarge
  • 镜像:Alibaba Cloud Linux 2.1903 LTS 64位

将持久内存作为内存使用

持久内存作为内存使用时,核心能力是支持字符寻址。持久内存和普通内存的容量空间会各自独立存在,并不会合并。您可以通过memkind工具分配内存空间,关于如何使用memkind,请参见memkind

  1. 登录实例。
    具体操作,请参见 连接方式概述
  2. 安装持久内存管理工具。
    yum install -y ndctl daxctl
  3. 将使用模式配置为devdax。
    ndctl create-namespace -f -e namespace0.0 --mode=devdax
  4. 查看内存大小。
    • 查看持久内存大小。
      ndctl list -R
      pmem-size
    • 查看普通内存大小。
      cat /proc/meminfo

将持久内存作为本地SSD盘使用

  1. 登录实例。
    具体操作,请参见 连接方式概述
  2. 安装持久内存管理工具。
    yum install -y ndctl daxctl
  3. 将使用模式配置为fsdax。
    ndctl create-namespace -f -e namespace0.0 --mode=fsdax
  4. 格式化磁盘。
    mkfs -t ext4 /dev/pmem0
  5. 挂载磁盘。
    mkdir /mnt/sdb
    mount -o dax,noatime /dev/pmem0 /mnt/sdb
  6. 查看已挂载的磁盘。
    df -h
    pmem-as-ssd

    挂载完成后,您可以使用磁盘性能测试工具测试磁盘性能。关于如何在Linux系统中使用fio测试磁盘性能,请参见测试块存储性能中的云盘性能测试命令。

    持久内存作为本地SSD盘使用时,与本地NVMe SSD盘、ESSD云盘的性能对比如下表所示。
    说明 表中列出了性能级别供您参考,单次测试的具体结果请以您自行测试时的结果为准。
    指标 持久内存(容量128 GiB) NVMe SSD(容量1788 GiB) ESSD云盘(容量800 GiB,性能级别PL1)
    读带宽 8~10 GByte/s级别 2~3 GByte/s级别 0.2~0.3 GByte/s级别
    读写带宽 8~10 GByte/s级别 1~2 GByte/s级别 0.2~0.3 GByte/s级别
    写带宽 4~6 GByte/s级别 1~2 GByte/s级别 0.2~0.3 GByte/s级别
    读IOPS 100万级别 50万级别 2~3万级别
    读写IOPS 100万级别 30万级别 2~3万级别
    写IOPS 100万级别 30万级别 2~3万级别
    读延时 300~400纳秒级别 100000纳秒级别 250000纳秒级别
    写延时 300~400纳秒级别 20000纳秒级别 150000纳秒级别