В ядре Linux назревает небольшое, но важное изменение, которое может заметно повлиять на производительность серверных систем. Речь идёт о новом патче, улучшающем работу NVMe-накопителей на многоядерных процессорах — в отдельных сценариях ускорение достигает 15%.
Когда я читаю подобные новости, ловлю себя на мысли: большая часть оптимизаций в Linux происходит тихо, почти незаметно, но именно из таких «мелочей» и складывается его репутация системы, которая со временем становится только быстрее и устойчивее.
Проблема, на которую обратили внимание разработчики, возникает на современных CPU с большим количеством ядер. NVMe-диски используют аппаратные прерывания (IRQ), и в условиях, когда число ядер превышает количество доступных IRQ, нескольким ядрам приходится делить одни и те же прерывания. Если распределение выполнено неудачно, появляются задержки и потери производительности.
Новый патч делает подсистему распределения CPU более «осознанной»: ядра группируются по кластерам внутри NUMA-доменов, а прерывания NVMe привязываются к тем CPU, с которыми у них лучшая локальность. В результате снижается лишний обмен данными между кластерами и уменьшаются накладные расходы.
На практике это уже дало измеримый результат. В тестах на сервере с процессором Intel Xeon производительность случайного чтения NVMe в бенчмарке FIO выросла примерно на 15%. Цифра не выглядит революционной, но в серверном мире даже такой прирост — весомый аргумент.
Важно понимать контекст: речь идёт прежде всего о серверных и высоконагруженных системах. Домашние ПК и ноутбуки вряд ли заметят разницу, но для дата-центров, облачных платформ и корпоративных хранилищ подобные оптимизации напрямую влияют на эффективность инфраструктуры.
Если смотреть шире, этот патч логично вписывается в общее развитие ядра. Ранее я уже писал о том, как развивается Linux в новых версиях, и подобные изменения хорошо дополняют курс на постепенную, но системную оптимизацию ядра. К слову, в статье про Linux 6.18 можно увидеть, насколько много внимания уделяется производительности и аппаратной совместимости.
Также нельзя не отметить, что улучшения NVMe особенно актуальны на фоне общего роста требований к подсистеме хранения. Я не раз затрагивал тему накопителей и серверных решений, например в материале о сверхъёмких SSD для дата-центров, где скорость работы с данными выходит на первый план.
Сам патч уже попал в ветку mm-everything, за которую отвечает Эндрю Мортон. Если всё пойдёт по плану, изменения могут войти в основную ветку ядра в одном из ближайших релизов Linux. Тогда ускорение NVMe станет доступно всем без каких-либо дополнительных настроек.
Именно за такие эволюционные шаги я ценю Linux: система не делает громких заявлений, но шаг за шагом становится лучше там, где это действительно важно.
Источник: Phoronix




