本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号,以便更好地与读者互动。
这个周末看到一份测试报告,下面我将围绕其中有参考价值的部分写一些东西,希望对大家有所帮助。
记得我在今年
3
月写过一篇《
Intel Optane DC
持久化内存性能测试、数据库应用优化
》,其中提到了
Redis
、
Memcached
、
RocksDB
和
MongoDB
这些开源数据库。
更多推荐
《
OptaneDIMM
写速度比
SSD
慢?内存接口可能并非完美
》
《
性能修正:
Intel Optane DC
持久化内存更多测试
》
SCM
应用:
从开源数据库到商业数据库
图片点击后可放大(以下同)
谈到
Optane DC Persistent Memory
(傲腾数据中心持久内存,代号
AEP
)的推广,
Redis
应用方案算是目前业内相对成熟一些的
,其中又以互联网公司为主。
如上图,
Intel
已经把当前
3
种使用模式的利弊总结出来:
-
内存模式
(系统内存容量
=Optane DIMM
,
DRAM
作为
Cache
),最大好处是简单易用;
-
App Direct
模式
,需要
Linux
内核
>4.15
;
-
NUMA Node
模式
,需要
Linux
内核
>5.1
。
关于
NUMA Node
,我之前转载的一篇专家文章《
Linux
内核中
Optane
持久化内存的现状和发展
》里有详细一些的论述,推荐给大家。
使用开源数据库本身就意味着折腾,
Optane DIMM
又是个新事物,应该说不是每家公司都能轻松驾驭。在《
一份难得的数据库市场分析报告
》中我曾介绍过,根据
DB-Engines.com
的调查分析,从整体上看开源数据库的流行度已经快要追上商业数据库,而商业产品在关系型数据库的占比仍然高达
60.5%
。那么商业数据库对
SCM
大容量持久内存的支持,又发展到什么程度了呢?
我们先来简单看下
Oracle
的情况:
上面资料引用自《
Oracle
Exadata
Database Machine
X8M-8
Data Sheet
》,最新的这款数据库一体机已经配置了
Intel Optane DC Persistent Memory modules
。我们看到单个
Cell
节点(
Storage Server
)的
最大
SQL PMEM
读
IOPS
达到了
150
万
。相比之下,只有
NVMe SSD
的同一代产品
X8-2
的最大
SQL
读
IOPS
只有
597,500
。
Exadata X8M-8
半个机架规模的
SQL PMEM
读
IOPS
性能为
450
万、全机架
600
万,我怀疑当前网络或者数据库节点还存在瓶颈。当然我不是
Oracle
专家,这部分班门弄斧的介绍先告一段落,仅供大家参考:)
扩展阅读
《
Optane P4800X
评测
(2)
:
Oracle 170
万
TPM
意味着什么?
》
《
MySQL
的启示:
Intel Optane P4800X
评测
(4)
》
《
当
Windows
超融合遇上
Oracle RAC
:
S2D
测试之四
》
上图我在《
数据库
TPC
提升
42%
:
NVDIMM-N
为何普及慢?
》一文中曾经列出,当时的
SQL Server 2016 SP1
对带电池备份的
NVDIMM
内存
(
8/16GB
)的支持,还只是
作为
Log Buffer
(日志缓冲)
。如今
Optane DCPMM
的单条容量达到了
128/256/512GB
,
SQL Server 2019
的支持应该更进一步了吧?
上周我在展会上拍摄的
AEP
SQL Server 2019 on Linux
:
将数据库文件放在
PMEM
上
上图引用自
Principled Technologies
的测试报告《
Watch your transactionaldatabase performance climb with Intel Optane DC persistent memory
》,本文结尾处有链接地址。这个描述的实际上是
VMware vSphere ESXi
6.7
在
App Direct Mode
利用
Optane DIMM
的两种模式
,显然通过
vSCSI
模拟成
vPMEMDisk
的性能会差些。
扩展阅读:
《
SNIA
持久化内存峰会:虚拟机、数据库、
SDS
进展曝光
》
本次测试使用的是上方那种
vPMEM
模式,因为微软
SQL Server 2019 on Linux preview
(预览版)具备
PMEM
感知,引入了
SQLenlightenment
,
允许把数据库文件放在
NVDIMM
设备上
。
注意了,这里并不是
Windows
下的
SQL Server
,因此
Dell EMC PowerEdge R740xd
服务器上运行的数据库虚拟机操作系统为
Red Hat Enterprise Linux 8.0
。
注:
类似
TPC-C
的工作负载模拟零件供应商使用的数据库应用程序。
数据模型和应用程序模仿一个拥有仓库、零件、订单、客户和销售区的公司,基准报告每分钟交易的结果。这不是经过官方审核的
TPC-C
测试,因此无法与已发布的
TPC-C
结果进行比较。
测试的配置仅用于性能评估;由于只是单一服务器节点,这里将
NVMe
驱动器作为单个设备进行了测试,而没有真实世界(生产环境)需要的冗余。
以上就是
TPM
成绩的对比,
12
个
SATA SSD
通过
RAID
卡做阵列,每分钟交易数只有
20
万;
2
个
NVMe SSD
的
TPM
达到
105
万;
4
个
NVMe SSD
达到
135
万;而
12
条
Optane DC
持久内存跑到了
230
万
TPM
。
需要说明的是,数据库性能测试与具体的交易模型复杂程度关系密切,而且有些情况下
CPU
会成为瓶颈,因此不是所有情况下结果数值都会随存储性能线性增长。
AEP
在这里有可能不是赢在数量上,而是因为
低延时
。
扩展阅读
:
《
服务器
SSD RAID
性能速查手册
》
根据
TPM
不难估算出
TPS
每秒交易数,下表中列出了更详细的,同时还有使用的
SSD
型号。
扩展阅读:
《
Dell PowerEdge R740xd
解析:
服务器只看参数那就错了
》
当
SQL Server
数据库放在
Optane DIMM
上时,
TPS
超过
38,000
。本次使用的
SATA
和
NVMe SSD
分别为
Intel D3-S4510
和
P4610
,后者做为
P4600
的升级型号性能还是不错的。(扩展阅读:《
Intel
发布
P4500
、
P4600 NVMe SSD
:规格释疑
》)
上图只截了一部分测试配置:这台
R740xd
服务器安装了
2
颗
28
核的
Xeon Platinum 8280M CPU
。如想了解更多信息可查看报告全文。
测试平台:
DAX
挂载的
XFS
文件系统
上图是测试环境搭建过程中的一个要点:
AEP
被配置为
fsdax
模式,然后在上面建立
XFS
文件系统
,并使用了
dax
参数进行了挂载。
DAX
即效率较高的
MMAP
(
Memory Mapped
)
访问模式。具体到
NVM.PM.FILE
的实现可以参考下图及链接:
上图来自《
PMDK
和
SNIA NVM
编程模型
》一文,顺便再给大家推荐下面几篇,都是
Zhang Wenliang
兄的大作:
《
SAP HANA
和非易失性存储(
Optane DIMM
)
》
《
PMDK
持久内存开发指南(图书)预览下载
》
《
PMDK
(
Persistent Memory Development Kit
)及其应用场景
》
简单做个总结:
SQL Server 2019
数据库已经支持了
Optane DIMM
的
App Direct
模式,并且性能还不错。那么
Memory Mode
缓存模式又适合那些应用呢?
下一篇我接着写,敬请关注!
参考资料
https://principledtechnologies.com/Dell/PowerEdge-R740xd-Intel-Optane-1019.pdf
https://principledtechnologies.com/Dell/PowerEdge-R740xd-Intel-Optane-science-1019.pdf
注
:
本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。
进一步交流
技术
,
可以
加我的
微信
/
QQ
:
490834312
。
如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)
尊重知识,转载时请保留全文,并包括本行及如下二维码。
感谢您的阅读和支持!《企业存储技术》微信公众号:
HL_Storage
长按二维码可直接识别关注
历史文章汇总
:
http://chuansong.me/account/huangliang_storage