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.