Начнем мы с эксперимента по поддержке io_uring, свежего механизма для асинхронного ввода/вывода в ядре Linux, в libuv. Вот тут можно посмотреть на экспериментальный PR:
github.com/libuv/libuv/pu…
Если кто-то не слышал про libuv, то это кросс-платформенная библиотека для асинхронного I/O (и не только), на которой основывается Node.js.
Сейчас libuv в Linux для сетевого I/O использует epoll, механизм мультиплексирования, позволяющий работать сразу со многими сокетами и не блокироваться в ожидании готовности к чтению/записи. Вот краткий, но емкий доклад про epoll:
youtu.be/P9csgxBgaZ8
Использование более эффективного механизма может дать прирост производительности нагруженных сетевых приложений.
Вот очень подробная статья про устройство io_uring:
lwn.net/Articles/77670…