Чи ввімкнено 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

Обрізка (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

Пуск / Стоп / Перезапуск 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 , багатослівне виконання. Виведіть кількість байтів, переданих з файлової системи вниз блоком стеку, на пристрій для потенційного відкидання.

Переглянути пов’язані записи системного журналу :

$ 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. Загалом, ця команда показує версію послуги, яка діє. Це може бути версія under / lib / systemd, але це також може бути модифікована версія під / etc / systemd.
ванадій

Коли він активний, чи робить це для всіх водіїв? Наприклад, у мене встановлений ubuntu на одному SSD, але інший SSD встановлений як розділ ext4. Чи обріже обидва автоматично? (статус говорить, що він активний)
Едуардо

як активувати його на вимогу? (наприклад, зараз я хочу піти на обід)
бритву

Ви можете вручну запустити / зупинити / перезапустити будь-яку системну послугу за допомогою: $ 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
Я не думаю, що це правильно. Опція відкидання обрізає блоки, коли файли видаляються з файлової системи. Служба systemd періодично обрізає невикористані блоки у файловій системі. Це різні речі. Варіант відкидання може негативно вплинути на продуктивність деяких систем, тому періодична версія, можливо, краща.
xioxox

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

Дякую, я відповідь редагував наголос. Будь ласка, не продовжуйте оскаржувати цю відповідь: Я хочу зберегти її, оскільки ваші коментарі цінні!
Бен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.