添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

- 性能瓶颈不只是 PCIe 接口

- 测试平台: PCIe Gen4 的另类尝试

- 评估 SLC Cache 容量 & 稳态写性能的 2 种方法

- 随机写起步 30-25 IOPS 、与企业级 SSD 差别

- 90 温度保护、散热设计

- PCIe 4.0 平台展望:从 11 Core 到服务器 / 工作站

我很少下功夫去做消费级 / 一般商用 SSD 的测试,除了 3 年前的 Optane SSD 900P 评测 (2) :比拼 4x 闪存 NVMe RAID0 》,不过 Intel 傲腾 900P/905P 是基于 3D XPoint Memory 而不是 NAND 闪存,性能基本等同于企业级的 P4800X

这次是因为终于拿到了 PCIe 4.0 Intel 架构)平台,我就找 CCF 的刘委员(平台小秘书)借来了 WD SN850 M.2 NVMe 接口的 x4 lane 理论带宽接近 8GB/s ,虽然 SSD 还跑不到那么快,但标称 100 万读 IOPS 还是有点吸引力的。

测试平台 1 PCIe 4.0

11 Core 主机

Intel Core i3-1115G4 (双核)

测试平台 2 PCIe 3.0

Dell Precision 5820X Tower 工作站( X299 芯片组)

Intel Core i9-9980XE 18 核)

Windows 10 20H2

CrystalDiskMark

HD Tune Pro

Iometer

性能瓶颈不只是 PCIe 接口

如下图,我先拿 CrystalDiskMark 简单跑了一轮。

注: 点击图片后可缩放 ,以下同

左右两边测的都是这款 WD SN850 1TB ,却用了不同的主机平台。有朋友应该能看出右边是在 PCIe 3.0 上,超过 3500MB/s 也算达标了吧;左边的顺序读写带宽才是这款 PCIe 4.0 SSD 的真实水平。西部数据官方规格写的是读 7,000MB/s 、写 5,300 MB/s

上图中其实还有一个信息:左边的 4KB 随机读 Q32T16 性能比右边低不少,这是因为使用的 双核的 Core i3-1115G4 CPU 跑满了 。目前上市的 Intel 11 CPU 都还是针对中低功耗笔记本的, 45W H 系列、台式机,以及支持 PCIe4.0 Xeon 服务器还要等几个月。

结合这张 IOPS 视图看的更直观, 47 万读 /40 万写 IOPS Core i3-1115G4 占用率达到 100% WD SN850 官方标称 4KB 随机读 / IOPS 100 万和 72 万,右边测试中看到的 83 万也是遇到了 PCIe 3.0 的瓶颈 ;至于 64 万写 IOPS ,这个只是在有限的 LBA 范围内( 64GiB 测试文件),如果按照企业级 / 数据中心 SSD 的标准,整盘能跑到多少我会在下文中测给大家看。

WD SSD 配套的 Dashboard 软件中,可以看到当前的接口速率等信息。其中 4K 对齐 判断是有帮助的,我就曾在这里看到“未对齐”而重新分过区。

消费级 SSD 的图形管理界面,其实这些功能也有别的方式可以实现。简单方便就好,后面我还会用到它的温度监测。

PCIe Gen4 测试平台的另类尝试

当我在 Dell 5820 工作站上测试时, WD SN850 是装在机箱前置的 NVMe SSD 热插拔位。具体的 M.2 转接套件结构 我之前介绍过

WD SN850 使用了 SanDisk 自家主控、 2 512GB 堆叠 TLC 闪存(应该是 8 通道,大约 7-10% OP 冗余空间),还可以看到 1 Nanya DRAM 缓存—— 1TB SSD 上对应的是 1GB

这台 Dell Precision 5820 工作站本身配置了 1 256GB NVMe 前置 SSD ,测试中我就把这个位置换成 WD SN850 。铝质套件和导热贴对散热有一定帮助。

