webrtcbuilders.
Home / Blog / TURN server sizing for production WebRTC
Infrastructure 9 min read

TURN server sizing for production WebRTC

Hosted SDKs include TURN, but if you are self-hosting (or your enterprise customers demand it), how do you size for expected concurrents without over-provisioning?

WB

WebRTC Builders

May 2, 2026

TURN server sizing for production WebRTC

Hosted SDKs (Daily, Agora) include TURN by default. For self-hosted setups — most often LiveKit, sometimes coturn standalone — you have to size and operate your own TURN cluster.

Why sizing matters

Roughly 15-25% of WebRTC connections need a TURN relay. The rest connect peer-to-peer or via STUN. So if you have 100 concurrent calls, expect 15-25 of them to be relayed.

Each relayed connection consumes bandwidth at your TURN server equal to the call's media bitrate, multiplied by both directions. A 720p video call at 1.2 Mbps means 2.4 Mbps of TURN bandwidth per relayed connection.

The math

For a target of 1,000 concurrent calls:

  • Expected TURN relays: ~200 (20% mid-range)
  • Per relay: ~2.4 Mbps
  • Total TURN bandwidth: ~480 Mbps sustained, plus burst headroom

A single mid-tier server (8 vCPU, 32GB RAM, 10 Gbps NIC) handles this comfortably. But you want at least two for failover.

TLS overhead

TURN/TLS adds ~5-10% CPU overhead vs TURN/UDP. Not material for sizing unless you are at the edge of your CPU budget.

What we deliver

Every multi-region build includes a coturn cloud-init template, a Pulumi stack to provision two regions with DNS failover, and a written capacity sheet for your team's runbook.

WB

Written by

WebRTC Builders

Share

Get the full integration

Stop reading. Start shipping.

Pick a plan and we'll have working WebRTC video calling on your dashboard inside the delivery window.