Running MediaSoup 3.10.6
I run all streams at 200KB/s up-to, so these are the stats.
Above are the two servers, two 4vCore@8GB unmetered 1Gbp/s; you can see what it costs to produce for all broadcasts in above photo different rooms (there’s camera icon for broadcasts containing audio/video together many times and viewer count beside it). Producing server is using about 0.5 1vCore firstname.lastname@example.orgMb/s. the consuming server (viewer server) is using about 1vCore @ 114.61Mb/s.
Now if outgoing or receiving makes a different this should be clear, enjoy!
For bandwidth calculations.
Producing server (user broadcasts here and pipes broadcast to a consumer server):
4.66460775 Terabytes (TB) per month . (outbound)
7.468632 Terabytes (TB) per month . (above - total for inbound or total of both)
This however may not count if you utilize private network so this could be free bandwidth with some hosts as you utilize the private networks.
Consuming server (user requests broadcast here and consumes the video/audio):
31.41624825 Terabytes (TB) per month . (outbound)
37.67517225 Terabytes (TB) per month . (above - total for inbound or total of both)
With many hosts the inbound is free as in you can download for days. The outbound is where they charge or limit based on usage. With the above numbers you can see producing that if we just send we’re at nearly 5TB of sent data, and less than half of it received overall. With consuming we have about 6TB sent from producer servers and we feed about 21TB a month out.
With that said, both servers were using about 1vCore each at these rates or whatever you determine above rates in photo.
If you run servers consider these results!
This excludes many optimizations for instance:
- I could destroy video track if user is hidden, and/or audio track if audio is muted but with obvious spam preventatives.
- If I exceed 12 camera’s per room, I could send audio for all and only allow 12 video tracks to load at a time and have a page system you scroll/click through.User camera’s could be drag/drop to prioritize and discard people you don’t want to see but maybe want to hear.
Beyond that and lots more, could see this be even faster and still make users very very happy. Any questions on usage/specs or anything related to performance do ask.
got a side question for you, i see you have producer and consumer on a different server, when you connect to consumer, how does it know its connected before any bytes has been received, i notice the mediasoup-client, transport.on("connect don’t get trigger even when the server calls connect, be interesting to know how u dealt with that
The question is a bit vague…
Please use a new topic for your problem.
@CosmosisT thanks for the insights, these results are better than the previous versions?
I’d definitely say it keeps getting better, the little optimizations made are definitely seen when you start loading up the servers usage. Comparing from an older version like 3.5 it’s noticeable.
Thanks, how do you conduct large tests like a call of 100 people to check the load? Do you use any automated process for this purpose?
Ok when you says your development gets tested by users you mean that you deploy your stuff to live and real users use the product and you check the stats etc?
I perfect my code locally with a small test then have hundreds → thousands of users test it. This helps me ensure we’re very stable.