最近入了一块 SSD,顺便把系统换成了 Fedora 20,这里整理以下 Linux 下 SSD 优化的一些相关知识。

PS:台式机换乘笔记本,网页看视频啥的,各种卡啊,低配小本伤不起,万恶的 Flash。

调整挂载参数

编辑 /etc/fstab,加入如下挂载参数

  1. btrfs: ssd, noatime
  2. ext4: noatime

至于其他的优化参数可以参考 btrfs wiki,料多了也不好,特别是硬盘上的,还是稳妥点,不要乱加了,我这就只加了 ssd,我的加完以后是这样的:

#
# /etc/fstab
# Created by anaconda on Fri Sep 12 20:48:12 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=772eae0d-7072-4613-83f4-7dee7473e8e4 / btrfs ssd,noatime,subvol=root 0 0
UUID=a20bebe6-9e98-4fc9-adf4-2223301a2ddc /boot ext4 noatime,defaults 1 2
UUID=772eae0d-7072-4613-83f4-7dee7473e8e4 /home btrfs ssd,noatime,subvol=home 0 0
UUID=45943224-e329-49d7-bce7-5ddc73d1be25 swap swap defaults 0 0

以上还未开启 TRIM 功能,后面会使用 crond 每周定时 TRIM,这样比加入参数 discard 更好一些,不用每次删个文件就 TRIM 一次。

将日志、临时文件、网页缓存等放入内存中

为了延长 ssd 寿命,尽量减少对 ssd 的频繁读写,就将日志,缓存,临时文件直接放到内存中。

注意,这一步,清先想一下是否要这么做,放到内存中重启可就没了哦。

1. 将日志和临时文件挂载到内存中

/etc/fstab 文件下加入以下内容

#SSD optimization, /var/log/ to RAM
none /var/log/ tmpfs size=10% 0 0
#SSD optimization, /tmp to RAM
none /tmp/ tmpfs size=10% 0 0

2. 强制 firefox 使用内存作为缓存

进入 about:config (在地址栏输入回车就行了),确认“我保证会小心”。

  1. 找到 browser.cache.disk.enable 项,并将值设定值 false这样就禁用了磁盘缓存
  2. 确认 browser.cache.memory.enable 项值为 ture保证内存缓存是开启的
  3. 添加 browser.cache.memory.capacity 整数项,并设置值为 -1确保只缓存需要缓存的内容

使用 crond 开启定时 TRIM

1. 新建 TRIM 脚本,这里文件名为 trim.sh,内容如下

#!/bin/sh
# call fstrim to trim the specified device and write a log in user' s home directory.
LOG=/home/user/fstrim.log
set -e
echo "*** $(date -R) ***" >> $LOG
exec /sbin/fstrim -v / >>$LOG

这里的 user 修改为你的用户名,当然,如果你也可以将日志放在其他地方,请自行修改。

2. 赋予可执行权限并设置为每周执行一次

chmod +x trim.sh
sudo mv trim.sh /etc/cron.weekly/

要确定你的 cron 服务是开启的,在使用 systemd 的系统上使用此命令确认

systemctl status crond.service

# 如果没有开启使用以下命令开启
# systemctl start crond.service

参考

  1. Optimization for an SSD? - Ask Fedora
  2. btrfs Wiki