Files
opendesk/docs/scaling.md
2025-05-20 17:16:41 +02:00

4.0 KiB

Scaling

This document covers the possibilities to scale the applications in openDesk.

It provides rough benchmarks for configuring your own environment across various scale levels. In production, resource demands are primarily driven by actual usage patterns and system load, especially the number of concurrently active users. Consequently, we strongly recommend implementing monitoring and logging solutions to detect usage trends and enable timely intervention when needed.

Application Recommendation Note(s)
Collabora * 15 active users per CPU thread
* 10 active users per Mbit/s
* 50 MB RAM per active user
-
Element Per 10k users (with federation / no federation):

Homeserver:
* 10 vCPU / 15 vCPU
* 8150 MiB RAM / 11650 MiB RAM

Postgres:
* 4 vCPU / 10 vCPU
* 16 GiB RAM / 32 GiB RAM
Required hardware resources really depend on federation vs. no federation
Cryptpad No large-scale deployments seen, minimum requirements:
* 2 vCPU
* 2 GB RAM
* 20 GB storage (depending on planned usage)
Most of the computation is done client-side
Jitsi Jitsi-Meet server:
* 4 vCPU
* 8 GB RAM

For every 200 concurrent users one JVB with:
* 8 vCPU
* 8 GB RAM

Network bandwidth:
* 1 GBit/s - 10 GBit/s small deployments
* 10 Gbit/s per bridge large deployments
JVB network bandwidth calculation depends on the stream resolution (HD vs. 4k).
Nextcloud Up to 5,000 / more than 5,000 users:
* 4 to 20 application servers with 8 cores and 32GB / 64GB RAM each
* 2/4 DB servers with 8 / 16 cores and 64GB / 128GB RAM each (/ plus DB load balancer)
* 1 / 2 HAproxy load balancer with 2 cores and 16GB RAM
-
OpenProject * 4-6 vCPU per ~500 users
* 6-8 GB per ~500 users
* +20-50 GB storage per ~500 users, depending on workload and attachment storage1

* Web Workers: +4 per ~500 users
* Background Workers: +1-2 multithreaded workers per ~500 users, depending on workload
These values are guidelines and should be adjusted based on actual monitoring of resource usage. Scaling should prioritize CPU and RAM, prioritize scaling Web Workers first, followed by Background Workers and Disk Space as needed.
Open-Xchange For ~200 users (64 concurrent users to App Suite & 128 users to Dovecot):
* 10 vCPU
* 58 GB RAM
* 660 GB storage
-
XWiki Advise for small instances:
* 4 vCPU
* 6GB RAM
-

Upstream information

While scaling services horizontally is the ideal solution, information about vertical scaling is helpful when defining the application's resources, see resources.yaml.gotmpl for references.

Linked below is documentation related to scaling for upstream applications, where publically available:


  1. Nextcloud is configured for attachment storage as well. ↩︎