Mac 的内置硬盘速度那么快,它是不是「作弊」了|免费试读

编注:本文是少数派会员 π+Prime 的免费试读内容 。 π+Prime 是少数派推出的读者权益增值服务 , 它是一个包含内容、周边、活动权益在内的综合服务 。 你可以 了解关于少数派会员的更多权益和福利 。
Mac 的固态硬盘性能一直是苹果宣传的重点 。 特别是近年 Apple T2、M1 等自研芯片整合了主控芯片后 , Mac 内置固态硬盘相比竞品的性能优势似乎越发明显 。 在这样的背景下 , 如果有人站出来说「Mac 的固态硬盘速度有作弊之嫌」 , 想必会引起不少关注和争议 。
Mac 的内置硬盘速度那么快,它是不是「作弊」了|免费试读
文章图片

Mac 一直致力于宣传内置 SSD 的高性能(来源:苹果)
上个月 , 这样的讨论确实发生了 。
打开话匣的是 Hector Martin 。 先介绍一点背景:此君绝非哗众取宠的无名群众 , 而是一位资深的信息安全顾问和 Linux 研究者 , 曾因将 Linux 系统移植到 PS4 上而出名 。 去年以来 , Martin 又将目光投向了 Asahi Linux , 这是一个旨在让 ARM 架构 Mac 运行 Linux 系统的开源项目 , 目前进展颇多 , 已接近发布公测版 。 能主导这样一个高难度项目 , Martin 关于 Mac 的观点自然会引起社区的重视 。
在 2 月中旬的一串推文中 , Martin 就提出了一项争议很大的主张: 苹果的定制硬盘确实快得出奇 , 但却是以牺牲数据一致性(data integrity)为代价的 。
这件事的背景是 , Martin 在一台 M1 版 MacBook Air 上测试 Linux 系统时 , 发现很多写入操作慢的出奇 , 与类似操作在 macOS 下的速度完全不可同日而语 。 为了找出问题根源 , 他测试了苹果内置硬盘和其他两款常见固态硬盘的读写性能 。
结果非常耐人寻味:

硬盘型号
仅写入
写入并冲刷缓冲
内置硬盘
40,000 IOPS
46 IOPS
西部数据 SN550 NVMe
20,000 IOPS
2,000 IOPS
三星 860 EVO SATA
5,000 IOPS
143 IOPS
换言之 , 在「仅写入」的测试中 , 苹果内置固态硬盘可以达到 4 万次的 IOPS(每秒读写次数) , 这是主流第三方 NVMe 固态硬盘的 2 倍、SATA 固态硬盘的 8 倍 。
但到了「写入并冲刷缓冲」的场景 , 内置硬盘仅仅取得了 46 IOPS 的「好成绩」 , 相当于第三方 NVMe 固态硬盘的 2.3%、SATA 固态硬盘的 32.2% , 还不如很多机械硬盘 。
怎样理解 Martin 前后两次测试的区别和意义呢?
我们知道 ,现代计算机中最主要的性能瓶颈就是存储 。 因此 , 软硬件设计中普遍采用 多级缓存的设计来改善性能 。 就写入数据这一场景而言 , 待写入的数据至少要经过系统缓存(OS cache)、磁盘缓冲区(disk buffer)这两道中间环节 , 才能最终进入永久存储(permanent storage)——机械硬盘的盘片或固态硬盘的闪存颗粒 。
Mac 的内置硬盘速度那么快,它是不是「作弊」了|免费试读
文章图片

macOS 中的多级缓存(来源:WWDC 2019 演示文稿)
借用送快递来打比方 , 这就好比一个快件要经过区域分站、小区驿站等中转节点 , 才能最终送到你手上 。
通常情况下 , 发件方(写入数据的应用程序)并不关心这些底层的区别;它们只是把快件(写入的数据)交给快递公司(操作系统) , 至于送达方式、成功与否全凭后者的反馈 。 而为了提高处理效率 , 操作系统的常见做法是只要快递送到了驿站(数据写进了缓冲区) , 就反馈说送达成功(写入完成) 。 至于最后一步「送货上门」(写入永久存储 , 中文讨论中也常称为「落盘」) , 则是由操作系统在之后再根据自己的节奏完成——但这已经不受应用程序控制了 。

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。