Файловые системы

Нюансы выбора файловой системы и флагов монтирования

В отличие от Windows, в Linux-подобных системах выбор файловой системы не ограничивается в обязательном порядке со стороны дистрибутива, и может применяться исходя из личных предпочтений пользователя с оглядкой на поддержку со стороны ядра.

Основные высокопроизводительные файловые системы:

EXT4 - универсальный солдат, что подходит, как для SSD носителей, так и для HDD. Имеет самое большое распространение и документацию. Обеспечивает высокие показатели чтения и записи. Из минусов стоит отметить, что данная файловая система начинает проигрывать более новым представителям на рынке и требует ручного допиливания для SSD (SATA, NVMe, PCI и т.п.). Хорошо подходит для домашнего компьютера и файлопомойки, а также серверам которым необходима максимальная стабильность.

BTRFS - Т1000 из мира файловых систем. Является наследником идей EXT2-3, и прекрасно подходит для SSD носителей, ибо имеет модули автодетекта, что позволяет не сильно запариваться с настройкой TRIM и флагов монтирования. Скорости чтение сопоставимы, а иногда (Особенно при высоких нагрузках) превышают показатели EXT4. Идеальный выбор для игровой/домашней системы на базе Linux.

ZFS - Новая странная файловая система, по отзывам других людей неплоха для масштабных серверов, т.к. 128 битная, но зачем тогда такие размеры если ограничена в 255 символов? В любом случае, не рекомендуется использовать на декстопе ввиду большой возни с её настройкой и установкой, т.к. её поддержка официально отсутствует в ядре Linux из-за проблем с её лицензированием.

Оптимальные флаги монтирования

Прежде всего, изменяем realtime на noatime или lazytime - все два параметра отвечают за запоминания времени доступа к файлу и прочий бред, что только портит отклик.

Параметр noatime выключает полностью данную функцию, что может привести к некоторым багам в приложениях зависимых от времени (например git), но автор никогда не встречал данной проблемы. Параметр lazytime успешно будет выполнять все функции, но выполнять их запись в оперативной памяти, что позволит избежать замедления без потери функционала, но говорят lazytime чудит, автор советует noatime. space_cache можно заменить на space_cache=v2, что тоже даст определенную прибавку производительности.

Вот оптимальные параметры для SSD носителей. Описание каждого из них вы можете найти - здесь.:

rw,relatime,ssd,ssd_spread,space_cache=v2,max_inline=256,commit=600,nodatacow

Прописывать их нужно в файл /etc/fstab для корневого и домашнего разделов. Некоторые из данных флагов будут применяться только для новых файлов.

Внимание

При использовании Btrfs для корневого раздела, обязательно установите пакет btrfs-progs.