专栏名称: 企业存储技术
企业存储、服务器、SSD、灾备等领域技术分享,交流 | @唐僧_huangliang (新浪微博 )
目录
相关文章推荐
51好读  ›  专栏  ›  企业存储技术

TPC-C性能翻倍:Optane DIMM持久内存+SQL Server 2019

企业存储技术  · 公众号  ·  · 2019-12-09 08:15

正文

请到「今天看啥」查看全文


本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号,以便更好地与读者互动。


这个周末看到一份测试报告,下面我将围绕其中有参考价值的部分写一些东西,希望对大家有所帮助。

记得我在今年 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

点击下方“阅读原文”,查看更多历史文章
↓↓↓






请到「今天看啥」查看全文