I have a server with 96CPUs, 512G mem and 11T disk, how to maximize the performance of janus on such a server? I guess maybe some configuration can be done on janus.jcfg? thanks in advance
Janus, like most network applications, is predominantly IO-bound rather than being CPU-bound. This means that beyond a certain point, performance bottlenecks tend to occur in the network subsystem and bandwidth, rather than in CPU or memory capabilities. Therefore, the typical approach to maximizing application performance in such scenarios is to scale out by increasing the number of servers rather than solely focusing on enhancing the performance of a single server.
thank you so much, to be honest my question is not specific enough, anyway ,thank u
by the way, we use webrtcperf to make stress test on janus, which is running on th e janus server by docker(with --network=host) mode and all traffic flows by lo, the problem is webrtcperf instance(process) cost CPUs more than it suppose to be(~5 CPUs each webrtcperf instance), is there any way to decrease the usage of CPUs by webrtcperf? (any options can be used to tuned for optimization?)
we launched several process of webrtcperf to produce participants of videoroom simultaneously, each webrtcperf run with a /dev/shm memory disk(256G), our target is 10 HD video+90-150 HD audio, but it looks the usage of CPUs by webrtcperf is too heavy and furthermore, I 'm not sure if the 256G memory disk is enough for all the webrtcperf process?
now we narrow down the issue, the cause of which looks like slow processing of media packets in jitterbuffer? there is continuous print of ‘discarding old packet …’, the source file is shown below:
Janus doesn’t have a jitterbuffer, but we do keep track of when a packet was queued for delivery and when it’s about to be sent: when too much time happens between the two, we print that message and discard the packet, since it would be useless anyway.
You may want to check which plugins you’re using and how, since some may have some bottlenecks under specific usages. The VideoRoom plugin, for instance, is not optimized for broadcasting to many viewers (unless you use something like this PR). The Streaming plugin is, but only if you enable helper threads. etc.
thank you very much, by the way, we have 96 CPUs, 512G mem, how to tune the event_loop? (event_loop=96?)