Ext4: Ускоряем диск ценой безопасности? Как отключить журналирование
Ваш Linux тормозит, а диск загружен на 100%? Возможно, всё дело в излишней осторожности вашей файловой системы. Журналирование Ext4 — это ваш страховой полис от сбоев, но за эту страховку приходится платить производительностью.
Представьте: каждое изменение на диске сначала аккуратно записывается в специальный журнал. Это гарантирует, что после внезапного отключения света система сможет восстановиться за секунды. Но что, если эта страховка вам не нужна? Что, если вы готовы пойти на риск ради молниеносной скорости?
Мы покажем вам, как проверить, включено ли журналирование сейчас, и расскажем о двух кардинально разных подходах. Вы можете полностью отключить эту функцию, сделав вашу Ext4 похожей на старую добрую Ext2. Или выбрать золотую середину — режим writeback, который используют другие современные файловые системы.
Этот режим — секретное оружие для повышения производительности, особенно при работе с тысячами мелких файлов. Мы не просто дадим команды, а объясним разницу между ordered, writeback и journal. Вы узнаете, какую строчку добавить в fstab, чтобы ускорить систему еще сильнее с помощью опции noatime.
Готовы ли вы отключить систему безопасности вашего диска? Пора принимать взвешенное решение. Читайте наше руководство, чтобы узнать все детали, скрытые риски и получить по-настоящему быструю файловую систему.
Журналирование в современных файловых системах необходимо чтобы восстановить файловую систему после сбоя, если во время сбоя выполнялись операции записи данных. Если запись данных была выполнена не полностью, то файловая система останется в повреждённом состоянии и её будет невозможно смонтировать.
При включённом журнале утилита fsck во время загрузки системы сможет её проверить и восстановить состояние из журнала. В этой статье мы рассмотрим как отключить журналирование в Ext4.
Отключение журналирования Ext4
Чтобы проверить включена ли для нужного раздела диска поддержка журналирования выполните:
sudo dumpe2fs /dev/nvme0n1p5 | grep has_journal

Здесь /dev/nvme0n1p5 - это файл вашего раздела, это может быть /dev/sda1 или что-то подобное. Если в строчке Filesystem Features есть строка has_journal, значит журнал включён. По умолчанию он включён и всё работает. Вы можете полностью отключить журналирование файловой системы, для этого выполните:
sudo tune2fs -O ^has_journal /dev/nvme0n1p5
Или же, если вы не хотите полностью отключать журналирование, но хотите повысить производительность файловой системы, можно включить режим writeback. В этом режиме в журнал данные вообще не записываются, только метаданные. Сначала данные попадают на диск, затем операция записывается в журнал. Так работает журналирование в XFS, JFS и ReiserFS. В этом режиме Ext4 показывает самую высокую производительность. Для его включения выполните:
sudo tune2fs -o journal_data_writeback /dev/nvme0n1p5

Чтобы вернуть режим журналирования по умолчанию выполните:
sudo tune2fs -o journal_data_ordered /dev/nvme0n1p5

Аналогично режим writeback можно включить через /etc/fstab. Здесь в опции монтирования нужного раздела надо добавить data=writeback:
sudo vi /etc/fstab

Чтобы ещё сильнее увеличить производительность можно сюда же добавить опцию noatime, она отключает обновление поля последнего доступа к файлу. Это очень сильно уменьшает количество обращений к диску и увеличивает срок жизни SSD.