Linux平台下SSD的TRIM指令的最佳使用方式(不区别对待NVMe)

admin 2个月前 (07-24) 科技 35 0

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

Systemd治理的系统有一个专用的fstrim服务与准时器,开启准时器方式:

#查看fstrim准时器状态
sudo systemctl status fstrim.timer
#开启fstrim准时器自启
sudo systemctl enable --now fstrim.timer
#列出timer准时器列表
sudo systemctl list-timers --all

以上就是本文内容。

引文:

  • 在 Linux 下使用 fstrim 延伸 SSD 驱动器的寿命
  • 什么!NVMe不支持TRIM?你不会搞错了吧...
  • Linux文件系统和inode
,

Allbet Gmaing代理

欢迎进入Allbet Gmaing代理(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

Allbet欧博官网声明:该文看法仅代表作者自己,与本平台无关。转载请注明:Linux平台下SSD的TRIM指令的最佳使用方式(不区别对待NVMe)

网友评论

  • (*)

最新评论

站点信息

  • 文章总数:716
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1286
  • 评论总数:350
  • 浏览总数:21364