洋兄弟们为断电测试设计了3种workload:
Current Random Write: 并发随机写
Current Seq Write:并发顺序写
Single Thread Seq Write: 单线程随机写
先看Current Random Write:
在有Over Provision的情况下,SSD总会预留一些free block去应对写入的数据,从这个角度,不管是Seq Write还是Radom Write对Performance没什么影响。不同之处在于,Seq Write的情况,FTL会用一串连续的物理页映射写入的连续逻辑页,这样一来,会减少Mapping Table所需的空间(原文如此,我还没想明白原因,请高人指定),二来这种连续的数据GC的时候merge的操作会比较少。而Random Write导致Flash上的数据比较分散,GC的时候会有更多merge的操作,把不同Block里valid page合并到一个新的Block里。所以,Random Write的压力比较大。为了进一步的提高压力,测试时采用多个线程同时进行Random Write以充分利用SSD内部的各级并发机制。
Current Seq Write:
在几段连续的空间,同时进行Seq Write,设计的比较好的FTL能够识别出这种情况,充分利用内部资源进行并发。而设计的不好的FTL则可能将这多个顺序写当成一堆随机写处理,所以有了第三个workload- single thread seq write。