Adjust harakiri and Number of Thread Settings in uWSGI for Indico

Hi everyone,

To improve the performance of our Indico application, our operations team proposes the following changes to our uWSGI configuration:

  • Change harakiri from 900 to 60 seconds to free up worker processes tied up by long requests.
  • Set threads = 2 to enable each worker process to handle multiple requests concurrently.

These adjustments aim to enhance resource utilization and application responsiveness.

Are there any side effects if we implement these changes? We need to ensure that all our libraries and dependencies support multi-threaded execution without issues.

Server specifications:

  • RAM: 62 GB
  • CPU cores: 62
  • SSD hard disk
  • Number of workers: 60

Enabling threading should be fine.

What about changing the harakiri setting from 900 to 60 seconds?

Fine if you do not expect legitimate requests (e.g. file uploads) to take that long. I would rather try to find out what kind of requests take a long time though…

1 Like

Thank you!
Here is your updated uWSGI configuration with the changes applied:

[uwsgi]
uid = indico
gid = www-data
umask = 027

processes = 60
threads = 2
enable-threads = true
socket = 127.0.0.1:8008
stats = /opt/indico/web/uwsgi-stats.sock
protocol = uwsgi

master = true
auto-procname = true
procname-prefix-spaced = indico
disable-logging = true

single-interpreter = true

touch-reload = /opt/indico/web/indico.wsgi
wsgi-file = /opt/indico/web/indico.wsgi
virtualenv = /opt/indico/.venv

vacuum = true
buffer-size = 65535
memory-report = true
max-requests = 5000
harakiri = 60
harakiri-verbose = true
reload-on-rss = 8192
evil-reload-on-rss = 16384