jech / galene

The Galène videoconference server
https://galene.org
MIT License
900 stars 119 forks source link

How to scale? #116

Closed klanjabrik closed 2 years ago

klanjabrik commented 2 years ago

How to scale Galene? Are there any best practices?

Thanks.

jech commented 2 years ago
  1. Add more cores

    Galene was designed to scale up to 64 cores or so: there is no contention between different streams, and even a single stream should be able to scale fairly well (contention is kept to a minimum between subscribers to a single stream). I regularly test scalability on 4 cores (by underclocking a 4-core ARM board), but I haven't actually tested if I did things right to scale above 4 cores since I don't own suitable hardware.

  2. Use multiple servers

    You may redirect your users to a different server using the redirect option in the group configuration. We have successfully used this feature in order to redirect users when a conference turned out to be more popular than expected.

Unfortunately, it is not currently possible to shard the server invisibly to the users by using a reverse proxy, since the clients will still all connect to the same WebSocket. Let me know if you're interested in such a feature, and we'll think about extending the protocol to allow sharding.

klanjabrik commented 2 years ago

Thanks @jech . I was thinking to create an auto-create pod (docker) for every group, i think it's something like you have mentioned in point number 2.

jech commented 2 years ago

Please let me know about your experiments. I am interested in support for sharding (single frontend, multiple backends) and for group federation, but there aren't currently enough large-scale deployments of Galene to make it worth my while.