io_uring

Attention

io_uring is experimental and is currently under active development.

Note

This feature is not supported on Windows.

io_uring is an API for asynchronous I/O available in modern Linux kernels, designed to reduce system calls in network I/O and enhance performance. Envoy can be configured to use io_uring for all TCP listeners and connections.

To enable io_uring in Envoy, the Linux kernel must be at least version 5.11.

Example Configuration

1bootstrap_extensions:
2- name: envoy.extensions.network.socket_interface.default_socket_interface
3  typed_config:
4    "@type": type.googleapis.com/envoy.extensions.network.socket_interface.v3.DefaultSocketInterface
5    io_uring_options: {}
6default_socket_interface: "envoy.extensions.network.socket_interface.default_socket_interface"

In this configuration, io_uring is enabled in the bootstrap extension, and the default socket interface is explicitly defined. As a result, Envoy initializes a socket interface with io_uring support, replacing the default socket interface that uses the traditional socket API.

If the kernel does not support io_uring, Envoy will fall back to the traditional socket API.