存储 频道

对比评测常见MLC SSD产品的写入性能

  【IT168 资讯】在前面的文章“图解市场上不同SSD的相同内部构造”中,我们发现,目前市场上大多数SSD厂商都是内存厂商,而不是芯片厂商,因此对SSD性能影响至关重要的芯片,通常都采用了完全一样的OEM厂商提供的产品。

  基于同样设计的MLC驱动器的最大的好处就是它有助于推动降低成本,这给我们提供了非常低廉的产品。大家都使用相同设计的弊端就是,如果出现问题,不仅影响到一个驱动器,它将影响到所有的SSD驱动器。事实上,这是一个非常严重的问题。 

使用相同驱动器产生的问题

  症状很明显:在使用驱动器过程中的断断续续/暂停/滞后,但该驱动器仍然工作,只是某些访问可能需要较长时间才能完成。这很像一个缓慢的笔记本电脑使用的硬盘,一切都仅仅是停止。对于寿命可以预测,并能够提前警示用户的SSD产品来说,这一点其实很可怕。

  我第一次发现这个问题是在几个月前,当我开始评测的时候,看到SSD的性能中的Mac Pro选项就像是刚刚启动或者有应用访问时驱动器的状态。

  这是一款Super Talent的3.5寸SSD驱动器,我暂且假定其是一个SLC驱动器。应用刚开始的时候异常的迅速,但我注意到一些很奇怪的问题,当时我是用我的机器。开始键入一个文件,或者发送即时消息,甚至在Safari中打开一个新标签,有时会伴随着又一次长暂停。

  起初,我以为这是我的驱动器或控制器的问题,或者是驱动器接口混插的问题,比如SATA控制器上的Mac Pro的主板和OS X本身的问题。后来我发现这是一个MLC SSD驱动器的问题,从而我开始进一步调查。

  由于SSD的大量量产,不少SSD的价格已经下降了很多,最终64GB的MLC SSD的价格低于300美元。如果你看到市场上各种售价便宜的驱动器规格时,你会发现他们的性能甚至比SLC产品更好,然而这些产品在现实中的表现与指标却不相匹配。

性能测试中暴露的问题

  让我们先以同类型为基准进行比较,我们通常去看SSD运行中的表现,这里有一个快速运行的PCMark Vantage的普通HDD硬盘驱动器。几款产品的性能对比中,Core驱动器的优势真是让人尖叫的:

  让我们来深入挖掘一下这个问题的表现,在媒体中心的试验中SSD的性能是显着低于VelociRaptor 的-但总的来说SSD在其他的测试中的速度更快,可这个测试实际上又能说明什么呢?

  然而如果我们把目光转向SYSMark,图片是迅速变化的。OCZ SLC驱动器要比SLC驱动器快30%,而在视频制作方面MLC驱动器的性能差不多是SLC驱动器的一半。所以我们感觉到有些东西不太对劲。

深入探讨MLC性能普遍问题

  我曾根据我在使用Mac Pro驱动器中的经验,怀疑这个问题是SSD一个普遍问题。为此我觉得继续作一些测试来确认这个问题到底有多严重。当我发送一个即时消息时,系统和磁盘又会发生什么动作呢?当我们发送一条即时消息后,系统就会产生一个更新的日志文件,它非常小,是一次随机的磁盘写入。我回过头来试图通过一些仪器设备来模仿这种行为。

  Iometer是一个模拟磁盘访问的非常好的一款工具,,你只需要知道什么样的行为你将要模拟。在我的测试中我只是想大量的小文件到驱动器中,并观察每次延迟,所以我告诉Iometer写入4KB文件到磁盘,采用完全随机模式(100%随机写入) 。

  Iometer的测试报告显示出四点数据很重要:每秒钟的IO数量, MB /秒的平均值,平均写入延迟和最大写延迟。我看了看参加测试的四个硬盘, OCZ的核心( JMicron控制器的MLC ) ,OCZ SLC(三星控制器) ,英特尔的MLC (英特尔控制器)和希捷Momentus 7200.2 (7200 2.5 寸笔记本硬盘) 。

  虽然OCZ的核心驱动器是我们的一个例子,但请记住,这不是OCZ的个别问题:我们看到此驱动器很明显存在目前所有市场上的SLC SSD上,都采用JMicron的控制器与三星flash闪存。

  看上表看出了什么问题吗?让我们看平均延迟这一栏。 OCZ的MLC的驱动器的平均延迟时间244毫秒,是SLC驱动器延迟时间的26倍,是快速笔记本电脑硬盘延迟时间的25.9倍。英特尔的MLC驱动器拥有的平均延迟时间是0.09ms –是SLC驱动器延迟期的2700倍。

  现在我们来看一看最大延迟时间一栏,OCZ Core SSD表现的最差,其延迟时间为是991ms !这已经接近1秒钟的时间!这就是说,平均需要1/4秒才能写4KB文件到驱动器,但在最坏的情况下,需要一秒钟的时间才能写入4KB的数据。

  我们常常抱怨CPU需要100纳秒的时间才能将数据写入到主存储器,但是在这里我们有一个驱动器却需要接近1秒钟的时间去完成一次任务-这显然是完全不能接受的。

