随着硬盘技术的不断发展何固态硬盘的大量使用,你肯定听说过或者使用过固态硬盘,固态硬盘(或固态硬盘)能够达到比传统硬盘更快的读取和写入数据的速度,您可能不知道的是,随着时间的推移,当磁盘写满时,SSD硬盘在数据写入时可能会失去一些速度,如果您为了速度而在服务器中运行SSD,那么就可以使用TRIM来保持SSD运行速度到最佳状态。

为什么SSD会慢下来?

首先让我们看看为什么会出现这个问题,这与SSD如何写入数据到存储有关。SSD将数据存储在固定大小的块中,称为面。然后将这些面安排在称为块的较大组中,虽然SSD可以单独读取和写入面,但它们只能擦除数据块而不是单个面,与可以毫无问题地覆盖数据块的硬盘驱动器不同,SSD需要在将新数据写入内部面之前将块中的数据擦除,这就是问题所在,因为操作系统和文件系统的设计使得如果删除文件,则使用的文件被标记为可用于文件系统的写入,但这些块中的数据保留到位,直到新数据写在上面,这是取消删除和文件恢复工具用于从磁盘中拯救已删除文件的原则。

如何使用TRIM擦除SSD数据块

这就是TRIM的用武之地,TRIM是内置于SSD的ATA命令集中的命令,它是磁盘与计算机接口的一部分,操作系统能够向磁盘发送TRIM命令,让它知道哪些块是已删除文件的一部分,并允许SSD在需要写入块之前擦除块,虽然操作系统能够在每次删除文件系统上的文件时发信号通知驱动器擦除这些部分,但这也会对性能产生影响并减慢速度,因此建议按计划运行TRIM以间歇性地清除块。

fstrim 是一个在 Linux 系统中用来回收闲置的或未使用的磁盘空间的工具。它主要应用在使用了 SSD(Solid State Drive,固态硬盘)的系统上。

具体来说,当你在 SSD 上删除一个文件时,操作系统并不会立即把这部分磁盘空间标记为可用,而是留到下次需要写入数据时再进行清理。这可能会影响 SSD 的写入性能。

fstrim 就是为了解决这个问题,通过定期运行 fstrim ,操作系统可以通知 SSD 这部分是哪些空间是未使用的,从而让 SSD 提前进行清理并回收空间,帮助提高 SSD 的写入性能。

所以,fstrim 的主要作用就是提高 SSD 的写入性能和延长其使用寿命。

sudo fstrim -a -v

-a标志告诉fstrim检查所有可用的有效分区,-v标志提供一个详细输出,显示fstrim已完成的操作。您应该看到命令的输出以查看事情的进展情况,如果获得正输出,则可以查看将命令添加到cron条目中,请注意,对于从14.10开始的Ubuntu系统,fstrim已经默认配置,您应该找到一个用于在/etc/cron.weekly/fstrim进行调度的脚本,以便为您激活它。

如果您的系统上不存在该文件,则需要使用以下命令创建它:

sudo nano /etc/cron.weekly/fstrim

然后粘贴以下代码:

#!/bin/bash

/sbin/fstrim -a || true

保存并退出该文件,然后使用以下命令使其可执行:

sudo chmod +x /etc/cron.weekly/fstrim

fstrim命令现在将由cron在您的系统上每周运行一次。如果您的系统发生了大量文件删除,那么通过每天运行fstrim命令可能会看到更多好处,为此,请将文件从/etc/cron.weekly目录移动到/etc/cron.daily目录。

