Две строки кода, которые сломали законы производительности: как программист разогнал ядро Linux до предела

post-title

В мире высоких технологий, где каждый процент производительности на вес золота, а оптимизация кода порой требует месяцев кропотливой работы, иногда случаются настоящие чудеса инженерной мысли. Одно из таких чудес произошло в мире Linux, где разработчик из китайской компании Bytedance (известной как создатель TikTok) Феннань Чанг (Fengnan Chang) совершил, казалось бы, невозможное: он ускорил работу с SSD-накопителями в новом ядре Linux 7.2 на целых 5%, просто переместив две строчки кода. Это достижение не только вызвало восхищение в IT-сообществе, но и лишний раз подтвердило, что в мире открытого исходного кода гениальные решения могут быть одновременно и простыми, и крайне эффективными. Более того, оно пролило свет на сложные взаимоотношения внутри сообщества разработчиков, где геополитика порой вторгается в мир чистого кода.

Магия двух строк: как работает оптимизация

Секрет этого улучшения кроется в механизме iomap, который играет ключевую роль в файловых системах EXT4 и XFS, наиболее популярных в среде Linux. Iomap отвечает за критически важный процесс сопоставления логических смещений файлов в памяти с их физическим расположением на накопителе. По сути, это диспетчер, который говорит операционной системе, где именно на диске искать те или иные данные.

Феннань Чанг, внимательно изучив код, заметил неэффективность в работе этого механизма. В функции iomap_iter() после завершения итерации данных происходил "бесполезный" вызов memset — операции обнуления памяти. В обычных условиях это не создает проблем, но на высокопроизводительных NVMe-накопителях, которые могут обрабатывать сотни тысяч операций ввода-вывода в секунду, этот, казалось бы, незначительный шаг начинал ощутимо расходовать пропускную способность памяти. Как отмечал сам разработчик, этот лишний memset в сценариях с высокой производительностью IOPS приводил к нерациональному расходованию ресурсов -10.

Решение Чанга было элегантным до гениальности. Он не стал переписывать сложные алгоритмы или добавлять новые механизмы. Он просто перенес две строки кода, отвечающие за эту операцию, немного ниже по ходу выполнения функции. Это небольшое изменение позволило избежать лишней работы, когда она не нужна, что в результате дало прирост производительности примерно на 5% в синтетических тестах для файловых систем EXT4 и XFS -6.

Для наглядности, вот сравнение производительности до и после оптимизации на некоторых популярных тестах с использованием fio и io_uring в режиме опроса (poll), который сам по себе является одним из самых быстрых способов работы с хранилищами:

КонфигурацияБез оптимизации (IOPS)С оптимизацией (IOPS)ПриростEXT4 + io_uring_poll, qd=1281,421,9451,518,535+6.79%XFS + io_uring_poll, qd=2561,523,5541,702,827+11.77%EXT4 + io_uring, qd=256562,281590,593+5.04%XFS + libaio, qd=256459,828475,224+3.35%Данные из патча, предоставленного Феннанем Чангом -6.

Стоит отметить, что работа над повышением производительности iomap велась не в одиночку. В том же цикле разработки Linux 7.2, Чанг также предлагал патчи для оптимизации обработки маленьких прямых чтений (small direct I/O), что должно было дать дополнительный прирост до 12% для 4K случайных чтений на EXT4 и XFS, значительно сокращая накладные расходы на вызовы функций памяти и работу конечного автомата iomap -6.

Геополитика на службе или во вред коду?

Однако история получила неожиданное продолжение, выходящее далеко за рамки технической оптимизации. Предложенный Чангом патч, одобренный мэйнтейнером Кристианом Браунером, должен был пройти последнюю инстанцию — решение создателя Linux, Линуса Торвальдса. И здесь в игру вступают факторы, не имеющие никакого отношения к качеству кода.

Линус Торвальдс, имеющий американское гражданство, известен своей жесткой и порой резкой позицией в отношении некоторых национальных групп разработчиков. Особенно это касается российских программистов. В конце 2024 года разразился громкий скандал, когда по требованию комплаенс-служб из списка мэйнтейнеров ядра были исключены разработчики с российскими корнями -4-8. Торвальдс тогда публично поддержал это решение, назвав критиков "кучкой русских троллей" и заявив, что причины "совершенно ясны" и не будут пересматриваться -8. Он подчеркнул, что речь идет не только об американских санкциях, и призвал оппонентов "читать новости" и "включить мозги" -8.

На этом фоне ситуация с Феннанем Чангом выглядит контрастно. Несмотря на напряженные отношения между США и Китаем, которые в 2026 году остаются сложными, и несмотря на скандалы вокруг Bytedance и угрозы блокировки TikTok на территории США, патч китайского инженера был принят. На момент написания материала информация об отклонении его изменений отсутствовала. Это поднимает важные вопросы о критериях отбора в сообществе разработчиков Linux: где проходит грань между политикой и технической целесообразностью? Почему российские разработчики были отстранены, а китайские продолжают вносить весомый вклад, даже представляя компанию, находящуюся под пристальным вниманием американских властей? Ответ на этот вопрос, вероятно, лежит в плоскости не только политики, но и сложных корпоративных и межличностных отношений внутри самого сообщества.

Пользователи Linux смогут лично оценить "магию" Чанга не раньше середины августа 2026 года, когда предварительно запланирован выход стабильной версии ядра 7.2 -6. Впрочем, как иронично отмечают обозреватели, окончательный релиз зависит от того, не забудет ли Линус Торвальдс нажать заветную кнопку "Опубликовать" — такое с ним уже случалось. Одно можно сказать точно: история о двух строках кода, которые разогнали Linux, станет еще одной легендой, доказывающей, что в мире технологий даже самое маленькое изменение может иметь огромное значение, а политика, увы, не всегда остается за дверями серверных.








Мнение автора