Table of Contents

performance

pgsql vacuum

su - postgres
"/usr/lib/postgresql/15/bin/vacuumdb" -p 45432 --all --analyze-in-stages
"/usr/lib/postgresql/15/bin/vacuumdb" -p 45432 --all -v

Default options

Default configuration: Web worker configuration:

OPENPROJECT_WEB_WORKERS="2"
OPENPROJECT_WEB_TIMEOUT="60"
OPENPROJECT_WEB_WAIT__TIMEOUT="10"
OPENPROJECT_WEB_MIN__THREADS="4"
OPENPROJECT_WEB_MAX__THREADS="16"

https://www.openproject.org/docs/installation-and-operations/system-requirements/#scaling-requirements

Mind, even just for 5 users we do recommend 2 web workers as each page may require multiple requests to be made simultaneously. Having just one will work, but pages may take longer to finish loading.

Scaling the number of web workers

openproject config:set OPENPROJECT_WEB_WORKERS=4
openproject configure
# or
openproject restart web

Minimize memory

Run Puma in single-mode (workers = 0) in order to reduce memory overhead.

/etc/openproject/conf.d/other
export OPENPROJECT_WEB_WORKERS="0"
export OPENPROJECT_WEB_MIN__THREADS="2"
export OPENPROJECT_WEB_MAX__THREADS="4"
# Settings this by env also works:
#expprt RAILS_MIN_THREADS="2"
#export RAILS_MAX_THREADS="4"
openproject configure
# or
openproject restart web

diagnose

journalctl -u openproject
journalctl -u openproject-web-1
openproject config:set OPENPROJECT_WEB_TIMEOUT="300"
openproject restart web