How to prepare infrastructure for 100+ users... do I need an auto scaling group?

I have learned loads in the past few weeks re jitsi thanks to posts here, and have successfully moved from having a local test install (virtual machine on our QNAP NAS) to getting our own jitsi meet running on an AWS EC2 server :slightly_smiling_face:

I have deployed a c5.xlarge instance as I had read that that was ideal, however I am unclear as to how many simultaneous conferences this will support, and need to ensure that we can support a conference in early June that will need 4 rooms, each with 25-30 participants running concurrently with up to 15 more rooms, which will just be 1-to-1.

I have consumed several posts and videos regarding scaling the jitsi on AWS but am struggling with some of the information being out of date, although it does seem clear that I will need to add additional videobridges? Any pointers there would be much appreciated and also hopefully someone can please point me on the right path with a few specific questions:

Will a single c5.xlarge instance handle the above scenario, or will I need to add at least one additional videobridge, or perhaps an auto-scaling group of additional videobridges?

Is there a difference between provisioning a single, more powerful instance (e.g. c5.9xlarge, 36c and 72GB RAM) as opposed to auto-scaling 9x multiple, less powerful instances (e.g. c5.xlarge, 4c 8GB) which would have the same cores/RAM… (other than the cost implication)

Would a more powerful single instance actually handle the required scenario?

1 Like

From what I’ve seen in these threads and around github, 4CPUs and 8GB of RAM can handle about 30 people in one room. I haven’t confirmed this myself, but if true you would need about 4 videobridges load balanced

Thanks. I thought I had read that a single instance would handle quite a bit more than that, but perhaps I am mistaken…

So would there be a performance difference between running a single additional JVB with 36-cores compared to 9x 4-core instances which would be the same number of cores?

If I were to add just one additional JVB to load-balance the Meet+JVB main server, what spec would I need, or is it always better to use an auto-scaling deployment with more lower spec servers?

I would be incredibly grateful if anyone could confirm what the expected capacity is of my current, single c5.xlarge 4-core instance?

The JVB Performance Evaluation web page talks about 1000 streams on a single 4-core system…

Note that even though our tests used a single conference, it had 1056 video (and also 1056 audio) streams going out of the videobridge. This generates a bitrate roughly equivalent to 528 one-to-one conferences, 176 3-person conferences or 53 conferences with 5 people.

…but these 1056 streams only consumed 20% of the available CPU on the 4-core server, and if I understand correctly this was a stress-test so more capacity could be extracted in my scenario by reducing video size to 360 and setting the lastN parameter?

@damencho mentions in another thread that “For meet.jit.si we use aws c5.xlarge instances for jvb in an autoscale group based on CPU and bandwidth. So whenever there is some load the system will auto-adopt.” which was my main reason for choosing the same AWS instance as a starting point. I’d just like to know how best to move forward – do I need additional instances or is there a more appropriate configuration for the required scenario (4 rooms x 25-30 participants plus 15 one-to-one rooms)…??

1 Like

Hi Abinning, i test with digital ocean with a droplet cpu optimized 8gb RAM - 4 CPUs and only could join 7 or 8 participants in 4 rooms. Now i mounting a instance in aws c5.xlarge…it would be good to have a panel admin for monitorear the quantity you confer and with all the participants… I could only verify across my panel

Thanks Luis. I too am looking to find a better way of monitoring, as I’m currently just using the Terminal to view stats (and the AWS Dashboard)… I’ve not fully tested multiple rooms yet, but previous test had 18 participants on my c5.xlarge instance and only peaked at ~22% CPU. Still trying to figure out for my scenario what the best way forward is re to auto-scale or not and what the most appropriate instance type would be (cores/RAM)