====== 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: [[https://www.openproject.org/docs/installation-and-operations/configuration/#web-worker-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.
[[https://www.openproject.org/docs/installation-and-operations/operation/control/#scaling-the-number-of-web-workers|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.
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