Разработчик ускорил SSD в Linux 7.2, перенеся всего две строки кода

Вот уж точно правило Парето

Разработчик ускорил SSD в Linux 7.2, перенеся всего две строки кода

В ядре 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 года, после чего можно будет оценить эффект оптимизации в реальных дистрибутивах.

Соцсети: Юлия Зубарева
Вам может быть интересно
easy
Exit mobile version