PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

闲话SandForce——压缩光环的寿命增益

[复制链接]
跳转到指定楼层
1#
Essence 发表于 2013-1-6 18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:10889|回复数:33
本帖最后由 Essence 于 2013-1-6 18:02 编辑

SandForce公司将自己主控的压缩技术称为DuraWrite。压缩可以降低实际写入到NAND颗粒中的数据量,提升了SSD的寿命。根据SandForce公司的测试,在“典型负载”下,SandForce的写入放大率可以达到0.5的低水平。

毋庸置疑,在颗粒PE数一定的情况下,压缩可以降低写入放大率,延长SSD的写入寿命。实际效果如何呢,我们来进行一个模拟系统盘应用环境下的写入放大率测试,大家可以看一下验证的过程,而不必进行无谓的效仿了。

测试软件使用国外XtremeSystems论坛的Anvil’s Storage Utility,这款软件可以自由设定测试数据的可压缩率,并且集成了耐久度测试功能,正好方便我们今天的测试。


在软件界面最上方的Settings上单击,进入设置界面,左侧的Compression即为可选的测试数据模型。这里为了模拟系统盘的使用环境,我选择了46%(Application)程序模型,点击右下角的Save settings保存。然后点击软件左上方的Benchmarks,选择Endurance Test(耐久度测试)。


先记录下测试开始前,金士顿V+200 120G的SMART信息:E9=394;F1=409
这里解释一下,SandForce的SMART信息中,E9为NAND颗粒的实际写入量,而F1代表主机请求写入量。一般情况下,由于SSD的擦写机制与垃圾回收的作用,都会存在写入放大的情况,NAND实际写入的数据量会大于主机请求写入量。而SandForce的压缩算法打破了写入放大率必定大于1的定律,使得SSD可以拥有更长的写入寿命。


测试开始。为了在每轮测试中尽可能多的写入数据,我把最小保留空间从默认的12GB改为2GB。Anvil将会用设定的46%可压缩率的随机数据填充金士顿V+200,填充到只剩2GB空间时,删除所有写入的文件,然后重新开始填充新的随机数据,以此重复不断直至手动终止耐久度度测试。

最终我使用了1.35小时,一共向金士顿V+200中写入了超过500GB的数据,这个量已经是很多人正常使用数月时间才会写入的数据量的总和。

记录耐久度测试结束后的金士顿V+200 SMART信息,E9=780;F1=925。
根据之前的介绍,我们可以得出,在这1.35小时的持续测试中,NAND颗粒实际写入增量为386GB,而主机请求写入增量为516GB,根据写入放大率的定义,可以得出此过程中,写入放大率为386/516=0.748。

在这个实测的应用程序数据模型下,SandForce写入1GB数据时,实际写入NAND颗粒的只有0.748GB,乍看这一数据没有SandForce官方标称“典型环境可低至0.5”的数值漂亮,但的确更接近于真实系统盘应用的写入放大率。实际情况是,其他优秀主控的写入放大率普遍在1.1-1.5之间,正常使用环境下写入放大超过2的情况也并不少见,在对比中方能看到0.748的难能可贵,SandForce在同等颗粒质量的条件下能够获得接近双倍的预期写入寿命。而金士顿V+200使用的3000PE的颗粒将会发挥出相当于其他主控6000PE下的寿命水平。

当然,预期寿命只是预测理论值,一般正常使用情况下的SSD,都能够在超出标称PE值后还能正常超期工作。这意味着SandForce用户更没必要去担心盘的寿命问题了。为了降低SSD写入而移走虚拟内存文件和浏览器缓存、关闭Search服务等“优化”就显得杞人忧天了。

除了压缩特性带来的寿命增益,SandForce还支持有RAISE功能,在单盘条件下达成类似内部RAID5的功能,不但能修复超出ECC设计能力范围的错误,还能修复单个Page甚至整个Block损坏的罕见异常状况,给用户数据又加了一道保险。

主控和颗粒是SSD的两大件,说完SandForce主控,下一篇我会带来闪存的历史、类型与发展篇。敬请期待。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
Windyson 发表于 2013-1-7 08:30 | 只看该作者
SF这么强能进行实时压缩和解缩么
3#
CUDA 发表于 2013-1-7 10:01 | 只看该作者
Windyson 发表于 2013-1-7 08:30
SF这么强能进行实时压缩和解缩么

肯定是实时压缩了,不然写进去后再压缩,那就不是减少写入而是增加写入量了
4#
用户名已存在 发表于 2013-1-7 10:21 | 只看该作者
不知道SF的压缩和NTFS压缩哪个好?M4之类的启用NTFS压缩是不是也可以达到同样加速和提升寿命的效果?SF的话再启用NTFS压缩是否有必要?
5#
bvg 发表于 2013-1-7 10:24 | 只看该作者
NTFS压缩好像会增加磁盘碎片的,而且会占用CPU资源!
6#
evaeva 发表于 2013-1-7 10:46 | 只看该作者
这软件比AS SSD Benchmark专业!求下载地址
7#
Essence  楼主| 发表于 2013-1-7 10:55 | 只看该作者
evaeva 发表于 2013-1-7 10:46
这软件比AS SSD Benchmark专业!求下载地址

