How to determine amount of RAM and number of cores needed on a server?

I’ve set up a Jitsi Meet server on a virtual machine in the cloud for an initial test. This is a very minimal VM: 1 CPU core, 512 MB memory, 20 GB virtual disk, minimal Debian OS. I’ve tested it with three users and it seems to work well.

Are there any quidelines for the CPU and RAM resources needed to support a larger number of users? I’ve looked for documentation and haven’t found any. If someone could point me at a document, or report on their own experience, I would be grateful.

I’m new to Jitsi and am trying to get my friends and associates to adopt it. Thanks for this software and for making it freely available!

2 Likes

At least 8GB RAM for one machine running nginx + prosody + jicofo + jvb.

2 Likes

OK, but how many users can one server support with that 8 GB of RAM? How many cores needed in the CPU?

I have recently hosted conference for ~30 people. I have noticed that RAM usage does not really change much when they switch on their cams and mics. I would say for up to 30 users you would be fine with 2GB of fully allocated (KVM for example) DDR4 ECC RAM.
CPU is incerasing with every new user a bit. But for 30 people 4 vCores with approx 25% allowance on them of newer Intel Xeon CPU should be also fine.
The most important resource is bandwidth. You should have a dedicated line (proper data centre) starting at around 50 Mbps, if you want your participants to be able to switch their cams, etc.

There’s not a really clear reply to this…

Consider that every user consumes about 4 Mbit of bandwidth so the first thing to take in mind is that, more than CPU or RAM

How many CPU? Also this can’t be replied, I had bad providers with bad CPU and overselled services, so also in idle sometimes I seen the cores to be 40% with no usage at all, plus it depends on the situation, if the users are using the same codec and browser or not, in case the codec isn’t supported on the other user, the server would transcode it making CPU load

How much ram? this also depends on the previous factors plus if you’re using apache, nginx or whatever.

I had never had a so few network, neither on bad providers… consider that the minimum I keep, for anything, is a dedicated 1 Gbit/s on a minimum 100 Gb/s backbone

Emm. Well, good for you? ;/
Of course the more the better. But not everyone can afford a good Gigabit line, and it is not available everywhere as well. For 30 users 50 Mbps is a good idea for a minimum to start with. From my experience anyway…

Thanks for the responses. My server is a VM in the cloud. I don’t have specs on the Internet connection but I think it would not be the limiting factor.

@MamasLT, if your numbers scale linearly (just a guess!) then my 1 core, 512 MB should handle 7 users OK. I’ll try to put that to the test! Just to clarify, I’m not using any bells and whistles like recording, streaming, or PSTN interface.

I’m seeing a related topic here

Recommended-server-specs-for-2020

So far the “densest” server reported in that topic is 5 users/2 cores/4 GB.

Yes - please copy the suggested response from the original post and enter in your numbers. That’ll help to quantify the various configurations required. Thanks.

There are lots of cheap providers in Europe, I know, we’re lucky…

Really bad, always check these info on your provider, and more than everything if it’s a VPS always prefer a KVM to an OpenVZ since KVM are strictly allocated when OpenVZ can be shared, meaning that if I’m a bad provider, I could make 4 x 16GB RAM VPS on a 32GB RAM phisical machine (overselling)

Doubt about this:

I thought the requirements are more important for the machine of the sender than the server. And it (sender’s machine) have more needs as more users connected to the stream.
Isn’t that?
What are those needs if that’s not a wrong affirmation ?

Not really — your videobridge server carries all the traffic, and needs to be up to the job. The recommendation above is for at least 8GB of RAM, and 2 cores.

1 Like

Understanding the architecture…
Thanks for the quick reply!

By default, jicofo launches with java -Xmx3072m, so I most certainly would not give it less than 3GB. I would give it at least 4GB or just stick with the recommended 8GB. Personally, my setup is 4 cores, 8GB of RAM, 16GB of storage (fairly new setup, not even using 2GB of it at this point).

@ajgreenawalt - That seems counterintuitive to me. Referring to my original post, I’m setting up a server for a small group chat - say 6 people. If each person is generating a video stream at 3 Mbit/s (the most I’ve seen) then that’s 18 MBit/s = 2.3 MByte/s = 135 MByte/minute. That data stream would take 20 minutes to generate 3 GByte of data!! But Jitsi is not storing all that data - hopefully just a few seconds worth. So what possible need could there be for 3 GByte of memory, let alone 8 GByte??

My understanding is that the 3072 in Xmx3072m refers to the default the heap size (MB) in the JVM - but I’m very new to Java so maybe someone can enlighten me. If the concern is that problems may arise if a JVM with a 3072 MB heap limit is run on a machine with just 512 MB of memory, surely the correct action is to reduce the heap size in the JVM.

Maybe I’m totally clueless on this - any and all comments welcome!