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


38

Я знаю, что еженедельный 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

Ответы:


59

Trim (fstrim / discard) включен еженедельно по умолчанию в 18.04.
Он настроен на запуск для всех смонтированных файловых систем на устройствах, поддерживающих операцию сброса.

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

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

Start / Stop / Restart 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...

2
Для справки, когда контролируется /lib/systemd/system/fstrim.timer( OnCalendar=weekly) и чем /lib/systemd/system/fstrim.service( ExecStart=/sbin/fstrim -av).
Moilleadóir

1
Прекрасный пост! Я предлагаю вам изменить команды "cat" с помощью специальных команд systemctl: cat /lib/systemd/system/fstrim.timer -> systemctl cat fstrim.timer. В общем, эта команда показывает версию действующей службы. Это может быть тот, что находится в / lib / systemd, но это также может быть измененная версия в / etc / systemd.
ванадий

Когда он активен, он делает это для всех драйверов? Например, у меня Ubuntu установлен на одном SSD, но другой SSD монтируется как раздел ext4. Будет ли он обрезать оба автоматически? (статус говорит, что он активен)
Эдуардо

как активировать его по требованию? (например, сейчас я хочу пойти на ланч)
бритва

Вы можете вручную запустить / остановить / перезапустить любую службу systemd с помощью: $ sudo systemctl [запуск / останов / перезапуск] [имя службы] .service
Broadsworde

2

Изменить: Пожалуйста, прочитайте комментарии, этот ответ смешивает два механизма!

Старый ответ

есть важный момент, который необходимо добавить к ответу @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.

В моей установке (первоначально 18.10; позже обновленной до 19.04) в файловых системах не была включена опция сброса . Я использую только SSD в моей системе; и у него никогда не было механического HD. Я включил их с помощью tune2fs . Любая идея или объяснение, почему система не включила их по умолчанию?
ФедонКадифели

1
Я не думаю, что это правильно. Опция Discard обрезает блоки, когда файлы удаляются из файловой системы. Служба systemd периодически обрезает неиспользуемые блоки в файловой системе. Это разные вещи. Опция сброса может негативно повлиять на производительность в некоторых системах, поэтому периодическая, возможно, лучше.
xioxox

1
@ xioxox прав. Последний mount«s человека страниц заявляет , что « Проблема функции отбрасывания часто посещают команды , чтобы блочное устройство , освободить пространство , освобожденное в файловой системе. [...] может оказать значительное влияние на производительность . (Команда fstrim также доступна для запуска групповой обрезки из пространства пользователя.) »
Фабио А.

Спасибо, я отредактировал ответ соответственно. Пожалуйста, не продолжайте занижать этот ответ: я хочу сохранить его, так как ваши комментарии ценны!
Бен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.