Включена ли 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.