SSD损坏的原因是一个点写的次数过多了,优化的方式就是减少总的写入量。

1.更改BLOS中磁盘读写设置为AHCI,改为顺序写,提高读写效率

2.将SSD分一个区,如果是多个区就要注意文件系统的块开头和SSD的块开通对齐,否则就会文件系统的一个块写转换成硬件就是两个块写,是为骑马。

3.更改系统挂载文件/etc/fstab 首先搞清楚SSD挂在了哪里?一般情况下是sdb

$ df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 ext4 59G 8.0G 48G 15% /

在fstab中添加“noatime,nodiratime,discard”参数

UUID=123456-123-123-123-123456 / ext4  noatime,nodiratime,discard,errors=remount-ro 0 1

如果你内存充裕,在末尾加上如下3句话:

tmpfs /tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

4.用之前安装的系统盘进入到试用模式下,执行如下命令清除掉EXT4的journal

sudo tune2fs -O ^has_journal /dev/sdb1

5./etc/rc.local可以在里面加一些启动命令 更改内核的磁盘调度算法,SSD不需要,就要noop最简单,

echo noop > /sys/block/sdb/queue/scheduler
echo 1 > /sys/block/sdb/queue/iosched/fifo_batch

更改内存脏页写回SSD的时机,整体配置是减少写入量,台式机一旦掉电会丢失相关工作,需谨慎

echo 50 > /proc/sys/vm/dirty_ratio
echo 10 > /proc/sys/vm/dirty_background_ratio
echo 6000 > /proc/sys/vm/dirty_expire_centisecs
echo 30000 > /proc/sys/vm/dirty_writeback_centisecs

6.把一些经常写的目录挂到内存中去

ln -sf /run/lock /var/lock
ln -sf /tmp/.viminfo .

主要是浏览器 Firefox

* 打开Firefox,输入about:config
* 单击右键新建String类型
* 添加 browser.cache.disk.parent_directory 将值设为 /tmp
* 重启Firefox

Chrome

cd ~/.cache/google-chrome/Default/ && rm -rf Cache && ln -sf /tmp Cache

7.关于journal和noatime对SSD的影响,请参考TedTs'o大神的文章
SSD’s, Journaling, and noatime/relatime

8.通常安装硬盘和ssd之后,应尽量将ssd分一个分区,双系统分给自己最常用的系统,如果分给linux,就需要将grub安装到ssd设备上,才能保证成功引导.


linux下SSD优化来自于OenHan

链接为:http://oenhan.com/linux-ssd-optimization

发表回复