Linux 7.4 ускоряет сброс рабочих очередей в 10-100 раз на больших серверах

· Linux и open source
В ядро Linux 7.4 вошла оптимизация механизма workqueue: flush теперь обходит только недавно использованные очереди, что радикально ускоряет работу на многоядерных системах.

cover.svg

Разработчики ядра Linux нечасто позволяют себе громкие формулировки, но изменение в механизме рабочих очередей (workqueue), попавшее в Git-ветку Linux 7.4, заслуживает их честно: авторы говорят об ускорении «в 10-100 раз».

Рабочие очереди в ядре служат для асинхронного откладывания задач. Проблема была в процедуре их сброса (flush): прежде она обходила по одной очереди на каждый возможный процессор. На современных серверах с десятками и сотнями ядер — Intel Xeon и AMD EPYC — это превращалось в заметные накладные расходы.

Что изменилось

Теперь flush обходит только те очереди, которые использовались с момента предыдущего сброса, а не по одной на каждый CPU. На больших машинах холостые сбросы становятся быстрее в 10-100 раз. По словам разработчиков, по этому пути ходит XFS при каждом принудительном сбросе журнала (log force).

Причиной работы стал сентябрьский отчёт инженера Huawei Яо Кая: он заметил, что рабочая очередь XFS CIL, сбрасываемая при каждом log force, тратит до 64 микросекунд на обход на 128-ядерной машине.

Цифры

Автор улучшения — давний разработчик ядра Тэджун Хео — приводит в своём коммите впечатляющие показатели. На 192-ядерной двухузловой машине сброс простаивающей per-cpu очереди ускорился с 40 тысяч до 4,2 миллиона операций в секунду, а unbound-очереди — с 450 тысяч до 4,3 миллиона. При нагрузке в 16 потоков, каждый из которых ставит задачу и сбрасывает очередь, показатель вырос с 30 до 110 тысяч сбросов в секунду для per-cpu и с 60 до 180 тысяч для unbound.

Не обошлось без компромиссов: при плотных сбросах, когда активны все очереди, производительность per-cpu не изменилась, а unbound стала на 15-20% медленнее. Путь постановки задач в очередь остался прежним.

Переход с 40 тысяч до 4,2 миллиона операций в секунду — по любой метрике результат выдающийся. И, как не без иронии отмечает Phoronix, в 2026 году особенно приятно, что написан он человеком, а не искусственным интеллектом.


Источник: Phoronix

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.