我的 Ubuntu 18.04 安装是否启用了 TRIM?

m.u*_*mar 63 ssd trim 18.04

我知道从 14.10 开始默认启用每周 TRIM。来源:如何启用TRIM? 但是运行会sudo nano /etc/cron.weekly/fstrim返回一个空文件。也tail -n1 /etc/cron.weekly/fstrim说,该文件不存在。

运行lsblk -D返回非零值DISC-GRANDISC-MAX 因此我的 SSD 支持 TRIM。是否真的为我的 SSD 启用了每周 TRIM?

我正在使用金士顿固态硬盘

Bro*_*rde 98

从 18.04 fstrim(丢弃未使用的块)开始,默认情况下为支持丢弃操作的设备上的所有挂载文件系统启用每周运行一次

fstrimsystemctl、 不管理,cron并由systemd服务单元 ( fstrim.service) 和计时器单元 ( fstrim.timer) 定义

查看配置fstrim.service

$ systemctl cat fstrim.service
# /lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks

[Service]
Type=oneshot
ExecStart=/sbin/fstrim -av
Run Code Online (Sandbox Code Playgroud)

注意: 其中:, 在支持丢弃操作的设备上修剪所有已安装的文件系统。, 详细执行。输出从文件系统沿块堆栈向下传递到设备以进行潜在丢弃的字节数。ExecStart=/sbin/fstrim -av

-a
-v

查看配置fstrim.timer

$ systemctl cat fstrim.timer
# /lib/systemd/system/fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)

查看状态fstrim.timer

$ systemctl status fstrim.timer
? fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
   Active: active (waiting) since Thu 2018-07-05 05:45:11 BST; 4h 42min ago
  Trigger: Mon 2018-07-09 00:00:00 BST; 3 days left
     Docs: man:fstrim
Run Code Online (Sandbox Code Playgroud)

启动/停止/重启 fstrim.timer:(
不改变启动状态)

$ sudo systemctl [start/stop/restart] fstrim.timer
Run Code Online (Sandbox Code Playgroud)

启用/禁用 fstrim.timer:(
添加到/从启动中删除,不改变当前活动状态)

$ sudo systemctl [enable/disable] fstrim.timer
Run Code Online (Sandbox Code Playgroud)

查看日记帐分录fstrim.service

$ journalctl -u fstrim.service
...
May 01 07:57:48 user-laptop systemd[1]: Starting Discard unused blocks...
May 01 07:57:51 user-laptop fstrim[810]: /: 94.5 GiB (101432025088 bytes) trimmed
May 01 07:57:51 user-laptop systemd[1]: Started Discard unused blocks.
-- Reboot --
May 07 05:29:03 user-laptop systemd[1]: Starting Discard unused blocks...
May 07 05:29:05 user-laptop fstrim[776]: /: 94.3 GiB (101260668928 bytes) trimmed
May 07 05:29:05 user-laptop systemd[1]: Started Discard unused blocks.
-- Reboot --
etc...
Run Code Online (Sandbox Code Playgroud)

查看日记帐分录fstrim.timer

$ journalctl -u fstrim.timer
...
May 01 07:57:48 user-laptop systemd[1]: Started Discard unused blocks once a week.
May 01 20:21:43 user-laptop systemd[1]: Stopped Discard unused blocks once a week.
-- Reboot --
May 02 06:21:59 user-laptop systemd[1]: Started Discard unused blocks once a week.
May 02 20:37:11 user-laptop systemd[1]: Stopped Discard unused blocks once a week.
-- Reboot --
etc...
Run Code Online (Sandbox Code Playgroud)

  • 作为参考,时间由`/lib/systemd/system/fstrim.timer`(`OnCalendar=weekly`)控制,什么由`/lib/systemd/system/fstrim.service`(`ExecStart=/sbin/ fstrim -av`)。 (3认同)
  • 好帖子!我建议您通过专用的 systemctl 命令更改“cat”命令:cat /lib/systemd/system/fstrim.timer -> systemctl cat fstrim.timer。一般来说,该命令显示有效的服务版本。这可能是 /lib/systemd 下的版本,但也可能是 /etc/systemd 下的修改版本。 (2认同)