We use Janus 0.x series running in Docker container on the host network. We have a Linux machine with a 10 Gbit network card, which we tested with traffic generators, showing the required bandwidth.
However, when we try to load test Janus with many concurrent users, we can reach ~1 Gbit bandwidth on ~1k CCU, after that all we can see on the clients is a black screen and no amount of new users increases total outgoing traffic.
We use our custom plugin β if you need additional details about its work, I will provide them.
How can we possibly fix such an issue? Where should we look?
We tried to set event_loops equal to the core count and saw an improvement in bandwidth which went up to ~1.6 Gbit/s with our plugin.
Next, we tried to load test the official Video Room plugin. There was 1 publisher with 1.5-2.5 Mbit/s outgoing stream. We started test agents in batches of 200 up to 1000 agents in total.
We hit the 1 Gbit/s limit as well β tried to add more agents but to no avail. We started to see a lot of slow-link events. It seemed like adding more agents caused the publisher to drop bitrate a bit.
The VideoRoom plugin is not optimized for 1-to-a-ton broadcasting, since it comes with its own bottlenecks, so it wil never do what you want as it is. A better check would be using the Streaming plugin with helper threads, or maybe try the experimental helper threads support in the VideoRoom.