睿达资讯
垃圾回收,就是把某个闪存块上的有效数据(下图中字母方块)读出来,重写,然后把该闪存块擦除,就得到新的可用闪存块了。
由于垃圾回收(GC)的存在,就有一个问题,用户要写入一定的数据,SSD为了腾出空间写这些数据,需要额外的做一些数据的搬移,也就是额外的写,最后往往导致SSD往闪存中写入的数据量比实际用户写入SSD的数据量多。因此,SSD中有个重要参数,就是写放大:
垃圾回收可以简单地分为三步:
前台垃圾回收(Foreground GC):当用户写入数据时,如果可用的闪存块小于一定阈值,这时就需要做垃圾回收,以腾出空间给用户写。这是被动方式,它是由于SSD没有多少可用的闪存块时,才去做的GC。
后台垃圾回收(Background GC),它是在SSD空闲(Idle)的时候,SSD主动去做的GC,这样在用户写入的时候就有充裕的可用闪存块,从而改善用户写入性能。
加入我们