随着硬盘技术的不断发展何固态硬盘的大量使用,你肯定听说过或者使用过固态硬盘,固态硬盘(或固态硬盘)能够达到比传统硬盘更快的读取和写入数据的速度,您可能不知道的是,随着时间的推移,当磁盘写满时,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. android:inputType 类型详细介绍

    //文本类型,多为大写.小写和数字符号.android:inputType="none"//输入普通字符android:inputType="text"//输入 ...

  2. 【Git】GithubDesktop 忽略文件无法忽略BUG

    问题描述: 从仓库拉取的[.gitignore]忽略配置文件,在项目跑起来之后会生成诸多.idea文件,target打包文件 一开始没有忽略,但是发现使用GD配置之后忽略无效: 解决办法: 做一次随便 ...

  3. 从.net开发做到云原生运维(四)——.net core的微服务开发

    1. .net 6.0项目模板变更 在.net 5和.net 3.1的时候,asp.net core项目模板里有个Program类和Startup类,在.net 6中引入了一个最小api的项目模板,在 ...

  4. 【转载】 DQN玩Atari游戏安装atari环境bug指南

    版权声明:本文为CSDN博主「好程序不脱发」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/ningmengzh ...

  5. 英雄钢笔359色 EF尖 与 凌美(LAMY) 狩猎者 磨砂黑EF尖——长期使用对比

    首先说明一下,这两个钢笔我都是长期使用了,凌美用了两三年了,英雄的那个用了也快半年了. 两款钢笔细节: 英雄:https://item.jd.com/1002650.html 凌美钢笔:https:/ ...

  6. VSCode配置git

    1.背景 vscode中基础git; 前提:本地已经安装好了git 有这样的菜单,并且可以正常上传下载代码 2.步骤 步骤一:找的git的安装路径: D:\Program Files\Git 步骤二: ...

  7. mybatis-plus系统化学习之更新-AR-主键-service

    1.背景 本节要么很简单,要么不重要,知道就可以了. 2.更新 package com.ldp.demo01; import com.baomidou.mybatisplus.core.conditi ...

  8. SMU 2024 spring 天梯赛4

    SMU 2024 spring 天梯赛4 7-1 心理阴影面积 - SMU 2024 spring 天梯赛4 (pintia.cn) 由 \(d = \frac{Ax+By+c}{\sqrt {A^2 ...

  9. Ubuntu 16.04 安装 python3.8

    Ubuntu 16.04  amd64 (64bit)(纯净版) 自带python2.7和python3.5 执行"whereis python"查看当前安装的python [ro ...

  10. 学习redis问题记录

    2024年5月25日 倒腾了很长时间 突然发现的问题 ide提示改为toList() 我顺便就改过去了 但是实际业务中redis序列化会产生无法反序列化的问题 造成缓存挂壁 业务直接G collect ...