PostgreSQL делает ставку на IO_uring — и не зря
NewsMakerПервые тесты внушают оптимизм, но главное впереди.
В PostgreSQL появился долгожданный механизм асинхронного ввода-вывода — IO_uring. Пока это базовая реализация, но уже сам факт её включения в основную ветку проекта 26 марта стал важным шагом к заметному росту производительности, особенно на Linux-серверах.
IO_uring — это современный интерфейс асинхронного I/O, разработанный специально для Linux. Он позволяет существенно сократить издержки на переключение контекста и обойти ограничения, связанные с числом потоков ввода-вывода. В PostgreSQL он становится альтернативой существующему методу
Чтобы включить новую возможность, PostgreSQL нужно собрать с поддержкой библиотеки liburing (опция
Сами разработчики подчёркивают, что реализация пока очень простая и в будущем здесь возможны серьёзные оптимизации. Тем не менее, первые тесты уже показывают убедительные улучшения в скорости, особенно в сценариях с высокой нагрузкой.
Полноценная поддержка IO_uring, вероятно, станет частью PostgreSQL 18, релиз которого ожидается в сентябре. До этого момента разработчики будут продолжать работу над улучшением интеграции нового I/O-механизма, чтобы он по-настоящему оправдал свой потенциал.

В PostgreSQL появился долгожданный механизм асинхронного ввода-вывода — IO_uring. Пока это базовая реализация, но уже сам факт её включения в основную ветку проекта 26 марта стал важным шагом к заметному росту производительности, особенно на Linux-серверах.
IO_uring — это современный интерфейс асинхронного I/O, разработанный специально для Linux. Он позволяет существенно сократить издержки на переключение контекста и обойти ограничения, связанные с числом потоков ввода-вывода. В PostgreSQL он становится альтернативой существующему методу
io_method=worker
, который уступает IO_uring при большом количестве мелких операций. Чтобы включить новую возможность, PostgreSQL нужно собрать с поддержкой библиотеки liburing (опция
--with-liburing
), а затем в настройках сервера указать io_method=io_uring
. Эта функция доступна только для Linux и требует дополнительной зависимости на этапе компиляции. Сами разработчики подчёркивают, что реализация пока очень простая и в будущем здесь возможны серьёзные оптимизации. Тем не менее, первые тесты уже показывают убедительные улучшения в скорости, особенно в сценариях с высокой нагрузкой.
Полноценная поддержка IO_uring, вероятно, станет частью PostgreSQL 18, релиз которого ожидается в сентябре. До этого момента разработчики будут продолжать работу над улучшением интеграции нового I/O-механизма, чтобы он по-настоящему оправдал свой потенциал.