性能一致性
在Intel SSD DC S3700的评测中,Anand介绍了一种新的衡量性能的方法:观察各个操作的延迟随时间的变化。S3700承诺其性能一致性在业界是无与伦比的,因此需要一些额外的测试来展示。我们测试的IO延迟与SSD不一致的原因是,所有控制器都不可避免地必须进行一些碎片整理或垃圾回收,以便继续高速运行。SSD在何时以何种方式运行其碎片整理和垃圾回收将直接影响用户体验。频繁的垃圾回收通常会导致更稳定的性能,而延迟可能会导致更高的峰值性能,而降低了最坏情况下的性能。下面的图表向我们介绍了这些SSD的架构以及它们如何进行内部碎片整理。
为了生成下面的数据,我拿出了一个新的完全擦除的SSD,并顺序填写了数据。这确保所有用户访问的LBA都具有与其相关联的数据。接下来,使用不可压缩的数据在队列深度为32的情况下,在整个LBA上进行4KB的随机写入。 经历半个多小时的测试,虽然SSD并没有没有达到我们想要的稳定模式,但是足以让预留空间都填满数据。
在测试期间每秒记录一次IOPS,然后绘制IOPS与时间的曲线,并生成下面的散点图。每组图形具有相同的比例。前两组使用对数刻度进行简单比较,而最后一组图使用以40K IOPS为单位的线性刻度,以更好地显示SSD之间的差异。
在S3700评测中保持高水平测试方法不变。不同于以前的评测,根据试图模拟的备用区域的数量不同,改变了SSD填充/测试的百分比。如果SSD供应商决定使用该特定数量的备用区,那么按钮上会标示用于广告宣传的用户容量。如果要自己复制这个,需要做的是创建一个小于SSD总容量的分区,并保留剩余空间以模拟更大量的备用区。在每种情况下,分区操作都不是绝对必要的,但这是一个简单的方法,以确保您不会使用超过您分配的备用区域。从一开始就这样做(例如安全擦除,分区,然后安装Windows)是一个好主意,但是如果你把步骤倒过来,可以随时创建备用分区,将其格式,然后删除该分区。但并不是所有的控制器都可以使用相同的方式创建空闲区域。
第一组图显示了在整个2000秒的测试时间内的性能数据。在这些图表中,可以发现在测试初期性能较高,然后急剧下降。之所以看到这种情况,是因为SSD从其备用区域分配新块,然后最终用光了所有的空闲块,并且必须对后续的所有写入执行读-改-写(写放大上升,性能下降)。
第二组曲线图放大了SSD刚刚进入稳态时的性能(t = 1400s)。 第三组也是观察了稳定运行开始时的性能,但是结果是在线性性能尺度上展示的。 由于篇幅限制没有给出全部的图像。可以阅读原文查看更多图像。
基于SandForce的SSD,其IO一致性一直很好。与Intel SSD 335相比,V300的性能有所不同,因为它进入稳态(1400s vs 800s)需要更长的时间,但另一方面,与Intel相比,稳定状态的IOPS也有所下降。 对于消费级的工作负载,我认为将稳定状态向前推可能也并不是一个坏主意,因为SSD不太可能达到稳定状态,所以在使用SSD的状态下能够获得更好的性能。
在这里,V300和SSD 335之间的区别非常明显。在最坏的情况下V300的IOPS几乎下降到零,而对于SSD 335,它始终保持在7K以上。令人惊讶的是,给V300更多的OP实际上并没有好处。我不知道为什么会发生这种情况,但是由于压缩,SandForce一直表现得很稳定。
AnandTech Storage Bench 2011
两年前,我们推出了我们的AnandTech Storage Bench,这是一套基准测试,可以追溯到实际操作系统/应用程序的使用情况,并可以重复地回放。
虽然AnandTech Storage Bench在刻画 SSD性能方便做得很好,但压力测试并不够。 所有测试执行的读写不到10GB,通常仅涉及4GB的写入。 这甚至不足以超过大多数SSD的备用区域。虽然大多数的SSD基准测试甚至不能写入接近1GB的数据,但这并不意味着简单地写入4GB是可以接受的。
我们保持基准足够短,以至于它们不会成为SSD运行(约30分钟)的负担,但足够长的时间测试可以反应高级用户对系统的使用情况。然而,后来我们创建了Mother of All SSD Benchmarks (MOASB)。 不再是仅仅写入4GB的数据,而是写入106.32GB。 这反映了经过近两个星期的不断使用后,SSD的负载情况。 但这需要运行很长时间。
1)MOASB官方称为AnandTech Storage Bench 2011重型工作负载,主要集中在的I/O活动最频繁的时候。在此测试过程中包含了大量的下载和应用程序安装的过程。我们认为,在应用程序安装,文件复制,下载和多任务处理过程中,可以真正地注意到SSD之间的性能差异。
2)我们试图用此测试覆盖尽可能多的基础软件。如,Photoshop中有很多照片编辑,Dreamweaver中有很多的HTML编辑,网页浏览,游戏加载(Starcraft II和WoW都是测试的一部分)以及一般用途(应用程序安装,病毒扫描)。测试中还包括大量的电子邮件下载,文档创建和编辑。甚至在测试过程中使用Visual Studio 2008构建Chromium。
测试中有2,168,893个读取操作和1,783,447个写入操作。 IO分析如下:
只有42%的操作是顺序的; 其余的都是从伪随机到完全随机(大多数在伪随机类别中)。
平均队列深度为4.625,其中59%的操作运行在IO队列为1时。
许多人要求用更好的方式来真正地刻画性能。简单的看IOPS并没有太大的说服力。
因此,我们将以稍微不同的方式呈现Storage Bench 2011数据。平均性能的单位为MB / s,数字越高越好。同时我们将会给出在运行此测试时,SSD有多长时间是处于繁忙阶段。
这些展示硬盘繁忙阶段的图表将会确切地告诉我们,使用了更快的SSD后,硬盘的繁忙时间减少了多少。
最后,我们还将把性能分解为读性能,写性能和混合性能。
我们这样做的原因是为了平衡这个测试中密集的异常写入,因为这通常会掩盖具有良好读性能的SSD的优点。
2011还有一个新的轻量级工作负载。这是一个更合理的、典型的日常使用的benchmark。它包含大量的网页浏览,照片编辑,视频播放,以及一些应用程序安装和游戏。这个测试并不像MOASB那样密集,但是其写密集度仍是去年运行的测试的几倍。
我们并不认为单独的这两个基准测试就足以表征SSD的全部性能,但是希望随着其他测试的展开,它们有助于提供一个更好的方法。 “Storage Bench 2011”的测试平台也发生了变化,我们现在正在使用一个叫做Sandy Bridge的平台,能够支持6Gbps的测试。