Hi Team,
Could you please share your recommended infrastructure configuration (CPU, RAM, etc.) for a self-hosted LiveKit deployment to support 5 concurrent Voice AI calls, including recording all 5 calls simultaneously?
Specifically, we’re looking for the recommended sizing for:
- LiveKit Server
- LiveKit SIP
- LiveKit Egress
- LiveKit Agents
We’d appreciate any guidance or best practices for this deployment.
Oh, I love it. Give me a few to think about it. How to spin up 5 at one time, with CPU, and RAM.
Man, oh man. How many Cores/Threads, and how much RAM? That will help me think it out
It must be a monster, to handle 2. For that matter, 1.
AH, got it — my bad! At first glance, I was thinking you meant 5 concurrent talking video avatars, which is an absolute hardware monster (requires a solid dedicated GPU and heavy host specs).
For 5 concurrent audio-only voice AI calls + active recording, the hardware requirements are actually very manageable:
- Host Spec: A single machine with 8 CPU cores / 16 GB RAM (like an AWS c6i.2xlarge or a decent bare-metal server) will handle all 5 calls cleanly.
- The Breakdown:
- LiveKit Server & SIP: Very lightweight (~2 vCPUs total). They just route WebRTC/RTP audio packets.
- LiveKit Agents: ~4 vCPUs / 8 GB RAM to handle the 5 active worker processes, VAD, and streaming audio back and forth to Deepgram/TTS.
- LiveKit Egress (Recording): ~4 vCPUs. Crucial tip: Ensure you use audio-only egress(audio_only: true or Track Egress). Avoid RoomComposite egress here, as spinning up headless Chrome instances for video layout will unnecessarily spike your CPU. TrackComposite is best for this
Unless you’re running local LLMs/TTS on the box itself, that 8-core setup gives you plenty of headroom to prevent audio drops or recording lag!
My mind is still coming off the 1 talking avatar that I have, and man it was a doozy. I even reverted to a simple Push to Talk, and than realized it was just too much load. And, why add extra Server Load, when it’s just for a neat feature. I’d love to hear how you solve this.