ubuntu在默认情况下不修剪ssd:为什么不修剪以及如何自己启用ssd

Ubuntu希望在ubuntu14.04中默认为ssd启用TRIM。换句话说,Ubuntu还没有使用TRIM,所以你的SSD会随着时间的推移而变慢。但是为什么Ubuntu还没有使用TRIM呢?...

ubuntu在默认情况下不修剪ssd:为什么不修剪以及如何自己启用ssd

Ubuntu希望在ubuntu14.04中默认为ssd启用TRIM。换句话说,Ubuntu还没有使用TRIM,所以你的SSD会随着时间的推移而变慢。但是为什么Ubuntu还没有使用TRIM呢?

这个消息可能会让很多人感到惊讶,他们认为Ubuntu和其他Linux发行版已经在使用TRIM了。修剪防止SSD随着时间的推移而变慢,是SSD维护的必要部分。

为什么修剪很重要

我们之前已经讨论过为什么修剪很重要。当您删除旧的磁性硬盘上的文件时,计算机只会将该文件标记为已删除。文件的数据会留在硬盘上,这就是删除的文件可以恢复的原因。当计算机用新数据覆盖已删除的文件的扇区时,它最终将覆盖这些文件。

固态驱动器(SSD)的工作方式不同。每当您将文件写入SSD时,计算机必须首先擦除要将数据写入的扇区中的任何数据。它不能只在一次操作中“覆盖”扇区—它必须先清除扇区,然后写入空扇区。

这意味着SSD将随着时间的推移而减慢。第一次写入SSD的扇区将很快。删除一些文件并尝试再次写入后,将需要更长的时间。这是谷歌最初的Nexus7在一段时间内放慢速度的一个重要原因。谷歌通过在android4.3中实现TRIM解决了这个问题。(Android也使用Linux内核。)

启用TRIM后,操作系统会在每次删除文件时通知SSD。然后驱动器可以擦除包含文件内容的扇区,因此将来写入扇区的速度会很快。

换句话说,如果您不使用TRIM,您的SSD将随着时间的推移而减慢。这就是为什么现代操作系统,包括windows7+、macosx10.6.8+和android4.3+都使用TRIM。TRIM早在2008年12月就在Linux中实现了,但是Ubuntu在默认情况下没有使用它。

相关:什么是固态硬盘(SSD),我需要它吗?

为什么ubuntu不默认修剪?

Ubuntu默认不修剪ssd的真正原因是Linux内核对TRIM的实现很慢,在正常使用时会导致性能不佳。

在Windows7和Windows8上,Windows每次删除文件时都会发送一个TRIM命令,告诉驱动器立即删除文件的位。当使用“discard”选项挂载文件系统时,Linux支持这一点。然而,Ubuntu和其他发行版出于性能原因默认不这么做。

OpenSUSE的wiki包含了一些来自比我们更熟悉Linux内核的开发人员的详细信息。这有点过时,但在性能方面可能仍然如此:

“The kernel implementation of realtime trim in 11.2, 11.3, and 11.4 is not optimized. The spec. calls for trim supporting a vectorized list of trim ranges, but as of kernel 3.0 trim is only invoked by the kernel with a single discard / trim range and with current mid 2011 SSDs this has proven to cause a performance degradation instead of a performance increase. There are few reas*** to use the kernels realtime discard support with pre-3.1 kernels. It is not known when the kernels discard functionality will be optimized to work beneficially with current generation SSDs.” [Source]

换句话说,Linux内核以一种缓慢、未优化的方式处理此类实时TRIM命令。启用类似于Windows的TRIM操作(即使用“discard”选项)会导致系统实际上变得比根本不使用TRIM时慢。Ubuntu和其他Linux发行版在默认情况下不会为您的文件系统启用“discard”,您也不应该启用。

ubuntu在默认情况下不修剪ssd:为什么不修剪以及如何自己启用ssd

还有另一种方法

因为Linux内核的实时“丢弃”TRIM操作执行得不好,大多数Linux发行版(包括Ubuntu)不会自动使用TRIM。Android在android4.3之前也没有使用TRIM。

但还有另一种方法可以使用修剪。可以使用FITRIM特性,而不是在每次删除文件时简单地发出TRIM命令。这是通过fstrim命令实现的。本质上,fstrim命令分析文件系统并通知驱动器哪些块不再需要,以便驱动器可以丢弃它们。这将从实时操作转换为计划任务。换句话说,fstrim可以作为cron作业执行TRIM。没有理由不这样做。它不会减慢任何速度;它只是系统必须按计划执行的另一项房屋清洁任务。

相关:为什么我的Nexus7这么慢?8种加速方法

事实上,这是谷歌在android4.3上采取的方法。Android只是偶尔运行一个fstrim任务来修剪文件系统,修复了所有nexus7的问题。

Ubuntu也在考虑通过让系统定期运行fstrim来自动启用TRIM。这将有望成为ubuntu14.04的一部分,这样Ubuntu用户就不会被迫处理SSD性能下降或自行运行fstrim。

如何启用修剪

我们不建议使用“discard”操作挂载文件系统,因为这可能会导致正常使用时性能降低。但是,您可以通过偶尔运行fstrim命令或创建自己的cronjob来使用TRIM。

要在Ubuntu上修剪SSD,只需打开一个终端并运行以下命令:

sudo fstrim -v /

ubuntu在默认情况下不修剪ssd:为什么不修剪以及如何自己启用ssd

