Hi,
We are using iroh QUIC DATAGRAM for realtime audio.
With one server-side Endpoint, everything is stable up to about 30 concurrent connections. Above that, conn.read_datagram() starts returning packets in bursts. We see 100–800 ms gaps between read_datagram() returns.
The workload is small DATAGRAM packets every 20 ms per connection. The selected path is usually direct IP, not relay. Server CPU is not saturated.
We checked our application pipeline after read_datagram():
- application queues are not full
- packet processing is not slow
- no local backlog
So the burst seems to happen before the datagram reaches our application code.
Is this expected for one Endpoint with many realtime DATAGRAM connections? Would you recommend increasing runtime worker threads, tuning datagram buffers, or sharding traffic across multiple Endpoints/UDP ports?
Thanks
Hi,
We are using iroh QUIC DATAGRAM for realtime audio.
With one server-side Endpoint, everything is stable up to about 30 concurrent connections. Above that, conn.read_datagram() starts returning packets in bursts. We see 100–800 ms gaps between read_datagram() returns.
The workload is small DATAGRAM packets every 20 ms per connection. The selected path is usually direct IP, not relay. Server CPU is not saturated.
We checked our application pipeline after read_datagram():
So the burst seems to happen before the datagram reaches our application code.
Is this expected for one Endpoint with many realtime DATAGRAM connections? Would you recommend increasing runtime worker threads, tuning datagram buffers, or sharding traffic across multiple Endpoints/UDP ports?
Thanks