Skip to content

How many consumers can be supported per CPU core? #726

@danielxvu

Description

@danielxvu

Hi, would you be able to comment on how LiveKit fares in terms of performance when compared to other SFUs i.e. MediaSoup? MediaSoup claims to support 500 consumers per CPU core:

Depending on the host CPU capabilities, a mediasoup C++ subprocess can typically handle over ~500 consumers in total. If for example there are 4 peers in a room, all them sending audio and video and all them consuming the audio and video of the other peers, this would mean that:

Each peer receives audio and video from 3 peers, so 3x2 = 6 consumers in total.
There are 4 peers, so 4x6 = 24 consumers in total.

In particular, the LiveKit blog post "Going beyond a single-core" seems to imply that the number of 1600 down-tracks equates to the number of video tracks being consumed. If this assumption is correct, then 1600 video tracks divided by 16 cores comes out to 100 per core. Is the takeaway from said article then that LiveKit, on a 16-core VM, can only handle up to 100 consumers per core before experiencing performance degradation? And do the recent improvements cited in "Bringing Zoom's end-to-end optimizations to WebRTC" possibly improve the situation here?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions