文件系统层

原理

减少不必要的写,可以提升SSD的性能,并增加SSD的寿命。

方法1:不记录文件的最后访问时间

一些linux发行版,会记录文件的最后访问时间,所以每次访问一个文件,都会更新元数据,产生大量的写操作,所以当不关心最后访问时间的话,可以打开这个选项。
vim /etc/fstab
/dev/sda1 / ext3 noatime 0 0

方法2:TRIM机制

如果没打开TRIM机制,操作系统仅公将其标记为删除,实际磁盘上并没有删除,这对于传统磁盘是没有问题的,传统磁盘可以在一次操作中,修改磁盘数据。但是对于SSD来说,要先擦除,然后才能写,需要两次操作。如果打开了TRIM机制,删除文件时,会擦除相应的块,所以下次写的时候,仅需要一次操作就可以了。

磁盘调度算法

CFQ:针对机械磁盘设计的算法,不适用于SSD。
Deadline:在高写压力下,保证读的RT。
NOOP:FIFO
修改调度算法:
echo deadline > /sys/block/sda/queue/scheduler

swap和tmp

swap分区尽量放到机械磁盘上而不是SSD。
如果内存足够够的话,可以关闭swap。echo 0 > /proc/sys/vm/swappiness
tmp尽量使用内存(ram disk),而不是建在实际硬盘上。

应用

对于过度使用硬盘的应用,如浏览器的缓存,最后建在机械硬盘上,而不要建在SSD上。

分区对齐

分区对齐对于SSD来说非常重要,因为在SSD上,读和写都是以页(包含多个块)为单位进行的。如果分区没有对齐,当文件系统写的块大小与SSD的块大小没有对齐的话,当数据跨页边界话,会造成对磁盘的多次访问。

参考资料

http://apcmag.com/how-to-maximise-ssd-performance-with-linux.htm

Comments

2014-09-29