http://www.ssdaddict.com/apps/AnvilBenchmark_RC6.zip
8#
ggxuelei 发表于 2013-1-7 11:04 | 只看该作者
原厂MLC的3000PE肯定不用操心了,SF就更不用操心耐久度。就是期待SandForce能早日支持TLC,SF才是TLC的救世主
9#
黄老邪 发表于 2013-1-7 11:22 | 只看该作者
bvg 发表于 2013-1-7 10:24
NTFS压缩好像会增加磁盘碎片的,而且会占用CPU资源!

SSD其实不惧怕磁盘碎片,访问所有位置速度都是相同的。占用CPU资源应该才是最大的问题。

本来你是想让他快的,结果开了NTFS压缩后,CPU必须去处理,反而拖慢了。

SandForce则是主控在做这部分压缩解压的工作,不会拖慢系统速度。
10#
bssharp 发表于 2013-1-7 17:17 | 只看该作者
SF这个压缩使得逻辑地址和颗粒中物理地址的映射更加复杂了。
我始终想不通,比如一个4K数据被压缩后不足一个page,此时应该怎么写入?和后续数据凑在一起吗?如果上层OS用的块大小再不是4K……trim的时候又该怎么办?
算法的细节肯定是商业机密了,希望若干年后现在的SF变成教科书
11#
黄老邪 发表于 2013-1-7 19:44 | 只看该作者
bssharp 发表于 2013-1-7 17:17
SF这个压缩使得逻辑地址和颗粒中物理地址的映射更加复杂了。
我始终想不通,比如一个4K数据被压缩后不足一 ...

OS的操作块很多都是4K或者更大的4K整数倍的
用HDtune简单截取了一段:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
12#
1230 发表于 2013-1-7 22:35 | 只看该作者
我一天好像也就写7-9G的样子,500G的确顶上很多天了
13#
autume 发表于 2013-1-8 12:15 | 只看该作者
功能看上去挺丰富的,有个疑惑,Compression压缩率是指数据可以被压缩到这个百分比,还是能被压缩减去这个百分比?
14#
Essence  楼主| 发表于 2013-1-8 18:42 | 只看该作者
autume 发表于 2013-1-8 12:15
功能看上去挺丰富的,有个疑惑,Compression压缩率是指数据可以被压缩到这个百分比,还是能被压缩减去这个 ...

可以被压缩到原来大小的百分比
15#
98118 发表于 2013-1-8 22:52 | 只看该作者
压缩写入后,是不是盘的可用空间相对多了?也就是480g的盘能放入>480g的数据?
16#
ggxuelei 发表于 2013-1-9 07:54 | 只看该作者
98118 发表于 2013-1-8 22:52
压缩写入后,是不是盘的可用空间相对多了?也就是480g的盘能放入>480g的数据? ...

不会。
主控压缩后写入到颗粒内,只是占用颗粒的空间少了,磨损低了。但是OS从文件系统上看,还是占用了原来的大小,所以不能多存入更多数据
17#
basic 发表于 2013-1-9 10:33 | 只看该作者
0.75,这写入放大率这么低,还是很厉害了
18#
pc028 发表于 2013-1-9 10:54 | 只看该作者
SandForce好像很强大呀,压缩功能独此一家,不知道是SandForce申请了专利还是别人压根没这实力!
19#
hazjp 发表于 2013-1-9 14:35 | 只看该作者
ggxuelei 发表于 2013-1-9 07:54
不会。
主控压缩后写入到颗粒内,只是占用颗粒的空间少了,磨损低了。但是OS从文件系统上看,还是占用了 ...

我对这点有点不理解,比如我1G的数据,通过主控压缩写入ssd,压缩率0.6,那么实际写入颗粒的量不就是600M嘛,占用空间小,为什么剩下400M就不能用了??
还有,日常实际使用中的操作,到底有多少是可压缩数据?压缩比率到底有多少?
20#
ggxuelei 发表于 2013-1-9 15:30 | 只看该作者
hazjp 发表于 2013-1-9 14:35
我对这点有点不理解,比如我1G的数据,通过主控压缩写入ssd,压缩率0.6,那么实际写入颗粒的量不就是600M ...

虽然实际NAND空间是节省了,但是SandForce不允许写入更多。因为还得防着点最倒霉的情况:数据是完全不可压缩的,那写进NAND的可不止数据本身那么多了,SandForce还的维护一些元数据,记录压缩的相关情况。感觉SF的FTL肯定是异常复杂的,如果要把节省下来的空间释放出来,可能会产生更多风险和不可控的东西,所以最后才没开放那些空间,毕竟那部分空间的大小也是随时变化的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部