随着硬盘技术的不断发展何固态硬盘的大量使用,你肯定听说过或者使用过固态硬盘,固态硬盘(或固态硬盘)能够达到比传统硬盘更快的读取和写入数据的速度,您可能不知道的是,随着时间的推移,当磁盘写满时,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. 分享一个idea的文档汉化插件

    展示效果: 如何获取:

  2. ddddocr验证码图片识别YYDS

    纯数字 数字+字母 python代码: import ddddocr def main(imgpath): # imgpath='E:\yam_0.png' ocr = ddddocr.DdddOcr ...

  3. 【Web】 抓包工具Charles

    官方软件包下载 https://www.charlesproxy.com/download/ 在线生成激活码: https://www.zzzmode.com/mytools/charles/ 代理设 ...

  4. windows11系统NVIDIA显卡驱动自动升级导致2070 Super显卡失效 —— 552.22版本自动升级到560.70版本后2070 Super型号显卡停止工作

    操作系统 Windows11,旧版本显卡驱动是552.22,由于安装的是NVIDIA Geforce Experience后显卡驱动自动升级到560.77版本,然后显卡不再工作. 重新安装显卡驱动56 ...

  5. 【转载】 SLI导致双显卡被TensorFlow同时占用问题(Windows下) ---------- (windows环境下如何为tensorflow安装多个独立的消费级显卡)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_21368481/article/d ...

  6. 如何使用强化学习算法解决15-puzzle问题,即所谓的“十五谜题”推盘游戏

    相关: https://medium.com/@amshali/15-puzzle-with-reinforcement-learning-8bcfc1aa54e7 什么是15-puzzle问题? 数 ...

  7. nginx实战教程

    大纲 为了让大家更快的学会,该博客中的内容录制成了视频课程:马上在线学习 1.什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 由 ...

  8. manim边学边做--点

    几何图形是manim中最重要的一类模块,manim内置了丰富的各类几何图形,本篇从最简单的点开始,逐个介绍manim中的几何模块. manim中点相关的模块主要有3个: Dot:通用的点 Labele ...

  9. mfc的ClistCtrl控件列的排序

    在网上看了许多排序的方法,都没看懂,初学者的悲剧,然后就自己弄了个,请大家指正. ClistCtrl控件的行带着一个结构体,不过那结构体不好懂,看得眼花缭乱.好多也弄不明白,就自己写了个结构体,把一行 ...

  10. Java并非锁之独占非公平锁理解

    Java锁系列教程之独占式锁 在Java并发编程中,锁是一个很重要的对象.Java中锁有两种:隐式锁和显式锁.使用synchronized关键字的锁是隐式锁.因为锁的申请和释放都是由JVM来维护的,不 ...