-
性能瓶颈不只是
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
)也快点来吧:)
扩展阅读:
《
企业存储技术》文章分类索引(微信公众号专辑)
》
注
:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!
长按二维
码可
直接识别关注