Production Sizing for Self-Hosted Track Egress

Hi LiveKit team,

I’m planning to self-host LiveKit Egress in Kubernetes and would like some guidance on infrastructure sizing and autoscaling.

Our use case

  • Track Egress (not RoomComposite)
  • Supporting both 1:1 video calls and group video calls
  • Recording each participant’s audio and video tracks separately
  • Maximum recording resolution: 720p (1280×720)
  • Maximum frame rate: 30 FPS
  • A separate merge service combines the recorded tracks into a final MP4
  • Final recordings are uploaded to S3
  • We are planning for hundreds of concurrent recordings

Questions

  1. Is there an official recommendation for the minimum and recommended CPU/RAM required per Egress instance for Track Egress at 720p/30 FPS?
  2. Approximately how many concurrent Track Egress jobs can we expect from servers with:
    • 4 vCPU / 8 GB RAM
    • 8 vCPU / 16 GB RAM
    • 16 vCPU / 32 GB RAM
  3. For 1:1 calls, if both participants have audio and video tracks, are there any specific resource considerations compared with recording a single track?
  4. For group calls, where multiple participants’ audio/video tracks are being recorded separately, how does the number of tracks per room affect Egress CPU, memory, and network usage?
  5. Does Track Egress normally subscribe to the highest available simulcast layer? If so, can we configure or control which simulcast layer Egress records?
  6. For a maximum of 720p/30 FPS, what factors have the biggest impact on CPU and memory consumption for Track Egress?
  7. Are there recommended Kubernetes CPU/memory requests and limits for Track Egress?
  8. What is the recommended approach for autoscaling Egress workers in Kubernetes? Is CPU-based HPA sufficient, or is there a better metric/approach for determining when another Egress worker is required?
  9. Since we expect hundreds of concurrent recordings, is there a recommended architecture where LiveKit Egress is hosted separately from the LiveKit Server and scaled independently?
  10. Is there any managed/cloud platform or LiveKit-supported service available where Egress workers can be hosted separately with automatic scaling, rather than managing the Egress Kubernetes deployment ourselves?
  11. Are there any production examples or recommendations for sizing a large-scale Track Egress deployment supporting both 1:1 and group calls?

Any recommendations or production experience would be greatly appreciated. Thanks!

@Yuvaraj_Moorthy I have a very close use-case and still trying to figure out a proper infra-structure and a practical auto-scaling metric.

For Infra, the only clue I found was "Real world load test results" But I expect our case should serve way more connections as we are not using AI or VAD at all.

Let me know if you reached a conclusion about this.