其实我还费了一番周折,尝试在这台工作站上搭建出对 PCIe4.0 的支持。具体来说是借来了《 PCIe Switch Adapter :不只是 NVMe HBA 》中介绍过的 Broadcom P411W-32P 转接卡,把 PCIe 4.0 Switch 插在主板上的 x16 PCIe 3.0 插槽,希望借此支持 1-2 Gen4 NVMe SSD

看上去有点资源浪费吧?结果还没完全成功——当我将一块 U.2 接口的 Optane 900P 插在 P411W-32P 连接的背板上,已经可以识别到;但再经过接口转换之后却无法识别 M.2 WD SN850 。这个测试方案只好先作罢

虽然没成功,还是要感谢下热情借给我 PCIe/ SAS 4.0 线缆的老同事、老朋友。 友情推荐 下他的淘宝店铺 http://shop35723783.taobao.com 极致一号店 ), Amphenol 多年合作伙伴,特别是服务器 / 存储里用到的线缆,不同线序都是可以提要求定制的:)

测试 SLC Cache 容量 & 稳态写性能的 2 种方法

注:如无特别说明,以下测试都是在 PCIe 3.0 平台上进行。

TLC 闪存开始,多数消费级 SSD 就设计了模拟 SLC Cache 来加速写入的机制。不同 SSD SLC Cache 区域容量不等,在实际应用 / 测试中看到的表现也就各异。

对于这方面的评估方法,我以前并没有仔细研究。本次用 2 款测试软件对比参照,相信能给大家一个满意的结果。

注:我跑的不是“文件基准”测试(点击放大查看)

受到 PCIe 3.0 接口限制,再加上 HD Tune 测试软件的“基准 - 写入”不能完全发挥高速 NVMe SSD 的带宽, WD SN850 一开始跑到 2600MB/s 多,当写入量 接近 300GB 时速度降到 1100MB/s 多。同时我也在观察 Windows 任务管理器显示的实时盘速,并且计时——第一阶段 1 48 秒也是相符的。

咱们就算 280GB SLC Cache 吧,这需要用 840GB 左右的 TLC 闪存来模拟。降速之后这个阶段,我理解一方面要 SLC Cache 中的数据转存( downgrade )到 TLC 区域,释放出更多的 TLC 闪存空间,同时还要接收新写入的数据

HD Tune 这个只能连续写入 1000GB ,为了进一步验证我又用 Iometer 做了 30 分钟的顺序写测试。

Iometer PCIe 3.0 接口上也能跑到 3000MB/s 以上,我们同样看到 SLC Cache 写满之后的降速,而当模拟 Cache 区完全清空之后, WD SN850 顺序写带宽又能回升到 2000MB/s 以上——这时才是 TLC 的原始性能

如果我在测试前先把 SSD 写满数据,那么一开始就是 2000MB/s 出头这样。

企业级 SSD 不会有模拟 SLC Cache 的设计,因此顺序写一开始就应该是稳态( 随机写有些不同,下文中有测试数据示例 )。商用客户端平台如果不想要 SLC Cache ,也有符合要求的 SSD ,比如 Dell 标准的 Class 50 等级,参见在《 万兆 NAS 模拟测试:是什么限制了性能? 》中做过的介绍。

横坐标为总队列深度:线程 x QD ;延时单位是微秒

我习惯性用 Iometer 也跑了 WD SN850 的随机读 IOPS 折线图,手头正好有几年前 Intel 企业级 P3700 SSD 的结果就顺便对照下。

SN850 队列深度 256 时才达到 819,303 IOPS (仍受限于 PCIe 3.0 测试平台,没看到 100 IOPS 稍显遗憾),我以前写过一篇基于 NAND 闪存 SSD 性能的“色子效应” ,低队列深度要想更好只有 Optane

延时方面 WD SN850 可低至 100µs 以内,这一块我并没有反复测试以求尽量精确的对比,大家参考一下即可,毕竟 Intel P3700 是多年前的 SSD 了。

企业级和消费级 / 一般商用 SSD 的性能差别,主要是在稳态写方面,当然还有写寿命。

