Linux怎么对文件内容trim,Linux平台下SSD的TRIM指令的最佳使用方式(不区别对待NVMe)...

SSD写数据会出现什么问题

SSD读写的单位不是位,而是一个块。如果要改变这个块中的一位,首先要将整个块擦写成1,然后再写入更新的数据。

为了解决擦写块的低效,SSD的策略是将需要改写的块,读取出来,进行数据修改,然后写入到新的,已经擦除完的块中。

新的SSD,没用的块很多,无需擦写,直接写入,性能很高。随着使用量增加,当写入时无可用块时,则只能先擦写再写入。此时SSD性能很差。

理论上,SSD内部定期将垃圾块进行回收擦写,但是SSD无法确认哪些数据是需要回收的。

解决问题的思路

针对SSD使用时间越长可用块变少以致于性能变差,可以让SSD“知道”哪些块可以回收,从而提前擦写垃圾块,以提升性能。

那么怎么做呢?解释这个问题需要先了解文件系统是如何“删除文件”的。

文件系统只是将文件头作一个已删除的标记,表明文件被删除了,即没有真正删除文件,只是标识删除。(Linux下真正删除的时机可能是写满、ramdisk、断电等时刻,此处不作深究)

SSD 具有一种称为 TRIM 的功能。从本质上讲,这是一种用于回收设备上未使用的块的方法,该块可能先前已被写入,但不再包含有效数据,因此可以返回到通用存储池以供重用。

TRIM就是这种“告知”SSD:“这些文件(块)已经删除了,你可以提前擦写以提高性能!”

经过众多资料的洗礼,我发现TRIM仿佛并非有想像中那么好,因为开启TRIM功能后,每次删除文件是真正的删除,SSD就可能去回收那些垃圾块,会降低SSD的性能!

解决之法是定时TRIM,而Systemd管理的Linux系统中都有一个命令 fstrim,就是作TRIM操作,可以用于普通SSD与NVMe

一次清理垃圾块的操作:(释放了这么多,难怪满了)

sudo fstrim --fstab --verbose

ce3b75d1279f78fcfae38ddd5eaa3f74.png

Systemd管理的系统有一个专用的fstrim服务与定时器,开启定时器方法:

#查看fstrim定时器状态

sudo systemctl status fstrim.timer

#开启fstrim定时器自启

sudo systemctl enable --now fstrim.timer

#列出timer定时器列表

sudo systemctl list-timers --all

b433157f81e64936ad0fa5aa477d83c6.png

以上就是本文内容。

引文:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux+目录+配额,Linux磁盘配额管理

最近在做基于mesosmarathon 的docker 容器云服务项目。需要限制每个容器的数据卷磁盘使用,对此作了一些调研工作。基本说明必要条件XFS ext4 均可支持Quota 操作需要内核Linux 2.4 的支持需mount时指定quota option, 可配置 /etc/fstab 后remount.有 3 种不同的配额…

linux进程运行队列,Linux进程调度中队列的使用

Linux内核中大量使用了队列,这里仅列举它在进程调度中的几处应用。Linux内核中的队列是以双链表的形式连接起来的,include/linux/list.h中定义了队列并提供了一些接口,详细的介绍可以参考**[1]**中的附录。Linux中的进程有如下几个主要状态&a…

linux命令行如何上翻,Linux学习教程-获取可用命令行参数 or 文件上下翻转和左右翻转...

导读前面使用的,有几个用到了参数如ls -l, head -n 6等,需要注意的是跟参数之间要有空格。获取可用命令行参数终端运行man ls可以查看ls所有可用的参数,上下箭头翻页,按q退出查看。(man: manual, 手册)ctehbio:~/data$ man lsNAME…

制作 小 linux 教程,用BusyBox制作Linux最小系统

1、下载busybox-1.30.1 地址:https://busybox.net/downloads/busybox-1.30.1.tar.bz22、解压:tar xvf busybox-1.30.1.tar.bz23、安装交叉编译器4、安装libncurses5-dev:sudo apt-get install libncurses5-dev5、配置busybox:make…

用微PE安装KALI LINUX到U盘,【U盘安装kali】U盘 kali pe三合一教程!装机,存储

最近发现U盘可以做出pekali正常u盘的结合教程,并且可以正常当做U盘使用,但是在网上各种教程下我出现了各种问题,整整三天捣鼓,终于实现了这个操作,并且解决了persistence存储问题!现在将来以最详细的图文来…

linux中iconv函数,Linux下编码转换(iconv函数族)

转自:http://www.linuxdiyf.com/viewarticle.php?id45164在Linux上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现(针对文件进行转换)一、利用iconv函数族进行编码转换iconv函数族的头文件是iconv.h使用前需包含之…

linux下mips裸机编译,裸机交叉编译器输入