更改测试条件测试

  为了弄清是否是因为文件的大小影响到延迟的时间,所以我们把测试的所有数据大小从4KB的方式提高到多达128KB,但保持了100%随机写入。下面是只报告延迟时间的表格:

  所有的方式在提供128KB大小的数据的时候延迟时间是最大的,在不考虑文件大小的情况下,基本就是随机写。

  下一个测试我考察不同写入状态下的性能变化,我运行了4KB大小文件的写测试,测试了100%的顺序写的工作量, 90 %的顺序写(10 %随机写)和50 %的顺序写(50 %随机写):

  OCZ Core (MLC)的平均延迟时间要比其他驱动器的要高很多,在100%顺序写的过程中,0.36ms的延迟时间还是可以管理和接受的,但当90%的顺序写入和10%的随机写入的时候,平均延迟时间跃升至25.8ms,它是OCZ SLC驱动器平均延迟时间的13倍。

  尽管我们脱离本次测试的一些条件限制,让数据的写入变得更简单些,就是这样在90/10的测试条件下,OCZ Core驱动器的最大延迟时间还高达983ms。90/10这种测试方法是一种非常有效的测试方法,因为它和桌面的写入方式非常的相似,大部分的写入都是顺序写入的,只有将近10%的写入时随机的(10%或更少)。从我们的测试表明,即使是10%的随机写入数据方式,就可以让OCZ Core屈膝了。

增加驱动器负载

  如果增加驱动器的负载,那么这个问题将继续恶化。绝大多数桌面系统正常的操作都会有至少1个未决的IO在等待,但是多任务很重的情况下您可以看到的IO队列深度达到4个或5个,在许多的办公环境你还会看到多用户的环境,或者让你的机器就像5台Server一样运行,或者工作在高负载的状态。

  我将数据改成100%的随机写入,4KB的大小,并且有大量的系统IO队列等待,最大高达64个。我这样做只是想看看这些驱动器最坏能到什么样的程度。

  结果平均写延迟高达惊人而荒谬的十五秒,而JMicron的SLC驱动器最大延迟最高达三十秒的。这个图就是在告诉你,你不应该冒然的在你的服务器中使用这些驱动器,但即使在队列深度四个最大延迟超过两秒钟,这也是完全可以实现桌面系统大量使用的情况。

  我已经看到了在OS X操作系统下使用SuperTalent的MLC驱动器的第一手资料,该系统在后台进行写入操作并完成的时候,将仅暂停一眨眼的功夫或暂停1秒钟时间。当你向Web浏览器的缓存中写入数据或者发送一个即时消息时,经常会带来一些停顿现象,这是非常可怕也令人非常沮丧的事情。

  我没关注其读取的性能,写入的最大延迟是一个问题(最高达到250ms ),只有在一个相当罕见的情况下,平均延迟时间才能够让人满意并比得上SLC驱动器。下面我们还将有文章继续追踪SSD在实际应用中的一些通用问题。

0
相关文章