SandForce 算法分析
我希望大家在看接下来的内容前,先了解下SandForce的独特算法,连接在上面。
看完了?那么接下来我们迎来今天的主角:IOMETER 2010 软件。
这个软件是经过重新编译的,和原来的IOMETER不同点在于增加了测试时候用到的数据源"结构"的选择。
软件运行后有4个选项:
前面3个对应这里的3个文件。
1.第一个选项是使用1个100MB的数据库文件作为数据模型。
2.第二个选项是使用1个100MB的Win7分区镜像作为数据模型。
3.第三个选项是使用1个5MB的TXT文档作为数据模型。
4.第四个选项是使用自己的文件作为数据模型。
这里所谓的数据模型,是指的测试数据源是哪种编码,对SandForce来说,最关心的是压缩比率。
这里有个图,是我用WinRAR压缩的,我们来比较下。我采用了WINRAR的最高压缩算法来压缩这3个数据模型。
看图:
我们看到文件能够被压缩到原本的5%,13%,14%大小。 省下很多空间哦。
那么我就可以说,这3种文件的编码(数据库,WIN7系统区,TXT文档)都是比较容易压缩的。
接下来我就再弄个难压缩的文件看看,啥哪?AVI,MP3,JPG之类了。
如图:
我复制个AVI文件过来,顺便压缩了下,看到只能压缩到原来的99%。
这个就说明AVI的文件编码很难被压缩。
我把文件改名下,方便之后测试。
接下来测试就要开始了,开始之前,我先用著名的CDM软件跑下我的SSD的性能。
这里先说下,我的SSD做系统盘,Win7 X64已经安装了很久了,盘现在已经工作在settle in状态了,这是啥意思哪?指的是盘上所有的NAND已经被数据填满过一次了,我的是OCZ VERTEX LE 100G,实际颗粒是128GB,也就是说我的C盘在出厂后(HDD ERASE)后写满过1次128G。所以我跑出来的速度是这样的。
在我刚装完系统那会儿,也就是盘上的NAND数据没被填满一次前,速度是这样的。
2者的区别么,就是写入数据时候,后者只需要写就行了,前者需要读-改-写。
我这里再放张图,这个是CDM跑0fill的成绩:
何谓0fill?就是测试数据模型编码里全部是0x00,也就是说数据可以被压缩到很小(压缩率基本无穷大)。
对SandForce的压缩算法来说,不管你的NAND是否“干净”,数据既然能被压缩到无穷小,那么就能跑出主控最佳性能了,这个成绩就是SandForce主控的最佳性能,也是官方广告宣传用的--标称值
当然官方跑的是ATTO软件,那个一样,数据模型也是FFFFFFFF或者00000000之类的数据,可以被压缩很小。(比前面提到的TXT,系统,数据库模型压缩的更小)
这里来张ATTO的测速图,官方宣传成绩依据。
可以看出,就算我的盘跑在settle in状态,跑ATTO还是能达到官方指标(因为数据模型可以高度压缩)。
-----------------------------------------------------------------------------------------------------------
IOMETER 2010 测试 OCZ VERTEX LE 100G。
运行软件,选择AVI这个文件模型。
软件启动了,设置测试块大小为2048000扇区(512BX2048000=1GB),软件会在C盘生成个1GB大小的iobw.tst文件用来测试,文件的模型采用的就是之前选择的AVI文件模型,队列命令深度设置为1(无NCQ)
新建个持续512KB持续写入的项
项目明细:4KB扇区对齐,512KB持续写入,持续100%。
测试1分钟后跑出的成绩,146.03IOPS = 146X512KB= 73MB/s
平均IO请求响应时间:6.8451ms
最大IO请求响应时间:224ms
CPU占用率:0.91%
这里的成绩和CDM默认跑的成绩一样哦,咋和官方指标一样差那么远哪? 285/275MB/s ,这差的也太远了吧。
接下来,我们再来看看这个。
同样的运行软件,这次我们选择Database为数据模型。
软件启动了,设置测试块大小为2048000扇区(512BX2048000=1GB),软件会在C盘生成个1GB大小的iobw.tst文件用来测试,文件的模型采用的就是之前选择的Database文件模型,队列命令深度设置为1(无NCQ)
新建个持续512KB持续写入的项
项目明细:4KB扇区对齐,512KB持续写入,持续100%。
测试1分钟后跑出的成绩,492.23IOPS = 492.23X512KB= 246.12MB/s
平均IO请求响应时间:2.0300ms
最大IO请求响应时间:153ms
CPU占用率:2.51%
如何?这里的成绩和CDM 0fill或者ATTO(NCQ 4队列深度会快,这里IOMETER只跑了1队列深度)跑的成绩差不多了吧,和官方指标也差不多。
结论:这两个测试唯一的不同就是在源数据模型的选择上,一个是AVI,还有个是Database,从前面WINRAR的压缩上我们看到了,文件编码不同,压缩比率是不同的,而SandForce的算法是压缩/解压,也就是说,文件能越能被压缩小,速度就会越快,反之,速度就等于纯的RAW(NAND颗粒)速度=80MB或者140MB(未settle in状态,相对100G容量8通道的SSD,像40G的那种是6通道的,效能为75%)。同样跑512KB的持续写入速度竟然差了那么多。
SandForce的主控制器很强劲,但是再强也不可能强过目前的顶级CPU,所以需要在压缩速度和压缩比上做下平衡,也就是说,SandForce压缩不一定会像WiNRAR有那样高压缩率,但是算法应该更适合他的效率。SandForce官方说过平均写入放大为0.55,那么压缩率就应该在平均55%附近了。(像前面那类TXT文档肯定是低于55%的)。
这说明啥?SandForce主控的SSD不适合放JPG,MP3,视频这类不容易压缩的格式,更适合存放数据库,文档,系统之类的,买SandForce的SSD做系统盘或者是数据库服务器是比较明智的选择。
----------------------------------------------------------------------------------------------------------------------------
最近某论坛在搞某品牌SSD的“官方”团购活动(给官方二字加引号的原因下文中有阐述),在观赏之余,发现了些比较让我不愉快的问题。这里我想提醒下购买的朋友。
这4个盘的成绩都是“假”的,图片是被PS过的,为啥我这么说,因为测试成绩为CDM的0fill或者1fill,而图片上方没有任何显示,看起来是默认跑的测试。希望购买的朋友不要被这个成绩欺骗,只能说这个所谓的官方行为不够“官方”,这类行为我表示很不开心。{:4_133:}
从成绩中,我们看出了A2和V2的本质区别,A2是限制10000IOPS的固件,而 V2是没有限制的固件。50000IOPS
-------------------------------------------------------------------------------------
前面提到的SandForce 40G, 80G都是 6通道的,性能会受到一定影响。官方给的指标看上去没区别,但是RAW的速度肯定是有区别的,自己领会。
正反12颗 4G颗粒,组成40G(48G物理)容量,6通道的SandForce SSD。 |