0. 常识
参考: https://www.jianshu.com/p/nQpqsN
1)BIOS设置为AHCI;
2)购买SSD的1年内,每隔几个月去官网检查是否有固件升级;
3) 有条件的加满RAM,因为它比SSD便宜。
4)不要使用TLC芯片的SSD
5)不要做碎片整理操作Defragmentation
6)不建议开启hibernation休眠功能,因为会有大量的数据读写。但是从笔记本使用角度来说,还是开着吧,关了也要操作很多配置。
1. 开启TRIM功能
SSD要保持长期稳定和速度,就需要启用TRIM,这是让SSD在非尖峰读写时间才去真正抹除芯片上被标记抹除的资料。
1) 首先,检查内核版本是否支持TRIM:
uname -a
2) 然后,检查SSD硬盘是否支持TRIM:
hdparm -I /dev/sda
3) 如果显示比如(不同硬件可能不同提示):
* Data Set Management TRIM supported
4) 要开启TRIM支持,就得编辑fstab,在指定的磁区挂载选项加上discard,这个设置。
这一步用在所有/
或者/home
等分区,不要用在/swap
如果有/boot/efi
分区,不要加进来,不需要。swap也不需要
参考: http://blog.sina.com.cn/s/blog_6cc181070101rty5.html
UUID=f7d482bf-e210-474a-8d09-1e28c14fbc30 / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
5) 其中noatime
, nodiratime
是禁用
noatime
是为了,当访问文件时,系统会更新last-access
这个文件/目录元数据,设置noatime
后可以减少这种操作。但这个操作会影响系统性能,所以设置成定时清除
nodiratime
最好不要禁用?
6) 测试新的fstab
文件:
mount -oremount /dev/sda1
然后挂载:
mount
如果显示discard
字样,说明成功,如:
/dev/sda1 on / type ext4 (rw,discard)
2. swap配置
在/etc/sysctl.cnf
末尾加入vm.swappiness=1
, 代表着尽量不使用交换空间, 除非是内存已经用完了。
或者
通过设置/proc/sys/vm/swappiness
里面的值,来减少swap换出量:
echo 1 > /proc/sys/vm/swappiness
0到100之间,值越大换出量越大。
3. 将 /tmp
以tmpfs
形式挂载
1) 如果内存够大,可以用ramdisk的方式,将一些经常变化的位置如/tmp放入内存,加快速度,减少对SSD的访问
sudo gedit /etc/fstab
在文件的最下面加上这一行
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
重启或不重启,用 sudo mount -o remount /
也可以
2) 记得将浏览器等程序的缓存目录设置到/tmp
下
设置firefox的缓存移到
/tmp
:
打开firefox,输入about:config
打开设置。添加一个新字符串,名称为:browser.cache.disk.parent_directory
,值为/tmp
要检查的话,浏览地址输入about:cache
Chrome设置 Chrome 在Linux下cache的位置是
~/.cache/google-chrome/Cache
.
参考:http://teckoo.com/knowledge/linux/ssd.html
第一种:cd ~/.cache/google-chrome/Default rm -rf Cache ln -s /tmp Cache rm -rf Media\ Cache ln -s /tmp Media\ Cache
第二种: make the entire cache folder to /tmp
cd ~ rm -rf .cache ln -s /tmp .cache
4. 关闭日志文件
参考:http://www.cnblogs.com/0xcafebabe/p/4491140.html
针对
EXT4
文件系统,选择了Ext4
系统,接下来需要关闭日志功能(只针对EXT4分区)
没有日志的情况下,文件系统更容易损坏,如突然断电,如果你甘愿冒这样的风险,从而延长SSD使用寿命,值得一试
1) 首先,系统挂载时无法停用日志功能,所以需要进入刚才的U盘系统,利用root
权限执行:
tune2fs -O ^has_journal /dev/sda1
即关闭/dev/sda1
上的日志功能。其它所有EXT4分区
都要这么处理
2) 然后,运行操作系统检测:
e2fsck -f /dev/sda1
不这样,文件系统可能会出错。
3) 最后,重启,进入SSD中的系统,检查是否设置成功:
dmesg | grep EXT4
如果出现:
EXT4-fs (sda1): mounted filesystem without journal
说明设置成功。原来是:
mounted filesystem with ordered data mode
4) 如果需要再次开启日志功能,只要运行
tune2fs -O has_journal /dev/sda1
5. 使用noop磁盘调度
通常操作系统调度机械硬盘时会提供一些数据的物理位置,这样有利于机械硬盘优化寻道,但是对SSD没意义,所以采用
noop
磁盘调度,即简单发送请求,可以提高效率。
可以通过以下命令查看调度方法:(下面被中括号选中的表示当前的调度算法)
cat /sys/block/sda/queue/scheduler
比如显示:
noop [deadline] cfq
配置文件/etc/default/grub
将
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video-1024x768M@75m"
修改为:
GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop quiet splash video-1024x768M@75m"
6. 测试SSD速度
sudo hdparm -Tt /dev/sdX
这个X
是a
或b
,看你的SSD是第一个或第二个硬盘。我的是sda。
Timing cached reads: x MB in y seconds = z MB/sec
这是读的速度,与你的SSD支持SATAII或SATAIII、以及上面的DRAM读的速度有关。
Timing buffered disk reads: x MB in y seconds = z MB/sec
这个才是真正的SSD读的数值。
我的就是这样的结果:
/dev/sda:
Timing cached reads: 7148 MB in 2.00 seconds = 3576.12 MB/sec
Timing buffered disk reads: 1298 MB in 3.00 seconds = 432.40 MB/sec
7. 分区对齐
0) 貌似不用考虑这步了,近年来SSD在出厂时已经对齐了
1) 分区对齐(使用LiveUSB)
在LiveUSB内使用gparted
分区后,再验证一下:
sudo fdisk -lu
看每个分区起始的数字,能被8整除,就是4K
对齐。
另查看Sector size (logical/physical): 512 bytes / 4096 bytes
,物理对齐为4k。
2) 分区时选择ext4
;如果同时有普通硬盘存在,swap
放普通硬盘上;无需单独分出/home
;
8. 定期检查SSD状态,并做数据备份
可以使用命令sudo smartctl -data -A /dev/sda
查看SSD状态,观察寿命。
233一行的值就是寿命,默认为100,当小于10的时候就要非常注意了。
通过这个命令来检测某个硬盘的健康状况
smartctl -s on -a /dev/sda
硬盘的SMART信息包含很多部分。其中,”READ SMART DATA”部分显示出硬盘的整体健康状况。
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment rest result: PASSED
这个测试的结果是PASSED
或FAILED
。后者表示即将出现硬件故障,所以需要开始备份这块磁盘上的重要数据!
@leatherwang