找回密码
 骑士注册

QQ登录

微博登录


在 Linux 中使用 SSD(固态驱动器):启用 TRIM

2017-02-05 18:49    评论: 9 收藏: 6    

当我在运行 Linux 的计算机上安装我的第一块固态驱动器(SSD)后,我开始探索如何用好它们。SSD 在操作方式上与传统磁性驱动器不同,并且它们需要在软件上另行处理以达到功能优化。

在传统磁盘驱动器上,删除时所删除的文件不会从磁盘中完全删除。这就是为什么你可以恢复已删除的文件的原因。基本上,文件系统仅引用磁盘上文件的位置,并且当文件被删除时,该引用被擦除,以允许你在这些空间中写入新数据覆盖原来的数据。然而,对于 SSD,新数据只能写在驱动器上完全新的或已擦除的单元上。因为必须在写入之前清除空间,如果在写入文件时尚未有足够的可用空间,则必须首先擦除该空间。这可能会对性能产生负面影响。

如果操作系统在写入新数据之前就擦除了未使用的空间,而不是在写入时同时进行擦除,则可以提高文件保存性能。这种做法就是 TRIM。 TRIM 命令本质上允许你的操作系统告诉驱动器哪些区域的数据不再使用,以便擦除它们,加快驱动器将来的写入,可以 SSD 的用户提供更佳的体验。

在 Linux 中,fstrim 提供此功能,它可以为写入新数据而准备驱动器,并延长驱动器的使用寿命。由于在我使用的 Linux 发行版上 SSD 的 trim 不是自动的,所以必须去调度该操作,否则 SSD 的性能会随着时间的推移而降低。

为了在驱动器上运行 fstrim,驱动器本身以及其上的文件系统必须支持 TRIM。在文件系统挂载过程中可以启用 TRIM。例如,为了将设备 /dev/sda2 启用 TRIM 挂载到 /mnt,你要运行:

mount -t ext4 -o discard /dev/sda2 /mnt

一旦启用,TRIM 过程本身就相当简单。TRIM SSD 也可以在命令行或 cron 任务中手动完成。作为超级用户(使用 susudo),运行 fstrim / -v 以完成手动 trim,或者设置 cron 任务以在计算机未使用时定期为你运行此命令。对于 fstrim 的完整选项列表请参考它的 man 手册

硬件支持根据使用的驱动器接口类型如 PCI、ATASCSI 还是 SD/MMC 而有所不同。你需要咨询你的 Linux 供应商以了解你的特定发行版是如何支持 TRIM 的。

例如,红帽提供以下 SSD 磁盘指南。“性能随着所使用的块数接近磁盘容量而降低,性能影响程度因供应商而异,但是所有设备都会遇到一些性能降低。为了解决性能降低问题,主机系统(例如 Linux 内核)使用丢弃请求以通知存储器给定范围的块不再使用。”

Debian wiki 提供了 SSD 使用的一些基本注意事项:使用 Linux 3.2 或更高版本内核,使用 SSD 的最新固件,使用 EXT4 文件系统,并且“在正常工作负载下有足够的 DRAM 用来操作而不用使用交换空间“。


作者简介:

Don Watkins - 教育家、教育技术专家、企业家、开源倡导者。教育心理学硕士、教育领导硕士、Linux 系统管理员、CCNA、使用 Virtual Box 虚拟化。关注我 @Don_Watkins。


via: https://opensource.com/article/17/1/solid-state-drives-linux-enabling-trim-ssds

作者:Don Watkins 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最新评论

我也要发表评论

[1]
来自芬兰的 Chrome 55.0|Windows 10 用户 发表于 2017-02-06 06:49 的评论:
可以定期执行fstrim命令,但是不建议在mount / fstab 中使用discard 选项
baby-blue__ [Chrome 56.0|Mac 10.12] 2017-03-11 23:27 1 回复
不记得在哪里看到过,确实是不建议在fstab上启用discard,定期手动fstrim比较靠谱
[1]
来自芬兰的 Chrome 55.0|Windows 10 用户 发表于 2017-02-06 06:49 的评论:
可以定期执行fstrim命令,但是不建议在mount / fstab 中使用discard 选项
[2]
linux [Chrome 55.0|Mac 10.11] 发表于 2017-02-06 08:34 的评论:
原因呢?
来自河南郑州的 Chrome 51.0|Windows 7 用户 2017-02-11 07:45 1 回复
因为这个选项要求SSD每次删除文件都进行trim操作,比较号资源,尤其是在文件操作很频繁的时候。所以可以考虑用cron来定期trim
kashu [Chromium 66.0|Xubuntu 14.04] 2017-02-10 22:36 回复
这老外是道听途说的 -o discard 吧
你们去原文底下的评论区看看大伙的回复就明白了……

原作者的回复要么是Thanks for sharing,要么是Thanks for your comments。
一点主见也没有,根本不懂……
[1]
来自芬兰的 Chrome 55.0|Windows 10 用户 发表于 2017-02-06 06:49 的评论:
可以定期执行fstrim命令,但是不建议在mount / fstab 中使用discard 选项
[2]
hsyan2008 [Chrome 55.0|GNU/Linux] 发表于 2017-02-06 14:31 的评论:
为什么呢
来自湖南长沙的 QQ Browser 9.5|Windows 7 用户 2017-02-08 00:46 回复
大幅影响寿命。
来自江苏常州的 Safari|GNU/Linux 用户 2017-02-07 18:22 2 回复
开启 fstrim.service 比较好一点
来自黑龙江哈尔滨的 Sina Weibo 6.12|iOS 10.2 用户 2017-02-05 19:10 回复
很牛

LCTT 译者

共计翻译: 565 篇 | 共计贡献: 1248
贡献时间:2014-05-21 -> 2017-10-20
访问我的 LCTT 主页 | 在 GitHub 上关注我

收藏

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。