裸机交叉编译器的输入限制是什么…因为它不编译带有指针或mallocs的程序…或任何需要比底层硬件更多的东西….还有1如何找到这些局限性..我还想问一下…我为目标mips构建了交叉编译器..我需要使用此交叉编译器创建mips可执行文件…但是我无法找到可执行文件的位置…我找到了mip…

linux dns中文域名,Linux 搭建中文域名的DNS服务器

配置之前先来解释一下中文域名是如何工作的:当我们在浏览器上输入 朝阳.北京.中国 这个域名的时候 浏览器会把中文域名翻译成Punycode编码然后再传送给DNS服务器解析,例如 朝阳.北京.中国 翻译成Punycode编码以后就是xn--tpv116h.xn--1lq90i.xn--fiqs8s朝…

linux 脚本自动编制工具,全自动工具链编译脚本

GCC 工具链自动编译脚本本工具用于自动编译指定的工具链,可以同时生成运行于本机系统 (Build system) 和 Windows 系统(可以修改)的两套工具链具体编译规则指定于 .config 中defconfig 目录包含一些预定义的规则,将其复制到脚本根目录并改名为 .config 后…

linux内核全局变量同名,Linux系统下DSO同名全局变量浅析

最近重温了一下《程序员修养》,又搞懂了一些叽里旮旯的问题,现将DSO同名全局变量问题进行简单小结,具体的讲解请看《程序员修养》一书。程序员的自我修养—链接、装载与库.pdf版下载在Linux公社的1号FTP服务器里,下载地址&#xf…

node的ws的api详细讲解

WebSocket是一种在单个TCP连接上进行全双工通信的协议。Node.js中的ws模块提供了WebSocket的实现,使得Node.js可以轻松地创建WebSocket服务器和客户端。 在ws模块中,WebSocket客户端由WebSocket类实现。WebSocket提供了一系列的API,用于管理…

linux切换到字符界面stemctl,CentOS7两种模式

1.13 救援模式忘记root用户密码修改密码: 单用户模式(但只能物理机操作不能远程操作,gaub没加密或者知道gaub才能修改)忘记root用户密码修改密码: 单用户模式(但只能物理机操作不能远程操作,gaub没加密或者知道gaub才能修改)关机 …

c语言编程15,c语言编程15题.doc

——————日历问题——————#includeint xing(int year);int run(int year);int main(){int year;int yue[12]{31,28,31,30,31,30,31,31,30,31,30,31};int xingqi[12];int i,j,k;printf("可以计算公元前的\n请输入年份:");scanf("%d",&year);yea…

东北大学c语言真题及答案,东北大学C语言总测试题(含答案).pdf

C语言总测试题 计算机编程引论(C语言)1.一个C程序的执行是从: 备注及演草:A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的…

c语言的位操作指令,C语言位运算

1. C语言中的位操作符因为C语言的设计目的是取代汇编语言,所以它必须支持汇编语言所具有的运算能力,所以C语言支持全部的位操作符(Bitwise Operators)。位操作是对字节或字中的位(bit)进行测试、置位或移位处理,在对微处理器的编程中&#xf…

c语言long a什么意思啊,英文long的中文是什么意思

英文long的中文是什么意思想要掌握long这个英文单词,我们首先就得先清楚它的中文意思是什么。为此百分网小编为大家带来英文单词long的中文意思。英文long的中文意思形容词 长的; 长时间的; 冗长的,过长的.; 长音的副词 长久地; 始终; 遥远地名词 长时间…

山东科技大学c语言完全题库,“山东科技大学十大未解之谜”之完全解答

“山东科技大学十大未解之谜”之完全解答(2012-04-24 13:53:36)标签:娱乐当我还是一枚小正太刚刚进入山科大的时候,我就看到过这些未解之谜,现在每每看到童鞋们转发这篇经久不衰的文章并且表达自己的疑问,我作为一名资深理科技术宅…

c语言如何一直变换颜色,【图片】(原创)用纯C变了个变色输出字符的程序。。。【c语言吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#includemain(){char c;int i,j,k,l,m,n,o;int x,y;char c1;int a,b,d,e;x35;y8;textcolor(13);gotoxy(35,10),cprintf("photoshop2014");textcolor(11);gotoxy(20,11);cprintf(" My name is zhou …

android广播注册源码,android 广播源码简要分析-注册

android broadcast1,广播注册静态注册:在系统服务启动时会添加PackageManagerService,在该类的构造方法中就会对各个应用安装目录的apk文件进行扫描解析详细步骤1,PackageManagerService初始化的时候,扫描系统目录下的…

android盒子改造,【当贝市场】废旧手机改造成电视盒子详细教程

3.直接即可输出视频了,然后在手机上安装暴风影音等视频软件的tv版,即可开始观看。有人会说,旧手机电池不行,看一会儿就得没电,怎么办?首先,在你输出到电视时,你就可以给手机锁屏&…