在linux下开启TRIM对SSD性能优化
来源:互联网 发布:淘宝店名制作 编辑:程序博客网 时间:2024/06/05 10:45
1)Trim的作用
原本在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,
再将新的数据写入到磁盘中。而在删除数据时,Windows只会在此处做
个标记,说明这里应该是没有东西了,等到真正要写入数据时再来真正
删除,并且做标记这个动作会保留在磁盘缓存中,等到磁盘空闲时再执行。
这样一来,磁盘需要更多的时间来执行以上操作,速度当然会慢下来。
而当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不
向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。
Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删
除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的
时候,由于NAND 闪存保存数据是纯粹的数字形式,因此可以直接根据
Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花
时间去擦除原本的数据。
以上就是Trim的原理以及真正作用。
注意:如果SSD组RAID0后,将失去Trim功能
2)网上常见的方法是在挂载SSD分区时加(/etc/fstab)入discard参数,
但是有人的观点是这样做对大多数SSD来说并不是一个好方法,这里介绍
另一种方法——通过cron的daily任务来实现。下面介绍过程,非常简单
A)确定内核版本在2.6.33以上(archlinux保持更新的话无需关心这一点)
B)确保SSD支持TRIM,方法为终端运行:
sudo hdparm -I /dev/sda | grep "TRIM supported"
查看输出是否有TRIM supported字样(上面命令中sda根据实际情况进行替换)
C)确保分区是btrfs或者ext4
D)在/etc/cron.daily/下添加一个文本文件,这里就叫做trim,然后用编辑器
(sudo)打开,输入下面内容:
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
保存退出。最后两行是核心命令,这里举的例子适用于“/”和“/home”独立分区
并挂载SSD的情形,实际情况因人而异,须做相应调整。
你可以先在终端运行
sudo fstrim -v /
来查看fstrim是否可以正常运行,输出应该类似于:
/: 8158715904 bytes were trimmed
E)给/etc/cron.daily/trim增加可执行权限:
sudo chmod +x /etc/cron.daily/trim
F)这样就可以保持trim始终在后台运行了(当然你需要crond的后台进程)
原本在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,
再将新的数据写入到磁盘中。而在删除数据时,Windows只会在此处做
个标记,说明这里应该是没有东西了,等到真正要写入数据时再来真正
删除,并且做标记这个动作会保留在磁盘缓存中,等到磁盘空闲时再执行。
这样一来,磁盘需要更多的时间来执行以上操作,速度当然会慢下来。
而当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不
向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。
Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删
除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的
时候,由于NAND 闪存保存数据是纯粹的数字形式,因此可以直接根据
Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花
时间去擦除原本的数据。
以上就是Trim的原理以及真正作用。
注意:如果SSD组RAID0后,将失去Trim功能
2)网上常见的方法是在挂载SSD分区时加(/etc/fstab)入discard参数,
但是有人的观点是这样做对大多数SSD来说并不是一个好方法,这里介绍
另一种方法——通过cron的daily任务来实现。下面介绍过程,非常简单
A)确定内核版本在2.6.33以上(archlinux保持更新的话无需关心这一点)
B)确保SSD支持TRIM,方法为终端运行:
sudo hdparm -I /dev/sda | grep "TRIM supported"
查看输出是否有TRIM supported字样(上面命令中sda根据实际情况进行替换)
C)确保分区是btrfs或者ext4
D)在/etc/cron.daily/下添加一个文本文件,这里就叫做trim,然后用编辑器
(sudo)打开,输入下面内容:
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
保存退出。最后两行是核心命令,这里举的例子适用于“/”和“/home”独立分区
并挂载SSD的情形,实际情况因人而异,须做相应调整。
你可以先在终端运行
sudo fstrim -v /
来查看fstrim是否可以正常运行,输出应该类似于:
/: 8158715904 bytes were trimmed
E)给/etc/cron.daily/trim增加可执行权限:
sudo chmod +x /etc/cron.daily/trim
F)这样就可以保持trim始终在后台运行了(当然你需要crond的后台进程)
- 在linux下开启TRIM对SSD性能优化
- Mac OS X 10.10.3对SSD开启Trim功能
- linux 下开启 trim 功能
- ubuntu开启SSD的Trim
- mac ox ssd 开启 trim
- 三星830在mac下开启TRIM
- macOS Sierra 更换SSD开启TRIM支持
- Linux 对SSD硬盘优化的方法
- MAC OS X 10.9.X下用命令行开启SSD trim的方法汇总
- linux下固态硬盘ssd优化
- SSD性能优化记录
- Openfire在Linux下的性能优化
- SSD Trim
- MAC 快捷命令 实现SSD 开启 TRIM 支持
- Linux系统中对SSD硬盘优化的方法
- Linux系统中对SSD硬盘优化的方法
- Linux系统中对SSD硬盘优化的方法
- 在VMware中对SUSE Linux的性能优化手册
- Deep learning:(Sparse Autoencoder练习)
- 算法导论-----最大子数组问题(线性解法)
- 网络流
- 【ELF Project】数据库相关
- 一个html5学习的网站
- 在linux下开启TRIM对SSD性能优化
- Deep learning:(RBM简单理解)
- 算法导论-----堆排序
- 碎石
- 【ELF Project】系统引导
- JS HTML5 音乐天气播放器
- 算法导论-----最大优先队列
- Hibernate常见异常(整理ing)
- 双色球,彩票抽取的三种不同的实现方法