Linux下固态硬盘优化

前段时间随手查查资料,发现在固态硬盘下跑Linux系统需要优化,主要是减少写入损耗和读写优化。

环境:Debian 8 amd64

swap分区

得看内存够不够,以及是否需要休眠了

内存充足

如果你内存够用,而且不需要用休眠这个功能,可以直接把swap分区去掉,在/etc/fstab/中,找到形如

1
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw 0 0

的一行,注释掉就可以了。

内存容易满

据说(反正我没遇到过)如果不开swap而内存又满了的话,会死机。这样的话,只能降低swap分区使用率了(当然如果你电脑上还有个机械硬盘的话,直接在机械硬盘上划swap分区就好了)

编辑文件/etc/sysctl.conf,在最后加入一行

1
vm.swappiness=10

该参数是设置swap使用率的,数字越大,则越积极地使用swap分区,Debian Wiki上让设的1,我保守设成10。另外,资料建议新建文件/etc/sysctl.d/local.conf,把上面的参数写到这个文件里。

文件读取时间

我分的ext4文件系统,每次访问文件都会有时间记录,产生一次硬盘写入。编辑文件/etc/fstab,在固态硬盘的分区配置的第四个参数加入relatime,如

1
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 relatime,errors=remount-ro 0 1

由于有些软件(据资料说)在关闭该功能的情况下会出问题,所以使用参数”relatime”而不是”noatime”。

将内存部分空间挂载到/tmp

/tmp目录用于存放临时文件,所以会经常被写入,可以利用tmpfs,使用内存作为存储空间,一来优化速度,二来减少对固态硬盘的写入。我所使用的发行版是Debian,开启很简单,编辑文件/etc/default/tmpfs,找到#RAMTMP=no,修改为RAMTMP=yes

然后好像还要将一个服务设为开机启动(好像Debian7不用)

1
sudo systemctl enable tmp.mount

重启一下就好了

挖坑

还有些优化没整,先记着,之后也许会补

参考资料

Debian Wiki: SSDOptimization

Solid State Drives (简体中文) - ArchWiki

Anything-sync-daemon (简体中文) - ArchWiki