В ядре Linux версии 7.2 обнаружился прирост производительности SSD до 5%. Причем для этого потребовались минимальные изменения в коде.
К слову, улучшение связано с патчем, который затронул работу подсистемы ввода-вывода.
Изменение предложил разработчик Феннань Чанг, инженер компании ByteDance. Он не переписывал код и не добавлял новые механизмы. В его изменении речь идет о переносе двух строк кода внутри существующей логики.
Читают прямо сейчас:
Что такое open source и почему на нём держится весь IT — разбираем, как устроена разработка ядра Linux и почему мелкие патчи доходят до релиза
Что такое файловая система и зачем она нужна — как устроены ext4, кластеры и сопоставление данных с физическим диском
Виды компьютерной памяти: какие бывают и чем отличаются — почему SSD работает быстрее жёсткого диска и из чего он устроен внутри
В чем была проблема
Патч затронул механизм iomap, который используется в файловых системах ext4 и XFS. Он отвечает за сопоставление данных файлов в памяти с физическим расположением на SSD.
По словам разработчика, в отдельных сценариях iomap выполнял лишние операции очистки памяти, что приводило к неэффективному использованию пропускной способности. Особенно это проявлялось при высоких нагрузках и работе с NVMe-накопителями.
Что изменилось
Решение оказалось неожиданно простым — две строки кода, отвечающие за очистку состояния после итерации, были перенесены ниже по логике выполнения. Это позволило избежать лишнего вызова операции очистки в горячем пути.
В синтетических тестах, включая нагрузку 4K random read через io_uring, прирост производительности составил около 5% по IOPS на EXT4 и XFS.
Насколько это важно
Улучшение касается в первую очередь высокопроизводительных NVMe SSD и сценариев с интенсивными операциями ввода-вывода. В реальных пользовательских задачах эффект может отличаться и зависит от нагрузки.
Патч уже принят в основную ветку ядра. Решение о включении изменений в релиз принимает мейнтейнер подсистемы, а финальное слово остается за Линусом Торвальдсом.
Ожидается, что ядро Linux 7.2 выйдет ориентировочно в августе 2026 года, после чего можно будет оценить эффект оптимизации в реальных дистрибутивах.
