http://diy.intozgc.com/187/187487.html
走进中关村【原创】 作者:大鸟 责任编辑:大鸟 日期:2009年04月09日 19:42
■通俗解释SSD磁盘碎片
前面我们已经系统的解释了均衡磨损算法、磁盘碎片等概念,不过我们有点担心说的太过潦草,让人不明究里。下面,我们就用大家都熟悉的学生宿舍居住方式,来解释SSD磁盘碎片的产生,以及为何会影响性能。
我们知道,SSD硬盘内部是按照BLOCK的方式来划分区域的,一个BLOCK拥有4个PAGE,一个PAGE的容量一般是4KB。如果把它看做是学生宿舍,那么情况大概是这样,一幢宿舍楼有若干层(BLOCK),每层有4个房间(PAGE),每个房间住4个学生(一个人相当于1KB)。
在正常情况下,每个宿舍都应该是住满了4个学生后,再开辟一间新的宿舍,这和采用均衡磨损算法的情况完全一样。不过,在所有宿舍都住上学生后,问题就出来了。
每个宿舍的学生不会是完全稳定的,比如过些日子,某些宿舍的某些学生离开学校了。那么他就空出了床位,而学校也会安排新生住进去。可是,就是在安排新生住进去的时候,管理宿舍的人就有点迷糊了,因为每个房间都曾经住过学生,哪些房间会有空床呢?
就在宿舍管理员还没彻底搞明白前,校长办公室又来指令(均衡磨损算法),宿舍必须一个接一个住满学生。可怜的管理员彻底晕了,他只能重新彻底再次编排一下宿舍,把所有学生都叫出来,然后再一个个安排进宿舍。如果这种事情发生在SSD硬盘上,结果明显,那就是系统速度慢下来了,因为内部正在进行数据整理。
当然,问题还不仅如此,当管理员好不容易重新安排了学生宿舍后,学校班主任要求管理员把他们班的学生都找出来上课。而在之前的宿舍重新调整行动中,这个班的学生分散在整个大楼所有楼层若干房间中。要想通知到他们,管理员必须从一层爬到最高层。如果这体现在SSD硬盘中,结果就是应用软件运行速度很慢。如果用硬盘术语,这就是磁盘碎片太多,影响软件效能。
从上面的描述来看,当SSD硬盘容量基本用完时,混乱最容易发生。因为管理员(SSD硬盘控制器)、校长办公室(均衡磨损算法)、班主任(应用程序)三者不停在发生冲突。如果硬盘很空,那还要安排一些,大不了就是多占用一些宿舍,起码不容易出现反复调整数据结果的情况。
那么,从上面来看,有没什么好的方法解决这个问题呢?目前来看,可以减少每个宿舍住的人数,比方做到1KB/1 PAGE。但是这样一来,宿舍管理员日常的任务就重了,管100个宿舍就不轻省,管400个宿舍,每天就更加不容易。
当然,如果没有均衡算法捣乱也会好很多,见缝插针,那个宿舍空就去哪个,但这样又不能保证SSD使用寿命。
总之,磁盘碎片的问题目前对于SSD来说,还是一个非常难解决的问题。也许增加系统缓存是一个好方法,但如果没有好的算法(管理方式)之前,恐怕也不会有很好的结果。我们还是要期待上游厂家能够有更加天才的设计,不过无论如何,SSD前景还是光明的,毕竟没有哪款产品一出现就没有任何问题,而且我们先前讨论的情况也非常极端,用户未必就一定能碰到。