我的系统上有两个 SSD 磁盘和三个文件系统:
$ lsblk | grep -v '^loop'
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 465.8G 0 disk /home
sdb 8:16 0 238.5G 0 disk
├─sdb1 8:17 0 512M 0 part /boot/efi
└─sdb2 8:18 0 238G 0 part /var/snap/firefox/common/host-hunspell
/
它们的使用方式如下:
$ df -BM / /home /boot/efi
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/sdb2 238777M 34465M 192112M 16% /
/dev/sda 468357M 203036M 241459M 46% /home
/dev/sdb1 511M 7M 505M 2% /boot/efi
该fstrim
服务每周运行一次,但报告一些“不自然”的值:
$ journalctl | grep "fstrim.*/home"
Oct 23 12:42:02 x fstrim[23187]: /home: 249.6 GiB (267956338688 bytes) trimmed on /dev/sda
Oct 30 19:19:38 x fstrim[22436]: /home: 248.9 GiB (267243692032 bytes) trimmed on /dev/sda
Nov 06 13:35:55 x fstrim[31818]: /home: 243.7 GiB (261722529792 bytes) trimmed on /dev/sda
Nov 13 11:53:32 x fstrim[11380]: /home: 242.9 GiB (260790439936 bytes) trimmed on /dev/sda
Nov 20 11:36:39 x fstrim[8200]: /home: 257.8 GiB (276775620608 bytes) trimmed on /dev/sda
$ journalctl | grep "fstrim.*/:"
Oct 23 12:42:02 x fstrim[23187]: /: 197.1 GiB (211671953408 bytes) trimmed on /dev/sdb2
Oct 30 19:19:38 x fstrim[22436]: /: 197.5 GiB (212089090048 bytes) trimmed on /dev/sdb2
Nov 06 13:35:55 x fstrim[31818]: /: 197.5 GiB (212091011072 bytes) trimmed on /dev/sdb2
Nov 13 11:53:32 x fstrim[11380]: /: 198.9 GiB (213588897792 bytes) trimmed on /dev/sdb2
Nov 20 11:36:39 x fstrim[8200]: /: 199.1 GiB (213827371008 bytes) trimmed on /dev/sdb2
$ journalctl | grep "fstrim.*/efi:"
Oct 23 12:42:02 x fstrim[23187]: /boot/efi: 504.9 MiB (529436672 bytes) trimmed on /dev/sdb1
Oct 30 19:19:38 x fstrim[22436]: /boot/efi: 504.9 MiB (529436672 bytes) trimmed on /dev/sdb1
Nov 06 13:35:55 x fstrim[31818]: /boot/efi: 504.9 MiB (529436672 bytes) trimmed on /dev/sdb1
Nov 13 11:53:32 x fstrim[11380]: /boot/efi: 504.9 MiB (529424384 bytes) trimmed on /dev/sdb1
Nov 20 11:36:39 x fstrim[8200]: /boot/efi: 504.9 MiB (529424384 bytes) trimmed on /dev/sdb1
我每周的使用情况并不统一。例如,我在 11 月 8 日进行了 23.04 → 23.10 升级。考虑到我的使用情况和磁盘利用率,报告的数字fstrim
没有意义。
有人能帮我解释一下这些数字吗?有人能在他们的系统上进行类似的检查,看看在那些系统上是否也是这种情况吗?我以为报告的数字应该是修剪操作后恢复的块数或字节数,但它们看起来像是操作系统已知的空闲块数或字节数。我如何才能看到实际恢复的块数?
请注意这个问题可能与...有联系如何知道我的 NVMe SSD 是否需要 TRIM
答案1
通过与@sotirov 对上述评论的讨论,我可以得出以下结论:
fstrim
发送全部空块(操作系统已知)发送到 SSD 进行恢复。在操作系统启动后第一次调用时就是这样。后续运行fstrim
只会发送新已删除的块。但是,此信息在操作系统关闭期间会丢失,因此在重新启动后将fstrim
发送全部已删除的块再次到 SSD。无法知道 SSD 恢复的实际块数,因为 SSD 不会将此信息传回操作系统。
请评论或者纠正我的答案。