Включаем fast_commit в файловой системе ext4 и ускоряем запись в два раза

В ядре 5.10 появилась новая опция ext4 - fast_commit. Подробнее о ней можно прочитать на LWN и Phoronix. Вкратце, при создании файловой системы с этой опцией запись ускоряется в два раза в некоторых случаях.

В конфигурацию утилиты mkfs (/etc/mke2fs.conf) эта опция уже добавлена по умолчанию в последнем обновлении дистрибутива, соответственно она же попала в текущие “ночные” сборки livecd, так что новые файловые системы ext4 будут создаваться уже с этим функционалом.

К сожалению это опция создания файловой системы, а не её монтирования, поэтому её нельзя просто добавить в fstab для уже существующей ФС. Однако включить её всё же можно, просто несколько более сложным способом.

Для начала давайте убедимся что файловая система в её текущем состоянии не умеет в fast_commit

# dumpe2fs -h /dev/{ваш_диск_и_раздел_на_нём} | grep fast_commit
dumpe2fs 1.46.4 (18-Aug-2021)

Как видно в выхлопе нет fast_commit, значит эта опция не включена.

ВНИМАНИЕ, ЭТО ВАЖНО

Все дальнейшие манипуляции мы будем производить с суперблоком FS. Файловая система должна быть обязательно отмонтирована во избежание повреждения суперблока и потери всех ваших данных. Это означает что вам нужно загрузиться с livecd, если вы модифицируете корневую ФС.

На отмонтированной ФС включаем fast_commit.

# tune2fs -O fast_commit /dev/{ваш_диск_и_раздел_на_нём}

Проверяем

# dumpe2fs -h /dev/{ваш_диск_и_раздел_на_нём} | grep fast_commit
dumpe2fs 1.46.4 (18-Aug-2021)
Filesystem features:      has_journal ext_attr resize_inode dir_index fast_commit filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum

Всё в порядке, можно перезагружаться.

Благодарю за внимание.

4 Likes