Scalability and Testing

Hi,
I am new user here. I have successfully implemented mediasoup on 8 core cpu. I have few questions,

  1. As per Scalability 1 router can handle 500 consumers. If i pause the consumer from server side, will it will comes in those 500 or should i close the consumers when producer pause the video or audio to support more users.

  2. Is there any lib or way i can test 10-15 meetings with upto 50 users.

  1. There is no limit to 500 pr router. The metric is roughly 500 pr CPU core, though that number in most cases is quite conservative. There is no need to tear down the consumer, pausing it is fine. The limit applies to Consumers with active media on them.

  2. There are a few demos and applications made with Mediasoup that you can look at in the examples category on the homepage. If you are talking about automated testing, I don’t think there are any readily available sources for that.

Probably you know but there is a suite for load testing at GitHub - webrtc/KITE: KITE is a test engine designed to test WebRTC interoperability across browsers
It works with MediaSoup

  1. None of my tests containing audio/video with active bitrate flowing allowed for me to reach more than 50-70 users comfortably per core, this is equivalent to 100-140 active transports however note there’s significant jumps in the CPU when you start to increase these active transports so for instance you may see users are steady at 1.2% for their audio/video however this could jump to 1.8% and with 50 users, that could be an overload so some room to breath could be needed however not necessarily for audio transports would this get noticed?

Not entirely sure where the 500 consumers came from but if it was based off the tests I had run it’s definitely for four cores, not a single core or all those transports were certainly empty instances “doing nothing”. My numbers too have come back the same on cheap xeon’s and gold grade xeons, core calculations these days and technologies these days don’t give much more of an edge than core counts in comparisons so same results just multiple them.

  1. Most demo’s should give you an idea however you’ll maybe be overloading a four-core setup with a demo like that.

(((12 users x 50 viewers) - 12 users who don’t view themselves) x 2 for transports)
(assume all are audio/video or will switch)

We get a total of 588 total user broadcasts loaded and/or 1,176 transports fully active remember that too. So in regards to even doing a 12x50 room, you’ll need from my tests at least an 8-core setup. It gets scary trust me lololol

Consumers and users are not the same thing.

70 users with audio + video that is sent to everyone else means:
70*2=140 producers
69*2*70=9660 consumers ← this is the number mentioned as 500

Of course you wouldn’t have everyone with both audio and video and most people would be muted, but this is how math works.

I’ve been developing an OpenVidu (Kurento) based voice-chat for past few months but having conducted some testing I’m very disappointed with the performance and resource usage. :slight_smile:

Are you guys aware of how would the number of users per core look like for audio-only calls?

Does MediaSoup provide any optimizations for users who are not currently speaking transmitting?

Mediasoup gives you the tools to do optimizations you need, but it all depends on what application needs. Just read through docs.