Тим Берд (Tim Bird), инженер компании Sony и участник группы разработки встраиваемых систем в Linux Foundation, опубликовал подробное руководство (PDF, 550 Мб) по тюнингу производительности файловых систем Ext4, Btrfs и F2FS, а также оптимизации работы планировщиков ввода/вывода, для достижения оптимальной производительности на накопителях eMMC/SSD. В статье досконально проанализированы доступные опции и представлены тесты производительности, демонстрирующие эффект, достигнутый при использовании каждой опции.
В частности, изучен эффект от монтирования с такими опциями, как "mount -o noatime", "mount -o discard", "tune2fs -O ^has_journal", "mount -o data=writeback", "mount -o nobarrier", "mount -o stripe=, mkfs -E stripe-width=", "mount -o ssd", "mount -o ssd_spread". Оценено влияние выбора планировщика ввода/вывода noop, deadline, cfq , row. В итоге, правильный выбор планировщика и опций монтирования позволил увеличить производительность в зависимости от теста от 20% до 400%. При этом универсального набора опций не найдено, для каждого типа носителя и типа нагрузки эффективным оказывался свой вариант тюнинга. При однотипной нагрузке (точно чтение или только запись) влияние опций оптимизации и типа планировщка менее заметно, чем при смешанном характере нагрузки. В общем виде скорость чтения в основном упирается в пропускную способность накопителя, на скорость операций случайной записи положительно влияет размер кэша ФС.
Среди общих наблюдений: ФС Btrfs демонстрировала заметный рост производительности при включении режима SSD для накопителей с поддержкой операции TRIM. Оптимальная производительность Ext4 достигается при ипользовании опций noatime и nojournal в сочетании с планировщиком CFQ. Для Ext4 также наблюдается небольшой рост производительности при использовании на накопителях eMMC, даже без поддержки TRIM, при включенной опции discard. F2FS работает отлично при использовании настроек по умолчанию и при включении noatime. Наилучшие показатели продемонстрировал планировщик CFQ, от которого немного отстал ROW.