随机写起步 30-25 IOPS 、与企业级 SSD 差别

这里延时的单位是毫秒(以下同),总队列深度 16

WD SN850 的随机写一样受 SLC Cache 影响。在上面图表的测试之前,我准备了 TRIM 之后的空盘。在 全盘容量范围测试 ,这时看不到六、七十万那么高的 IOPS ,起步有一小段 30 万,然后 保持大约 15 分钟的 25 IOPS ,再往后就降到 10 万以内。由于 4KB 小块写入的放大效应 SLC Cache 中容不下像顺序写那么多的数据。

最“严酷”的压力在下面——如果是企业级 SSD 我们通常会这样测试:

在预先已经写满数据的情况下, SN850 大多数时候超不过 3 万随机写 IOPS ,这个测试确实有些勉强消费级 SSD 了。如果有28%的闪存OP也不会是这个算法,下面我们简单参考下企业级 SSD 的水平:

Intel SSD P3700 随机写 IOPS 测试曲线

上图中的文字有点小,大家可以 点击放大 ,我也辅助说明下——测试曲线是 4K 随机写 IOPS ,纵坐标刻度从 10 万到 40 万,横坐标为时间 3600 秒( 1 小时),蓝色、橙色和绿色曲线分别对应并发 /QD16 64 512 Intel P3700 4KB 随机写 IOPS 最终稳定在标称的 17.5 万。

90 温度保护 、散热设计

大品牌 OEM 整机厂商有做系统化散热设计;对于不确定 SSD 表面气流速度的 DIY 用户推荐加装散热片的 M.2 固态盘;笔记本用户空间有限另论。

尽管在 WD SN850 官方规格里运行温度 建议不超过 70 摄氏度 ,但实际当中不小心还是容易超过。

SSD 的发热与持续负载密切相关,如上图:由于我在做 3000MB/s 以上的读 I/O 压测,未经优化时 SN850 已经自我报告接近 80

我手头这个 WD SN850 到达 90 左右才会触发降速保护 ,如果长期运行在高温下 SSD 的老化应该会加快一些,当然个人 / 普通商用与数据中心服务器的平均负载压力有很大不同。

本次测试我采取的应对措施是,在 Dell 5820 工作站 BIOS 调高对应 HDDZone 区域的风扇转速 ,比如 +30 偏移量。如果不是前置热插拔 SSD 还有另一种散热解决方案:

Dell Precision Ultra-Speed Drive 这种 PCIe to M.2 转接卡分为 Duo PCIe x8 ,双盘)和 Quad PCIe x16 ,四盘)两种,上图中就是后者,可以看到散热风扇的位置。

我之前手上有过一片 Ultra-Speed Drive 卡,上面配了 4 WD SN730

注: Dell PC 和工作站的 SSD 默认出厂时只限定 Class 等级,如果用户想选择指定的品牌型号,需要提出 CFI 定制。

PCIe 4.0 平台展望:从 11 Core 到服务器 / 工作站

Intel PCIe 4.0 平台的推出上落后,已经是个事实。目前有部分笔记本 / 商用客户端开始支持 PCIe 4.0 NVMe SSD

比如 Dell Latitude 5520 笔记本,以及 Precision 3560 移动工作站,在不选配独立显卡的时候,就可以有一个 NVMe SSD 直连 11 Core CPU PCIe 4.0 通道。

但我觉得这还远没有到普及的时候。首先高 IOPS 在桌面应用中并不多见,现有 PCIe 3.0 SSD 的带宽也可以满足绝大多数场景。

对于服务器和工作站的情况则不太一样,在多盘环境中,如果单盘性能提升则可能减少需要使用的 SSD 数量。除了现有的 AMD 平台, Intel 10nm Xeon Scalable Ice Lake-SP )也快点来吧:)

扩展阅读: 企业存储技术》文章分类索引(微信公众号专辑)

:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。

尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!

长按二维 码可 直接识别关注