《FTL之垃圾回收、写放大和OP 》总结

来自 http://www.ssdfans.com/?p=1840

写放大WA:

对空盘来说(未触发GC),写放大一般为1,即Host写入多少数据,SSD写入闪存也是多少数据量(这里忽略SSD内部数据的写,如映射表的写入)。在Sandforce控制器出来之前,写放大最小值为1。但是由于Sandforce控制器内部具有实时数据压缩模块,它能对Host写入的数据进行实时压缩,然后再把它们写入到闪存。举个例子,Host写入8KB数据,经压缩后,数据变为4KB,如果这个时候还没有垃圾回收,那么写放大就只有0.5。

一共36个方块,其中有12个有效数据块,我们做完垃圾回收后,需把这12个有效数据块写回:

后面还可以写入24个方块的Host数据。因此,为了写这24个方块的Host数据,SSD实际写了12个方块的原有效数据,再加上该24个方块的Host数据,总共写入36个方块数据,按照写放大定义。WA= 36/24 = 1.5 。

写放大越大,意味着写入闪存的数据越多,对闪存磨损就越厉害,因此,SSD设计的一个目标不是没有蛀牙,而是让WA尽量小。减小写放大,可以使用前面提到的压缩办法(主控决定),顺序写也可以减小写放大(垃圾集中,但顺序写可遇不可求),还有就是增大OP (这个可控)。

增大OP怎么就能减小写放大

先定义OP比例=(闪存空间-用户空间)/用户空间

还是以前面SSD空间为例,SSD容量是180个小方块,当OP是36个小方块时,整个SSD空间为216个小方块,OP比例是36/180= 20%。那么180个小方块的Host数据平均分摊到216个小方块时,每个小方块的平均有效数据为180/216 = 0.83,一个Block上的有效数据为0.83*9 = 7.5,也就是一个Block上面平均有7.5个小绿块和1.5个小红块。为了写1.5个Host数据方块,需要写9个方块的数据(原有7.5个有效数据,加1.5个Host数据),写放大是9/1.5 = 6。

如果整个SSD闪存空间不变,还是216个小方块,调整OP比例至72个小方块 (OP比例50%),因此,SSD容量就变成144个小方块。144个小方块的Host数据平均分摊到216个小方块时,每个小方块的平均有效数据为144/216 = 0.67,一个Block上的有效数据为0.67*9 = 6,也就是一个Block上面平均有6个小绿块和3个小红块。为了写3个Host数据方块,需要写9个方块的数据(原有6个有效数据,加3个Host数据),写放大是9/3 = 3。

从中看出,OP越大,写放大减小。很好理解,OP越大,每个Block有效数据越少,垃圾越多,因此需要重写更少的数据,因此写放大越小。同时,由于GC需要重写的数据越少,SSD满盘写性能也越好。

OP大小和写放大以及SSD耐写性的关系见下图:

总结一下: WA越小越好,因为越小意味着对闪存损耗越小,可以给闪存延年益寿;OP越大越好,OP越大,意味着写放大越小,意味着SSD写性能越好。

转载于:https://www.cnblogs.com/Caden-liu8888/p/7380002.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值