Fstrim разрушает производительность bcache

Начиная с Ubuntu 18.04, два компьютера, которыми я пользуюсь, один настольный компьютер и один ноутбук, оба начали иногда показывать очень медленную загрузку и очень медленную производительность для всего после этой загрузки. Оба используют маленький SSD и больший HD через bcache.

1112 За исключением тех случаев, они быстрые. Нет заметных отличий от других ПК только с SSD. Bcache это здорово. И обычно перезагрузка после этой медленной загрузки заставляет все вернуться к нормальной жизни. Вот почему я так долго изучал его.

Следуя инструкциям, которые я, вероятно, нашел здесь, в askubuntu, я использовал systemd-analyze, чтобы обнаружить, что причиной был fstrim.

$ sudo systemd-analyze blame
2min 9.448s fstrim.service
...

Пакет был найден с использованием этого:

$ dpkg -S fstrim
util-linux: /sbin/fstrim
util-linux: /usr/share/man/man8/fstrim.8.gz
util-linux: /lib/systemd/system/fstrim.service
util-linux: /lib/systemd/system/fstrim.timer
util-linux: /usr/share/bash-completion/completions/fstrim

Я предполагаю, что этот fstrim разрушает производительность bcache. Запуск запланирован один раз в неделю, что согласуется с наблюдаемым поведением. Он, вероятно, думает, что устройство bcache является огромным твердотельным накопителем, и делает свое дело, делая загрузку очень медленной, что также портит кеш и, следовательно, каждый доступ после этого является пропуском кеша.

Это как-то исправлено на моих машинах, так как я отключил fstrim и таймер следовал инструкциям здесь , и медленная загрузка больше не происходила.

rm /var/lib/systemd/timers/stamp-fstrim.timer
systemctl stop fstrim.service fstrim.timer
systemctl disable fstrim.service fstrim.timer
systemctl mask fstrim.service fstrim.timer

Но, возможно, есть лучшие решения для этого. Например: должен быть способ отключить fstrim только для одного раздела, редактирующего fstab.
Есть, может быть ... Я только что нашел его, читая вики ArchLinux и ссылку на kernel.org оттуда. Вы просто добавляете nodiscard в строку этой файловой системы bcache в fstab. Я еще не проверял это. В моем случае это было бы:

...
# /home was on /dev/bcache0 during installation
UUID=0880deae-1eeb-4c07-af01-a3db9d2d6282 /home           ext4    defaults,nodiscard        0       2
...

Еще лучше было бы, чтобы bcache сообщал, что не имеет поддержки обрезки lsblk --discard, или fstrim, чтобы распознать раздел bcache и избежать его.

Есть предложения? Должен ли я сообщить об ошибке? Где?

1
задан 10 October 2019 в 05:05

0 ответов

Другие вопросы по тегам:

Похожие вопросы: