Включена ли TRIM в моей установке Ubuntu 18.04?

Я знаю, что еженедельный TRIM включен по умолчанию с 14.10 и далее. Источник: Как включить TRIM? Но работает sudo nano /etc/cron.weekly/fstrim возвращает пустой файл Также tail -n1 /etc/cron.weekly/fstrim говорит, что этот файл не существует.

Бег lsblk -D возвращает ненулевые значения для DISC-GRAN а также DISC-MAXпоэтому TRIM поддерживается на моем SSD. Еженедельно ли TRIM включен для моего SSD или нет?

Я использую SSD Kingston

2 ответа

Решение

Trim (сброс) включен для запуска еженедельно по умолчанию в 18.04.

Это systemd сервис управляется через systemctl, не CRON.

fstrim настроен на запуск для всех смонтированных файловых систем на устройствах, поддерживающих операцию сброса.

Просмотреть статус 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

Пуск / Стоп / Перезагрузка fstrim.timer:
(не меняет статус запуска)

$ sudo systemctl [start/stop/restart] fstrim.timer

Включить / отключить fstrim.timer:
(добавить / удалить из автозагрузки, не изменяет текущий активный статус)

$ sudo systemctl [enable/disable] fstrim.timer

Посмотреть конфигурацию 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

Посмотреть конфигурацию fstrim.service:

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

[Service]
Type=oneshot
ExecStart=/sbin/fstrim -av

Примечание: ExecStart = / sbin / fstrim -av
Куда:
-a, Обрезать все смонтированные файловые системы на устройствах, которые поддерживают операцию сброса.
-v, подробное исполнение. Выведите количество байтов, переданных из файловой системы вниз по стеку блоков на устройство для возможного сброса.

Просмотр связанных записей журнала systemd:

$ journalctl -u fstrim.timer
Jul 04 14:18:41 user-laptop systemd[1]: Started Discard unused blocks once a week.
Jul 04 21:59:26 user-laptop systemd[1]: Stopped Discard unused blocks once a week.
etc...

$ journalctl -u fstrim.service
Jun 25 10:59:44 user-laptop systemd[1]: Starting Discard unused blocks...
Jun 25 10:59:48 user-laptop fstrim[955]: /: 92.5 GiB (99335237632 bytes) trimmed
Jun 25 10:59:48 user-laptop systemd[1]: Started Discard unused blocks.
-- Reboot --
Jul 02 04:27:41 user-laptop systemd[1]: Starting Discard unused blocks...
Jul 02 04:27:46 user-laptop fstrim[1032]: /: 92.3 GiB (99150807040 bytes) trimmed
Jul 02 04:27:46 user-laptop systemd[1]: Started Discard unused blocks.
etc...

Есть важный момент, который необходимо добавить к ответу @Broadsworde, чтобы завершить его.

В то время как на моем ноутбуке были включены все таймеры и службы, запись в журнале fstrim отсутствовала (только: starting… stopping… reboot… starting… так далее.).

Пропущенный шаг

Возможно, вам придется пометить файловые системы как отбрасываемые. Если файловая система не помечена как отбрасываемая, обрезка пропустит ее [1].

Чтобы пометить файловую систему как отбрасываемую, у вас есть два варианта:

1. Вариант: tune2fs

sudo tune2fs -o discard /dev/mapper/ubuntu--vg-root

Это установит опцию сброса по умолчанию для моего устройства ext4. Если вы не используете шифрование, попробуйте /dev/sda вместо.

2. Вариант: /etc/fstab

Не забудьте добавить или добавить опцию discard к вашим существующим опциям монтирования. Например, вот так:

/dev/mapper/ubuntu--vg-root / ext4 discard,relatime,errors=remount-ro 0 1

Только после этого служба таймера действительно что-то сделает.

Сноски

  • [1] на самом деле, устройство должно поддерживать TRIM операция. Но в Linux это флаг файловой системы. Тем не менее, устройство, на котором работает файловая система, должно поддерживать TRIM операция. Чтобы узнать, поддерживает ли это ваше устройство, используйте: sudo hdparm -I /dev/sda | grep -i TRIM,
Другие вопросы по тегам