写入放大:谈起这个词儿小编就胆寒
宁道奇 发表于:11年06月17日 12:00 [转载] 小熊在线
写入放大:谈起这个词儿小编就胆寒
WA(Write amplification)写入放大
因为闪存的特性决定了,在写入数据之前必需先对闪存存储单元进行擦除才能改写。在执行这些操作的时候,移动或重写用户数据和元数据不止一次。这些多次的操作,减少了SSD的写入寿命也增加了无谓的写入量。写入放大系数是SSD控制器实际写入区块的容量总和与实际文件大小的比值。写入放大为1时是最合适的,也就是说,你想写入16KB的文件,SSD实际写入了16KB的文件,更高的写入放大意味着SSD更短的寿命和更低的性能。因此,写入放大是衡量主控性能的重要指标。所有的算法优化技术都是为了降低写入放大。
早在2008年,Intel公司和SiliconSystems公司、第一次提出了写入放大并在公开稿件里用到这个术语。他们当时的说法是,写入算法不可能低于1,但是这种说法在2009年被SandForce打破,SandForce说他们的写入放大是0.55。需要指出的是SiliconSystems公司也正式在2009年被西数收购的高端SSD公司。
上文已经指出一个页的容量是4KB,一个块的容量是256个页,即1024KB。那么最坏的情况是实际写入一个4KB容量的数据,导致了整个块的1024KB容量数据的写入操作。这里的写入放大系数就是256倍。当然这也是最坏的情况。这不仅仅耗费了闪存芯片的P/E周期,也大大影响了SSD的读写性能。
写入放大也有两种情况需要分别考虑。一种是持续的写入,在连续的空闲块进行数据写入,有可能将放大写入系数控制在1以内。实际应用中一般会在1与2之间。同时厂商和消费者可以预设一定的OP,来进一步减少写入放大。例如,你有一个256GB的SSD固态硬盘,你仅仅划分出128GB的容量来进行存储,那么一旦你遇到最坏的整块重写情况发生,那么你也能将对NAND闪存的损耗减少3倍。
另一种是随机4KB写入,目前的SSD主控芯片对于100%的4KB随机写入控制的都不错。即使再最坏的情况下写入放大的系数也会控制在20倍以内。