最近在折腾Ubuntu系统,想工作上能更专注一些,下面是一些经验吧算是。
0x00
查看SSD以及系统环境是否支持Trim
系统需要满足如下条件才能开启trim
3. 分区格式为 ext4(或 BTRFS)
对于ubuntu14.04,内核版本已经升级到4.x,系统层面支持不是问题
对于查看SSD是否支持Trim可以采用下面方法验证
如下面的输出即是支持的,输出中明确supported
loong@LOONG:/etc/cron.weekly$ sudo hdparm -I /dev/sda | grep "TRIM"
[sudo] password for loong:
* Data Set Management TRIM supported (limit 8 blocks)
0x01
Ubuntu系统从14.04已经默认对知名的SSD固态硬盘做了每周的定时Trim
具体支持哪些固态硬盘可以参考 http://askubuntu.com/questions/18903/how-to-enable-trim ,由于使用的是系统cron的定时命令执行,我们不必担心某一周执行时机器关机。
如下,在cron.weekly里有相关配置
loong@LOONG:/etc/cron.weekly$ ls
0anacron apt-xapian-index fstrim man-db update-notifier-common
而fstrim脚本内容即为执行trim的命令,如下
loong@LOONG:/etc/cron.weekly$ cat fstrim
#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e
# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g. https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all
0x02
所有的linux系统可以采用在ext4分区增加discard选项方式增加trim支持,但是效率较低,已经被Deprecated ,不建议使用
开启方法为在/etc/fstab中要支持trim的分区增加discard参数,如下
UUID=f0c140a1-3118-4bdf-a4b9-9d9ca13c11d6 / ext4 discard,errors=remount-ro 0 1
0x03
判断trim是否生效
可以参考http://askubuntu.com/questions/18903/how-to-enable-trim 中的方法
0x04
关于SSD分区自动对齐
用SSD的都应该知道,SSD分区是否进行4k对齐对性能以及SSD寿命的影响巨大,那么在分区时就需要注意,下面是分区方法以及验证是否4K对齐方法
下面引用自http://www.slblog.net/2013/07/enable-trim-and-perform-4k-alignment-in-ubuntu/
先说说这个 4K 对齐。有人说用 GParted 直接分区会自动进行 4K 对齐,而更普遍的说法则是分区时在 “Free Space Preceding” 处填上一个整数(比如1或2,如下图)。我使用了后面那个方法,因为我是装完系统才知道前面那个(更新:经测试前面那个方法是有效的)。
测试是否 4K 对齐很简单,在终端运行 $sudo fdisk -l 然后查看各分区的起始扇区,如果是8的倍数则表明该分区已经“4K 对齐”了(如下图,Start 一栏的数值全部为8的倍数)。
0x05
总结
如上即是在Ubuntu优化(折腾
)过程中关于硬盘的优化部分了,其中学到了- 查看4k对齐的方法,还好新分的分区已经是对齐过了的,应该是ubuntu系统在安装时格式化已经处理了这个问题
- linux系统中定制执行的cron机制,可以利用这个做些类似windows系统下计划任务的事情
0x06
参考文档
1.http://www.slblog.net/2013/07/enable-trim-and-perform-4k-alignment-in-ubuntu/