Linux如何使用trim命令保持SSD的读写速度的更多相关文章

  1. Linux下用dd命令测试硬盘的读写速度

    一.测试写速度:   time dd if=/dev/zero of=/tmp/test bs=8k count=1000000 测试结果:565 MB/s 二.测试读速度:   time dd if ...

  2. [转帖]ssd固态硬盘的Trim命令是什么?

    ssd固态硬盘的Trim命令是什么?  收藏 分享 邀请 许多用户朋友在购买SSD的时候都会特别强调Trim,不过Trim是什么?做什么用的?   什么是Trim?   Trim指令也叫disable ...

  3. linux学习笔记——基础命令

    最近看了一些老男孩linux运维视频,挺不错的,特此记录一下 linux组成 gun组件 shell等 linux内核 其他软件 linux主要内核: linux kernel2.2 linux ke ...

  4. Linux上的free命令详解、swap机制

    Linux上的free命令详解   解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free ...

  5. Linux查看系统状态命令

    Linux查看系统状态命令       iostat iostat 命令详细地显示了存储子系统方面的情况.你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早 ...

  6. windows 环境和linux环境下 ping命令的区别:

    Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可 ...

  7. linux全方位掌握一个命令--思路比方法更重要

    Linux命令众多,当不清楚一个命令的使用方法时,我们该怎样了解命令的属性和帮助?     1.用type命令了解一个命令的属性 [root@zejin240 testdir]# type cd cd ...

  8. Linux 硬盘分区生效命令partprobe

    在Linux中使用fdisk命令进行分区时,有时会遇到"WARNING: Re-reading the partition table failed with error 16: Devic ...

  9. Linux中的历史命令

    Linux中的历史命令一般保存在用户    /root/.bash_history history 选项 历史命令保存文件夹 选项     -c:清空历史命令     -w :把缓存中的历史命令写入历 ...

  10. LINUX二十个基础命令

    LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...

随机推荐

  1. 【Scala】01 基础了解

    Features 特性 1.基于JVM,完全兼容Java 2.同样具有跨平台,可移植,垃圾回收 3.比Java更加的面向对象[完全面向对象] 4.函数式编程 5.面向大数据处理,对集合容器框架有一定的 ...

  2. 【SpringMVC】05 RestFul风格

    什么是RestFul风格? 一个资源定位和资源操作的风格,不是标准,也不是协议, 基于此风格的路径访问可以隐藏真实的参数传递,以提高网站的安全访问 以往的请求参数: jdbc:mysql://loca ...

  3. Google的蛋白质结构预测项目代码(Demo)

    相关: Artificial Intelligence | 60 Minutes Full Episodes

  4. 如何访问SCI-Hub上的资源?

    答案: 使用tor访问.onion网络资源. tor 下载地址: https://www.torproject.org/ 如果不使用tor方式访问可能会无法访问,被提示:

  5. 国内的开源AI模型共享网站(AI模型的GitHub)—— modeldscope —— 对标外网的“huggingface”,modelscope好用吗?

    搞AI的应该都是知道huggingface是啥的,这里不过多介绍,简单的来说就是AI模型的Github,之所以这么说是因为计算机的项目往往都是代码文件,所有计算机项目的Github只需要上传项目的代码 ...

  6. Linux系统——删除用户命令

      背景: 负责管理实验室的服务器,近期有保研的大三同学放弃保送到实验室而选择其他实验室,因此需要把之前给他开的账号取消掉. ===================================== ...

  7. 数字名片工具 BBlog:使用一个链接,快速创建和分享你的信息主页和数字花园

    数字名片 BBlog:使用一个链接,快速创建和分享你的信息主页和数字花园 随着移动互联网技术的快速发展,数字名片产品已成为现代社交和网络营销的重要工具.数字名片可以帮助个人和企业在各种场合中展示和分享 ...

  8. JavaScript程序设计模式小技巧——策略模式,快看快用!!!

    ## 前言> 系列首发于公众号[『非同质前端札记』](https://mp.weixin.qq.com/s?__biz=MzkyOTI2MzE0MQ==&mid=2247485576&a ...

  9. 【CMake系列】05-静态库与动态库编译

    在各种项目类型中,可能我们的项目就是一个 库 项目,向其他人提供 我们开发好的 库 (windows下的 dll /lib : linux下的 .a / .so):有时候在一个项目中,我们对部分功能 ...

  10. 使用 Dependify 工具探索 .NET 应用程序依赖项

    在大型项目中,由于各种组件的复杂性和互连性,管理依赖项可能变得具有挑战性.如果没有适当的工具或文档,可能很难浏览项目并对依赖项做出假设.以下是在大型项目中难以导航项目依赖项的几个原因: 复杂性:大型项 ...