带宽是一个简单的数字,人们认为他们理解。数字越大,存储速度就越快。
不。
撇开许多消费者的带宽数字都是假的-链路速度不是存储速度-实际性能很少依赖于纯带宽。
带宽是一个方便的度量标准,很容易测量,但不是存储性能的关键因素。大多数存储性能工具衡量的是大请求的带宽。为什么?因为小的请求不会占用太多带宽。
下面的图片是用ATTO存储的工具制作的,说明了这一点。X轴上是带宽,Y轴上是访问大小。相关性很明显:小请求不会占用太多带宽。
在快速内部PCIe SSD上驱动基准。
但是为什么CPU不发出更多的I/O请求来占用未使用的带宽呢?因为每次I/O都需要时间和资源(上下文切换、内存管理和元数据更新等)才能完成。
即使您正在编辑巨大的视频文件,也会有很多小请求。这是因为在幕后,CPU的内存管理单元(MMU)不断地交换最少使用的页面,并交换工作负载所需的任何数据或程序段。
这些页面的大小在Windows中固定为4KB,在最新版本的macOS中固定为16KB。如果您有大量的物理内存,则在重新启动后最初分页的次数会减少,但随着时间的推移,当您运行更多的程序并打开更多的选项卡时,物理内存会被填满,交换也会开始。
因此,到存储的大部分I/O流量都不在您的直接控制之下。它也不需要太多带宽。
真正重要的是什么?延迟。存储设备为请求提供服务的速度有多快。
延迟的重要性有一个明显的原因,另一个微妙但几乎同样重要的原因。
让我们从明显的原因开始。
假设您有一个带宽无限的存储设备,但每次访问都需要10毫秒。该设备每秒可以处理100次访问(1000ms/10ms=100)。如果平均访问量为16K,则总带宽将达到每秒1600000 KB—低于USB 2.0提供的标称500 Mbits/sec—浪费了几乎无限的带宽。
10毫秒的访问量大约是平均硬盘所能处理的,这就是存储供应商打包成百上千的原因,但那是糟糕的过去。
今天的高性能固态硬盘具有微秒级的延迟,这意味着它们可以处理15年前百万美元存储阵列所能处理的I/O数量。只有当您有无限的16KB访问时,您才会受到连接带宽的限制。
延迟重要性的微妙原因更为复杂。假设您有100个访问时间为10ms的存储设备,并且您的CPU每秒发出10000个I/O(IOPS)。
您的100个存储设备可以处理10000个IOPS,所以没问题,对吧?错了。因为每个I/O需要10毫秒,所以您的CPU要处理100个未完成的I/O。将延迟降低到1ms,CPU只有10个未完成的I/O。
如果出现I/O突发,未完成的I/O数量会导致页映射超出可用的板载内存,并强制它开始分页。因为分页已经很慢了,这是一件坏事。
把延迟作为性能指标的问题有两个:不容易衡量;而且,很少有人了解它的重要性。但几十年来,人们一直在购买和使用低延迟接口,可能不知道为什么它们比更便宜、名义上同样快的接口更好。例如,FireWire比USB 2的优势,尽管带宽数字大致相当,但却是延迟。USB 2-500 Mbits/秒-使用延迟更高的轮询访问协议。FireWire驱动器看起来总是比USB上的同一个驱动器更快,因为它的延迟协议更低。你可以从USB 2驱动器启动Mac,但运行应用程序的速度非常慢。
同样,Thunderbolt也一直针对延迟进行优化,这也是它成本更高的原因之一。
欢迎评论。这是为另一篇文章做准备,我在这里看到了USB3.0和Thunderbolt驱动器。请继续关注。
最佳外部硬盘2021:顶级SSD和存储
什么是32位浮点?一种更好的数字音频编码方法,罪犯喜欢加密货币。您是否应该?
通过注册失去M1 Mac的苹果存储税
,即表示您同意使用条款并承认隐私政策中概述的数据实践。
您还将获得免费订阅的ZDNet今日技术更新和ZDNet公告时事通讯。您可以随时取消订阅这些时事通讯。
您同意接收CBS系列公司的更新、提醒和促销活动,包括ZDNet的今日技术更新和ZDNet公告时事通讯。您可以随时取消订阅