测试

测试

我目前正在尝试找出如何使用我的新 TP 进行修剪,并想知道手动/在线修剪的区别。

这是我的设置:

ThinkPad T430s 配备 SSD Samsung 830、128GB 和 Xubuntu 12.10,这里有一些输出,用于检查 trim 是否可以在我的系统上运行(这些是从这里获取的:http://wiki.ubuntuusers.de/SSD/TRIM

root@eike-tp:~# sudo hdparm -I /dev/sda | grep -i TRIM
   *    Data Set Management TRIM supported (limit 8 blocks)

首先,我尝试了在线修剪:如何启用TRIM?

我的 fstab 中已插入丢弃项:

UUID=d6c49c17-a4f1-466c-9f7e-896c20db3bba /  ext4  discard,noatime,errors=remount-ro  0  1
# swap was on /dev/sda5 during installation
UUID=a0322f5f-c6c1-4896-863f-668f0638d8cf none  swap  sw  0   0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

我尝试测试它是否有效(但是当我使用 /dev/sda 尝试时没有得到任何零),但发现此方法仅适用于 SSD 类型 2 而我似乎有类型 3。所以我不知道它是否有效。

Ubuntuwiki(第一个链接)建议手动修剪,因此我设置了每日 cronjob 而不是丢弃:

#!/bin/sh
LOG=/var/log/batched_discard.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG

维基百科文章建议每周或每天。现在回答我的问题:

自动修剪的频率是多少?建议的频率是多少?在线修剪还是手动修剪?

感谢您的帮助

答案1

自动和手动修剪之间的区别在于,自动修剪(使用discardmount 选项)在删除任何文件后同步修剪释放的块,而手动修剪(使用fstrim)一次修剪所有可用空间。

测试

测试自动修剪是否有效的一种方法是创建并删除一个大文件:

user@host:/somewhere$ dd if=/dev/urandom bs=1M count=100 of=bigfile
user@host:/somewhere$ sync
user@host:/somewhere$ rm bigfile
user@host:/somewhere$ sync

如果自动丢弃正在工作,再次手动修剪将不会修剪很多块,因为它们应该已经被修剪了。sudo discard -v在您的文件系统上运行并查看修剪了多少块。

推荐

至于推荐哪一个:根据我的经验,自动修剪会降低性能。但是,这可能依赖于硬件;您的驱动器上可能没有问题。

如果您使用手动修剪,那么修剪频率应考虑您在典型工作负载下写入数据的速率,与 SSD 上的可用空间量进行比较。您需要经常修剪,以免磁盘被删除的数据填满。如果您的 SSD 大部分是可用空间,或者您的磁盘工作负载较少,那么偶尔修剪(每周甚至更长时间)就足够了。如果您的 SSD 大部分已满,或者您经常编辑视频文件,则需要更频繁地修剪。

答案2

我每次启动时都会修剪 SSD。我创建了一个在启动后 20 秒调用的 sh 文件。我选择在系统通知中显示 fstrim 的输出,而不是在日志文件中显示。

首先trim.sh在你的~/bin目录中创建文件

#! /bin/sh
notify-send "TRIM" "$(sudo fstrim -v /)"

现在我们需要授予用户运行 fstrim 的权限,这样我们就不需要输入密码了。使用 visudo 打开 sudoers 文件并附加以下行:

yourusername  ALL=(ALL) NOPASSWD: /sbin/fstrim

如果您将home/yourusername/bin文件夹包含在内,$PATH您还可以使用命令“trim”在终端中手动修剪,而无需密码。

现在您可以将脚本添加到启动应用程序并指定延迟。您需要再次注销/登录,以便加载新的 sudoers 条目。

答案3

我不是存储工程师,但我我自己的担忧,但我可以就调度提出一个可能有用的建议。我非常有信心 TRIM 不会对 SSD 造成任何令人担忧的磨损。这只是您的磁盘最终必须经历的整理,然后才能开始回收块。批量 TRIMming 的最佳时间表取决于使用情况;我认为,这是写入频率和可用空间的函数。考虑到这一点,我会拔掉 cron 作业并fstrim -v手动运行几天。

我认为诀窍是制定一个计划,让批量 TRIM 为 SSD 准备写入,然后才回收使用过的块以完成正常的写入操作,从而损害性能。等待 24 小时,然后 fstrim。如果它声称修剪的块比可用空间少得多,那么批量 TRIMming 的频率可能会低于这个数字。

答案4

我准备了fstrim demonhttps://github.com/dobek/fstrimDemon

根据正常运行时间执行 fstrim 似乎比 cron 表更可靠。玩得开心。

相关内容