您可以偶尔运行上述命令,以防止ssd上的性能下降。需要多长时间运行一次取决于从SSD中删除文件的频率。如果您尝试在不支持TRIM的驱动器上运行该命令,您将看到一个错误。

如果希望定期运行TRIM,只需创建一个cronjob来运行fstrim命令。下面是如何使一个赤骨cron工作,将自动做到这一点。

首先,运行以下命令以根权限打开nano文本编辑器:

sudo nano /etc/cron.daily/fstrim

在文件中键入以下代码:

#!/bin/sh

fstrim /

ubuntu在默认情况下不修剪ssd:为什么不修剪以及如何自己启用ssd

按Ctrl+O保存文件,然后按Enter确认。保存文件后按Ctrl+X关闭nano。

最后,运行以下命令使脚本可执行:

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

ubuntu在默认情况下不修剪ssd:为什么不修剪以及如何自己启用ssd

Ubuntu现在将按计划运行fstrim,就像它执行其他系统维护任务一样。


请注意,TRIM仅在现代文件系统上受支持,因此您需要类似ext4的内容,而不是ext3或ext2。如果您不知道使用的是什么文件系统,请不要担心,默认情况下选择ext4。

这些建议中的大部分也适用于其他Linux发行版。虽然Linux很久以前就在内核中实现了TRIM支持,但是Linux发行版中的典型用户似乎从未默认启用过它的TRIM支持。

图片来源:Flickr上的梅斯·奥贾拉(裁剪)

  • 发表于 2021-04-11 14:11
  • 阅读 ( 155 )
  • 分类:互联网

你可能感兴趣的文章

什么是m.2 ssd?优点,缺点,以及如何安装一个

...虑使用SSD驱动器。但是与其选择典型的2.5英寸SATA设备,为什么不考虑一些更具时代感的东西呢? ...

  • 发布于 2021-03-11 11:00
  • 阅读 ( 628 )

SSD真的可以安全地删除您的数据吗?下面是方法

...数据的磁盘扇区被覆盖之前,文件数据仍然存在。这就是为什么文件恢复程序可以恢复文件。此外,这也是为什么一些文件恢复程序可以恢复部分文件的原因——包含旧数据的扇区没有被完全覆盖,留下一些完整的数据。 ...

  • 发布于 2021-03-11 19:03
  • 阅读 ( 375 )

101固态驱动器指南

...便携性的需求。毕竟,如果你能在**上浏览完整的网页,为什么你不能有一台轻便、方便的笔记本电脑呢?但这些便携式机器使用的内存也有影响。如果你的**可以存储千兆字节的数据,而不需要繁重、嘈杂的机械驱动或不断上...

  • 发布于 2021-03-12 07:32
  • 阅读 ( 274 )

如何估计ssd的剩余寿命

...死了吗?请注意以下延长SSD寿命的提示,并确保尽快启用修剪支持。 ...

  • 发布于 2021-03-16 17:28
  • 阅读 ( 261 )

如何使用ssd和hdd组织windows文件

... 这将造成最大的速度差异,这就是为什么你有时会听到“引导驱动器”用来描述一个主要用于Windows的小型SSD。从1903版(2019年5月的更新)开始,Windows10至少需要32GB的运行空间。 ...

  • 发布于 2021-03-30 17:20
  • 阅读 ( 242 )

windows 10的bitlocker加密不再信任您的ssd

...。微软刚刚修改了windows10,不再信任那些粗略的ssd,而是默认使用软件加密。 总而言之,固态驱动器和其他硬盘可以声称是“自加密”的。如果是这样,BitLocker将不会执行任何加密,即使您手动启用了BitLocker。从理论上讲,这...

  • 发布于 2021-04-03 03:12
  • 阅读 ( 242 )

你不能信任bitlocker在windows 10上加密你的ssd

...硬件加密。 相关:如何用VeraCrypt加密Windows系统驱动器 为什么bitlocker信任SSD? 如果可用,基于硬件的加密可以比基于软件的加密更快。因此,如果SSD有可靠的基于硬件的加密技术,那么依赖SSD将提高性能。 不幸的是,似乎许多...

  • 发布于 2021-04-04 06:26
  • 阅读 ( 211 )

如何恢复已删除的文件:终极指南

...小。 我们已经介绍了如何使用ntfsundelete和photorec工具从ubuntulivecd或USB驱动器执行此操作。 相关:从Ubuntu Live CD恢复NTFS硬盘上删除的文件 恢复已删除文件的更快、更危险的方法 如果你想拿回一个被删除的文件,但是这个文件并...

  • 发布于 2021-04-07 05:43
  • 阅读 ( 226 )

如何将windows安装迁移到固态驱动器

... 你的数据备份。我们怎么强调都不为过。在没有备份的情况下开始乱动硬盘是完全愚蠢的。请参阅我们的计算机备份指南,并确保在继续之前对重要数据进行了完整备份。 Windows系统修复光盘。这是一个以防万一的工具。如果你...

  • 发布于 2021-04-08 01:38
  • 阅读 ( 198 )

什么是固态硬盘(ssd),我需要它吗?

...道时间。对它们进行碎片整理只会占用更多的写入周期。默认情况下,对Windows中的SSD禁用碎片整理。 关闭索引服务:如果你的操作系统像索引服务(Windows)一样触动了任何类型的搜索补充工具,请将其关闭。ssd上的读取时间非...

  • 发布于 2021-04-09 01:46
  • 阅读 ( 296 )
ucwe248404
ucwe248404

0 篇文章

相关推荐