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

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

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

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

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

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

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

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

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

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

原文发布时间为:2017-02-05

本文来自云栖社区合作伙伴“Linux中国”

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

  1. ssd 安装linux 教程,在Ubuntu中操作SSD固态驱动器的安装步骤和优化技巧

    毫无疑问,SSD硬盘对我们计算机的重要性.好的SSD硬盘驱动器可以帮助我们节省大量计算机空间.一些朋友在网络上提问.需要在Ubuntu系统中安装使用SSD固态驱动器.优化时,我不知道如何设置.关于这个 ...

  2. SSD固态硬盘的Trim命令是什么

    SSD固态硬盘的Trim命令是什么 我相信听到过买SSD要买支持Trim的玩家不在少数,不过我敢肯定大多数玩家到目前为止还搞不懂Trim到底是干啥的,只是一味跟风,今天在这里我就稍微详细的解释下Tri ...

  3. pcie转m2装系统win10_M.2接口NVMe SSD固态驱动器安装win10

    01-04阅读20,000 + [前言]本教程主要用于笔记本电脑安装,但也适用于高端台式机安装. 什么用例适合?例如,美国版的笔记本电脑ThinkPad XPS价格昂贵,但是安装盗版系统将失去许多必要 ...

  4. 固态装linux,Linux下安装SSD固态卡

    ![](https://s4.51cto.com/images/blog/201801/29/97424aee28424ad2102fa0e85e58c043.png?x-oss-process=im ...

  5. Linux下测试SSD固态硬盘写入速度

    最近买了一个256GB的SSD固态硬盘,想测试一下写入速度,于是如下操作. 部分代码: 1 gettimeofday(&start, NULL); 2 int fd = open(" ...

  6. Linux查看ssd块大小性能,如何衡量Linux中对SSD执行的总写入量?

    我在互联网上搜索了一个工具/工具,可以告诉我对SSD(或普通磁盘)执行的总写操作.输出应该如下所示: SSD Intel 320S :- Total data written until now -- ...

  7. linux异常断电usb驱动丢失,如何修复Linux中损坏的USB驱动器 | MOS86

    每个人都有一个闪存驱动器.他们但是,有时闪存驱动器可能会被破坏或只是平稳退出工作.如果你在这篇文章中我们 Note:本文中概述的技巧是 使用fsck A从USB驱动器中删除坏块通过简单的方法修复闪存驱 ...

  8. 固态硬盘计算机怎么自定义分区,如何将SSD固态硬盘设置为主硬盘,如何将SSD分区设置为主硬盘?...

    这种问题只会使初学者首次安装该系统变得困难,他们是那种非常谨慎且不敢实践的人!在那只老鸟的眼中,不需要介绍它们. 这是必须解决的两个连续问题,因此请一起编辑它们并与新手朋友分享. 毕竟,安装系统比解决 ...

  9. dell服务器系统固态,戴尔固态驱动器(SSD)常见问题 - 服务器(PowerEdge)和存储。

    本文提供了有关戴尔固态驱动器(SSD)的常见问题(FAQ)列表. 目录: 词汇表: 数据保留: 数据保留是指ROM保持可正确读取的时间范围,也就是芯片不受电力偏压的情况下单元保持其编程状态的时间长度. ...

  10. linux 卸载usb驱动,2种有效的方案解决如何在Linux中格式化USB驱动器

    有没有可行的解决方案在Linux中格式化USB驱动器?由于操作系统的限制,许多Linux用户发现很难格式化USB驱动器.尽管Linux具有许多优势,但有时进行工作可能会有些乏味.本文有2种不同的方式格 ...

最新文章

  1. WebVie打开woffice文档
  2. Linux下载交通图片数据集CityScapes Dataset
  3. C#创建https请求并使用pfx证书
  4. 重启oracle后报01034,ORACLE: ORA-01034, ORA-27123问题处理的分析
  5. CodeForces - 1405E Fixed Point Removal(线段树+思维)
  6. 麦克风设计指导与选型参考
  7. Java异常处理原则与技巧总结
  8. android+微信一键关注,一键关注微信公众平台JS代码有哪些?
  9. 科​目​三​智​能​考​试​系​统​实​际​道​路​考​试​项​目​评​判​标​准
  10. 《剑指Offer》用两个栈来实现队列
  11. Oracle(四):PL/SQL、存储函数、存储过程、触发器
  12. 长宽相等的矩阵(二维数组)逆时针旋转90度
  13. 如何使用 SQL Server FILESTREAM 存储非结构化数据?
  14. 【学习笔记】莫队算法
  15. Java使用自动化测试脚本selenium
  16. 今天给大家推荐一个Cleaner One for mac(系统清理优化工具)
  17. 2019杭电多校Problem 5 Snowy Smile题解
  18. 命主属性是水什么意思_​五行中,你属什么就是什么样的人!太准了~
  19. 中国计算机学会高级会员资格,高级会员
  20. mybatis(错误二) 项目启动时报“Result Maps collection already contains value forxxx”的解决方案

热门文章

  1. 批量调取接口_批量操作_API 文档_对象存储 - 七牛开发者中心
  2. mysql数据库操作常用命令_MySQL数据库操作常用命令小结
  3. 各种排序算法总结和比较
  4. Python零基础学习笔记(六)—— 变量和常量
  5. 在python中编写socket服务端模块(二):使用poll或epoll
  6. 1133 Splitting A Linked List
  7. 提升效率Mysql函数(function)|存储过程(procedure)
  8. Bzoj2882 工艺
  9. Java千百问_05面向对象(008)_java中覆盖是什么
  10. [渣译文] SignalR 2.0 系列: SignalR简介