Runtime / Type
io_uring
A Linux completion runtime that owns its ring, operations, sockets, and provided buffers.
Configuration
[runtime]
type = "io_uring"
sq_entries = 4096
cq_entries = 8192
buf_ring_size = 16384
buf_size = 8192
| Key | Default | Constraint |
|---|---|---|
sq_entries
|
4096 | Greater than zero. |
cq_entries
|
8192 | Greater than zero. |
buf_ring_size
|
16384 | Power of two, 1–32768. |
buf_size
|
8192 bytes | Greater than zero. |
How it behaves
The worker submits accept, receive, send, proxy, and control operations and dispatches completion entries by operation identity. Provided buffer rings supply receive memory. Queue-saturation scheduling defers work safely when submission space is exhausted, and shutdown uses eventfd/control operations and cancellation.
Sizing
Submission entries bound concurrently queued work; completion entries provide headroom for results. Buffer-ring memory is approximately buf_ring_size × buf_size before other worker state, so the defaults represent a deliberate memory commitment. Reduce both together on constrained systems and load-test fragmentation and concurrency.
Use io_uring when
- the deployment is Linux-only;
- the kernel and container policy support the required operations and registered buffers;
- startup failure is preferable to runtime fallback.
Use Auto if io_uring is preferred but not mandatory.
Home