日期:2014-05-16  浏览次数:20551 次

SSD及其在数据库中的应用 (二)装配优化

    SSD装上后,并不一定就能发挥它最优的性能。最好按照下面的步骤过一遍。


1. 确保使用主板和SSD都能支持的最高接口标准

    用错了接口,可能导致性能减半或更糟;

    现在主流的SSD及PC机主板都支持SATAIII接口,需要小心的是,有些主板上同时有SATAII和SATAIII接口,请确保把SSD接到SATA6G(即,SATAIII)接口上了。


2. 不要把SSD的空间划分完,最好能留几个G的OP(预留)空间

     OP(Over-Provisioning)空间主要用于GC,WL,写入放大控制,TRIM数据交换等;

     该空间越大,稳定态性能就越好,企业级SSD常常会留出一般的空间作为OP;

     虽然厂家在SSD出厂前也预留了二级OP空间,但又不差哪几个G,多留点能换来更好的性能也值啊。


3. 4K对齐

     前面提到过,SSD的最小读写单元是Page(4K)。如果SSD没有4K对齐,直接导致的后果就是,读一页数据时,SSD必须从2个Page中读取,消耗了更多的IO。一般来说,如果SSD没有经过分区,win7下是直接4K对齐的。但如果经过了分区,默认是没有对齐的。可以通过工具 AS SSD Benchmark 来确实是否4K对齐了。下面的图例中,左图中红字显示 31K - BAD 就说明没有对齐。右图中,绿色显示 XXX K - OK 就表示对齐。

        

       如果没有对齐,且又已经在上面装了数据或系统,也不需要重新分区,重装系统。使用工具 Paragon Alignment Tool就可以很方便的帮你把SSD 4K对齐。


4. 使用AHCI模式

      使用这个SATA模式,主要是为了使用NCQ(本地命令队列)功能;

       这个功能可以优化执行队列,增加IO的并行度,同时也可以对中断进行合并处理,减少中断执行的时间,简单来说,就是可以IO加速。

       所以,需要确保使用了AHCI模式。这个功能同样也可以用 AS SSD Benchmark来查看。上面右图中msahci-OK,或iaStor-OK,就表示开启了AHCI模式。上面左图中 pciide-BAD,表明使用的老模式,即IDE模式,需要执行下面的步骤开启:

       (1)修改注册表,将HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci下的Start值改为0;

       (2)BIOS 中将 Integrated Peripherals 下的 SATA Mode 改成 AHCI;

       (3)重启,OK


5. 开启TRIM

     随着使用时间的推移SSD的性能会逐步退化,究其原因,是因为写了数据的块,要覆盖或修改时都必须先擦除,而擦除是很耗时的。TRIM的基础其实是ATA指令集。Windwos系统删除文件时,SSD并不知道。如果能够支持TRIM功能,那么系统就可以发ATA命令,告诉SSD,某个文件已经删除了,那么SSD就能在hash表中进行标注,注释这个文件对应的块为GC状态,在GC到来时,就可以提前擦除这些块。即便是复写这些块时,它们还没有被GC,但SSD已经知道它们是GC状态的,就可以不用再把这些块得内容读出,合并再写入,而是直接找别的空闲块写入。这样,在一定程度上可以部分缓解性能退化现象。

      执行命令 fsutil behavior QUERY DisableDeleteNotify

      如果返回 DisableDeleteNotify=0 说明系统开启了TRIM功能

      如果返回DisableDeleteNotify=1,则需要执行命令 fsutil behavior set DisableDeleteNotify 0

      如果是其他的返回,那么说明系统