В Linux появился способ обойти системные вызовы, просто превратив процессы в библиотеки, и он чертовски быстрый

В Linux появился способ обойти системные вызовы, просто превратив процессы в библиотеки, и он чертовски быстрый

Было 19 000 тактов. Стало 1 700. Это вообще нормально?

image

Инженеры Bytedance представили новый способ ускорения взаимодействия между процессами (IPC) в Linux, который они назвали RPAL — Run Process As Library («Запуск процесса как библиотеки»). Идея заключается в том, чтобы один процесс мог вызывать другой так, как будто это обычная функция в памяти, без участия ядра операционной системы. По их словам, это позволяет существенно повысить производительность и снизить нагрузку на CPU.

Классический IPC в Linux, включая сокеты и системные вызовы, часто становится узким местом в высоконагруженных системах. RPAL предлагает другой подход: минимизировать копирование данных, избегать переключений контекста ядра и при этом не требовать серьёзных изменений в коде приложений. По сути, это способ превратить отдельный процесс в библиотеку, которую можно вызвать напрямую, как обычную функцию.

Первичные тесты, проведённые Bytedance, показывают внушительный прирост производительности. В одном из экспериментов клиент передал миллион сообщений по 32 байта. При использовании обычного подхода на каждое сообщение тратилось в среднем 19 616 тактов процессора. С RPAL задержка снизилась до 1 703 тактов — это более чем 91% ускорения.

Кроме того, в реальных сценариях в дата-центре RPAL позволил снизить загрузку CPU до 15,5% за счёт уменьшения системных вызовов и более эффективного управления памятью. Особенно значимый вклад дала возможность делить адресное пространство между процессами, что сократило количество копий данных.

Однако у технологии есть ограничения. RPAL требует поддержки аппаратной функции Memory Protection Key (MPK), доступной на современных процессорах Intel и AMD Zen 4 и новее. Bytedance заявляет, что в будущем RPAL может работать и без MPK, но пока эта возможность только в планах.

Исходные патчи и RFC для внедрения RPAL уже опубликованы , и любой желающий может ознакомиться с кодом и предложениями Bytedance. Новая модель IPC выглядит как потенциальный шаг вперёд для Linux-систем, особенно в области высокопроизводительных микросервисов и систем реального времени.

Твой код — безопасный?

Расскажи, что знаешь о DevSecOps.
Пройди опрос и получи свежий отчет State of DevOps Russia 2025.