From 55b1696b9cf79e6fa2867b618afea4cf1ca42f87 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 3 May 2021 13:50:32 +0200 Subject: [PATCH] New page describing how to modify EGroupware environment for higher number of users --- ...g-EGroupware-for-higher-number-of-users.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Tuning-EGroupware-for-higher-number-of-users.md diff --git a/Tuning-EGroupware-for-higher-number-of-users.md b/Tuning-EGroupware-for-higher-number-of-users.md new file mode 100644 index 0000000..ac71af7 --- /dev/null +++ b/Tuning-EGroupware-for-higher-number-of-users.md @@ -0,0 +1,77 @@ +> The containerized EGroupware environment is configured for 100-200 users by default. + +## Size of shared memory used for the cache (APCu) + +> By default a size of 128 MB is used. Current usage can be checked under ```Administration > PHP Information > View APCu stats``` + +To set a higher amount, you need to add / uncomment the following environment Variable in /etc/egroupware-docker/docker-compose.override.yml +``` +service: + egroupware: + + environment: + - EGW_APC_SHM_SIZE=256M +``` +and rebuild the egroupware container with: +``` +/etc/egroupware-docker +docker-compose up -d +``` + +## Number of connections in Nginx servers + +> EGroupware Nginx and our Push server has a limit of 1024 concurrent connections (Nginx proxy on Host under Ubuntu 20.04 only 768!). + +To allow a higher number eg. 4096 in our example you need to make the following changes: + +1. Modify /etc/nginx/nginx.conf and restart Nginx with: ```nginx -s reload``` +``` +events { + #worker_connections 768; + worker_connections 4096; + # multi_accept on; +} +# we proxy, so each client connection (worker_connections) need 2 file-handles (worker_rlimit_nofile)! +worker_rlimit_nofile 8192; +``` +2. Copy /etc/nginx/nginx.conf from the egroupware-nginx container to /etc/egroupware-docker/egroupware-etc-nginx.conf: +``` +docker cp egroupware-nginx:/etc/nginx/nginx.conf /etc/egroupware-docker/egroupware-etc-nginx.conf +``` +3. Modify /etc/egroupware-docker/egroupware-etc-nginx.conf +``` +events { + #worker_connections 1024; + worker_connections 4096; + # multi_accept on; +} +# we proxy, so each client connection (worker_connections) need 2 file-handles (worker_rlimit_nofile)! +worker_rlimit_nofile 8192; +``` +4. Add the modified file as volume to the Nginx container by modifying /etc/egroupware-docker/docker-compose.override.yml +``` +service: + + nginx: + volumes: + - /etc/egroupware-docker/egroupware-etc-nginx.conf:/etc/nginx/nginx.conf +``` +> Indention in YAML files must be done with space (no tabs!) and the indention matters! +5. Add the following environment variable for our push-server to /etc/egroupware-docker/docker-compose.overreide.yml: +``` +service: + + push: + environment: + - EGW_MAX_PUSH_USERS=4096 +``` +5. Reload/rebuild the containers: +``` +cd /etc/egroupware-docker +docker-compose up -d +``` + +## Tuning of MariaDB container +You can add your modifications to /etc/egroupware-docker/mariadb.cnf and restart the container. + +