Scale JVB performance on the same host by splitting into two JVB instances - possible? useful?

JVB has 100% CPU time on a machine with 50 participants (most audio-only) and there are limits for some participants, video streams switching off etc. I wish to boost performance on this single host.

Perhaps (I am guessing here) the limitation exists because of the single threaded JVB process and the processing limit of a single CPU core. The machine (VM) has 3 CPU cores, JVB uses approx. 100% CPU. Other processes on the machine have less than 1% CPU load each. 110 Mbit/sec of 1000 Mbits/sec dedicated Ethernet line is used. 1.4 GB of 6 GB RAM is used. The bottleneck likely is the single CPU core.

2/3 of participants use IPv4, 1/3 of them IPv6.

Can I scale the overall performance by having one JVB instance each for IPv6 and IPv4?

Perhaps this could be very simple? I cannot set up a big cluster, there is just one VM but with 2 idling CPU cores.

This is related to the topic at CPU count scale performance of jvb which has no replies yet. Other hints I could not find.

What does this log line looks like in your jvb log?

INFO: [1] TaskPools.<clinit>#87: TaskPools detected 2 processors, creating the CPU pool with that many threads
1 Like
# grep TaskPools /var/log/jitsi/jvb.log | tail -1
JVB 2022-07-31 23:02:37.042 INFO: [1] TaskPools.<clinit>#87: TaskPools detected 3 processors, creating the CPU pool with that many threads

Hmm. Does it multi-thread but lingers at almost exactly 100% by chance? So a load around 3 times as high should be OK (CPU wise)?

We use mostly 8-core servers for JVB and JVB has no problem using all the CPU resources. I would see if you can synthesise a bit more load and see if your usage goes past 100%. It might just happen to be about 1/3rd loaded and your issues (video streams switching off etc) might be due to something else (e.g. limited bandwidth at participant side)

1 Like

Great, thanks a lot.