How much RAM for 1000 users?

Hi, How much RAM do i need in my server if my app has 1000 users at one time?

You assumed it’s possible to handle 1000 users on a single server but it is not…

Possible using octo right ?

1000 on a server yes, 1000 in one meeting, no.
8Gb for signalling, and you need 4 bridges everyone using 8Gb should be ok.

1 Like

Hi @damencho - for 1000 users in a single meeting, is it not possible even if we have 20 JVBS in OCTO with 8 Cores CPU and 8 GI RAM Per machine ? If no, how many participants can we reach upto max even if it is in OCTO ?

The weakest points are the signaling and the UI. We are working on the UI, but the signaling will still be a problem. We have seen everything die with the current configurations we use around 700-800 for just that one call on the machines. There is no problem with the bridges, you can add as much as you want, but the signaling between the bridges will also suffer and will be slow with that many participants.
And anyway, 1000 participants is not a conference, this becomes a broadcast use case. And in broadcast case, you can have millions.
So we are working on and testing 500 participants and we don’t go beyond that point at the moment.

Thanks @damencho for the insights

One of the case that we had was,

150 conferences, 100-150 participants in every meeting, and this happens at the same time.

Just wanted to know, is this possible using octo ? I understand the case looks a bit big, but is this possible ?

Yes this possible, but you cannot achieve it with a single shard, you need 6-7 shards with bridges …

I need some clarity, sorry for my noob question

Shard means 6-7 complete JMS ( Web, prosody, jicofo ) right ?

If yes, how do I connect 6-7 shards to one ?

Okaye, will check this out

Like how much RAM do i need if have 50 users in a meeting and 20 meetings are going on. Now there are 1000 users in different meetings

1 Like

Hi…

I’m a litle confusing, sorry… That’s means one 8 CPU, 8 Gb Ram server with 4 JVB installed on same Server or… One 8 CPU, 8Gb Ram Server for jitsi-met,prosody and jocofo and four 8 CPU, 8 Gb Ram servers with one JVB installed on each one?

Sorry for my poor English… :frowning:

Different machines

1 Like

Hi @damencho,

I am trying to set up a Multi Shard + Octo environment. My OCTO Works just fine with a very high-level architecture as seen below

image

Now what I am trying to achieve is a multi-shard architecture with OCTO enabled for each JMS as mentioned by you

My new proposed high-level architecture looks something like this ( I have not enabled octo here )

image

My question is, in the previous architecture, we have specifically mentioned the firewall UDP port rules which worked successfully. Now in multi-shard,

  1. How do we configure the firewall?
  2. I have assigned a public IP to my reverse proxy which is behind the firewall. The JMS stacks are just simple vms behind the same firewall. How and where will the user connect if the JMS has same 10000 port for vb?

My current haproxy.cfg for the HAProxy VM looks something like this

global
        log /dev/log local0
        maxconn 512
        spread-checks 5
        ssl-server-verify none

defaults
        mode http
        log global
        option log-health-checks
        option httplog
        balance roundrobin
        option forwardfor
        timeout client 150000
        timeout server 3600000
        timeout connect 500

        stats enable
        stats scope .
        stats uri /haproxy?stats
        option httpclose
        option forwardfor
        stats refresh 10s

frontend metrics
        bind 0.0.0.0:9101
        http-request use-service prometheus-exporter if { path /metrics }


frontend meet_frontend
        http-request set-header X-Forwarded-Proto https
        bind 0.0.0.0:443 ssl crt /usr/local/etc/haproxy/.certs/certs.pem
        default_backend meet_backend
        option http-use-htx
   
backend meet_backend
        balance roundrobin
        stick-table type string len 256 size 200k expire 120m
        stick on url_param(room)
        server meet_backend_1 <internal-ip>:443 ssl check
        server meet_backend_2 <internal-ip>:443 ssl check
        server meet_backend_3 <internal-ip>:443 ssl check

Use different UDP ports for each JVB

@emrah - yes, even if I do that, how do I do the firewall configurations? Because the request will be coming first to the reverse proxy and will then be forwarded to respective jms.

You don’t need to care forwarding the UDP ports. The choosen JMS can send the related info to the clients. The firewall rules (for UDP) will be something like the followings:

UDP/10001 -> JVB1 UDP/10001
UDP/10002 -> JVB2 UDP/10002
UDP/10003 -> JVB3 UDP/10003

@emrah Okay, I’ll try that,

So in the case of MultiShard + OCTO,

for the first JMS which will have 5 jvb’s in octo, this will be the scenario

UDP/10001 -> JVB1 UDP/10001
UDP/10002 -> JVB2 UDP/10002
UDP/10003 -> JVB3 UDP/10003
UDP/10004 -> JVB4 UDP/10004
UDP/10005 -> JVB5 UDP/10005

and same will go on for JMS 2 and 3.

I just need to configure the firewall in the same way. Am I right?

If each JMS has its own public IP then you can configure the firewall in the same way.

If all JMSs share the same public IP then you need to bind each JVB to a new UDP port.