First post here. Here it goes!
Today, we successfully hosted an onpremise jitsi server audio only session with 55 participants. During the session, only 1 participant with audio enabled (i.e the speaker). The session consumed approx an avg of 12-15Mbps of our server internet bandwidth.
Our onpremise jitsi server is powered by 2 x Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz with a total of 40 cores. and 128gb of memory.
I am trying to understand the output of the htop statistics below.
High CPU utilization was observed but with only one JVB process, what does it means?
Looking at htop load average stats, i understand 2.17 to be considerable average utilization or otherwise? The 40 cores cpu statistics seems to indicate low utilization, how does this stats relates to the single jvb process that consumed 162. % cpu?
final question, as the current setup is a direct server installation.
Does a multiple/scalabe jitsi server setup using vmware virtual machine, on the same server will improve the jitsi performance or the current setup is more optimized in terms of CPU utilization is concern?
JVB runs as a single process with many threads. 162 in the CPU% column of htop means “162% of one CPU”, in other words it’s spread across many CPUs. IIRC, you can press H (capital H) in htop to show threads separately in the process list.
Your server is virtually idle
With 20 cores (your server in fact has 20 cores, 40 threads, not 40 cores), you would probably need to run more than one JVB instance in order to be able to use all the CPU resources you have. You have plenty of RAM, so assuming you also have sufficient network capacity on the server that’s what I’d recommend.
You can just run additional JVB instances bound to separate IPs or ports on the same host OS. I’d suggest that an approach with containers or VMs would be better from a maintenance perspective, but it all depends on what you’re used to.
Thank you @jbg for your help and explanation, it is very useful!
The next conference will have 55 participants with all audio/video enabled. I’m expecting the bandwidth consumption will go up to 1Gbps. I hope todays result is a good indication that the server will be able to cope it but I’m expecting most of the performance issues will be at the end user side (poor internet connection, etc). Will keep the htop capital H key in mind for the next session.
About running additional JVB instances, as the server is behind a NAT firewall appliance. Do I need to assign another dedicated public ip address for the additional jvb servers? can’t seem to find this info anywhere in the documentation to validate my assumption.
As the requirement is only hosting one conference/session with up to 100 participants. I understand that multiple JVB instances will only benefits multiple conference sessions as each conference/session will be handled by only one JVB instance/server (ie all participants of one conference will connect to the same jvb server?). Setting up Octo (cascaded bridges) is required to loadbalance 100 participants in one conference across multiple jvb server. Do correct me if im wrong here as im still learning linux and jitsi.
Yes, if you don’t set up Octo, each conference will only use a single bridge. 55 participants on a single bridge will be fine though.
If you need to run a conference with a larger number of participants than a single JVB instance can handle, you can use Octo even with multiple JVBs running on the same server. Use localhost or the server’s private IP as the Octo bind address, and give each JVB instance a different octo bind port.