打印本文 打印本文 关闭窗口 关闭窗口

对苹果Fusion Drive混合磁盘方案的一些解析

作者:陈淏轩 文章来源:iPhone中文网 点击数 更新时间:2016-2-1 15:46:33 文章录入:贯通日本语 责任编辑:贯通日本语



Fusion Drive揭秘


我测试用的是一台新的27英寸iMac。最开始,我用了一个128KB的顺序写入操作(队列深度为1),并使用iStat Menus 4来监测两个驱动器的状态,我发现只有SSD接收了最初的写入操作,HDD上没有活动。 SSD的写入速度是322MB / s。但在写入117GB之后,HDD接管了写入活动,最初速度大约为133 到175MB / s。



初步测试证实,Fusion Drive确实使用了两个驱动器。最初117GB写入到了SSD,接下来的1TB直接写入到HDD。我觉得它排定优先级的方式是:Fusion Drive假设SSD上有足够的可用空间(后面将详细讨论),首先尝试写入SSD。


接下来,我想进行随机IO测试,因为这才是SSD在性能方面超过HDD的地方,通常也是SSD缓存或混合方案功亏一篑的地方。我首先尝试了最糟糕的情况:涵盖所有的逻辑块地址的随机写入测试。鉴于Fusion Drive的总容量是1.1TB,从这个测试中,我们可以了解苹果如何在这两个驱动器之间映射LBA(逻辑块地址)。


结果很有趣的,不过也不算意外。 SSD和HDD都有写入活动,但HDD更多一些(消耗了更大比例的可用LBA)。普通的4KB(QD16)随机写入测试结果大约是0.51MB / s,它受到了Fusion Drive中HDD部分的限制。


但在随机写入任务结束之后,HDD和SSD之间出现了直接的数据移动。因为LBA是随机选择的,一些(相同或只是空间上相似的)地址可能被挑选了不止一次,这些逻辑块立即被标记为提升到SSD。这是我第一次看到Fusion Drive主动在驱动器之间移动数据。


对于消费级SSD来说,进行全覆盖的随机写入测试可能有点不公平,对SSD / HDD混合方案来说就更不公平了。要了解Fusion Drive处理随机IO的能力有多强,我把随机写入测试限制在LBA的第一个8GB之内。


结果有很大的不同。在第一轮中,平均速度大约是7 到9MB /s,IO绝大部分都发生在SSD上,一小部分在HDD上。 3分钟的测试后,我等着Fusion Drive移动数据,然后又重复了一遍。在第二轮中,速度跳升到了21.9MB / s,更多的IO发生在SSD上,尽管HDD上仍然看得到写入活动。



图:大部分的随机写入都发生在SSD上,但仍然有部分到了HDD,移动了一番数据和重映射LBA之后,几乎所有的随机写入都到了SSD上,速度也快了很多


在第三次尝试中,几乎所有的随机写入发生在SSD上,速度达到98MB / s的峰值,碎片增多时,速度下降到最低35MB / s。我认为,苹果似乎依据访问频率,把LBA动态地映射到了SSD上,这是一个非常积极的性能提升方法。归根结底,这是通常的SSD缓存方案和Fusion Drive之间存在的重大区别。大多数SSD缓存方案似乎都以读取频率为基础,而Fusion Drive看似(至少部分是)考虑了哪些LBA被频繁写入,并把它们映射到SSD上。



要注意的是,随后的随机写入测试产生的结果大不一样。当我用更多的数据和应用程序填充Fusion Drive(用真实的数据和应用程序填充到80%)时,我没有见到随机写入性能能再次达到这样高的水平。在每次运行中,我看到有很短的时间数据到处移动,但随机IO发生在HDD和SDD的比例约为7:1。鉴于这两种驱动器之间的容量差异,这个比例具有很大意义。如果你的工作负载包含大量的随机写入,涵盖所有可用空间,Fusion Drive可能就不太适合你。不过这样的工作负载大多出现在企业用户中,所以对你来说这应该不是问题。




上一页  [1] [2] [3] [4] [5] [6] [7]  下一页 尾页




打印本文 打印本文 关闭窗口 关闭窗口