31.03.2025 | PostgreSQL делает ставку на IO_uring — и не зря |
В 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-механизма, чтобы он по-настоящему оправдал свой потенциал. |
Проверить безопасность сайта