mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
puppet: Use nice to deprioritize various processes.
Our priority hierarchy is: (1) Tornado and base services like memcached, redis, etc. (2) Django and message sender queue workers. (3) Everything else. Ideally, we'd have something a bit more fine-grained (e.g. some queue workers are potentially in the sending path, while others aren't), but this should have a big impact on ensuring Tornado gets the resources it needs during load spikes. I think this has a good chance of causing some load spikes that would previously have resulted in a user-facing delivery delays no longer having any significant user-facing impact.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
; variables can be expanded using this syntax: "%(ENV_HOME)s".
|
||||
|
||||
[program:zulip-django]
|
||||
command=/home/zulip/deployments/current/zulip-current-venv/bin/uwsgi --ini /etc/zulip/uwsgi.ini
|
||||
command=nice -n5 /home/zulip/deployments/current/zulip-current-venv/bin/uwsgi --ini /etc/zulip/uwsgi.ini
|
||||
priority=100 ; the relative start priority (default 999)
|
||||
autostart=true ; start at supervisord start (default: true)
|
||||
autorestart=true ; whether/when to restart (default: unexpected)
|
||||
@@ -58,7 +58,7 @@ directory=/home/zulip/deployments/current/
|
||||
<% if @queues_multiprocess %>
|
||||
<% @queues.each do |queue| -%>
|
||||
[program:zulip_events_<%= queue %>]
|
||||
command=/home/zulip/deployments/current/manage.py process_queue --queue_name=<%= queue %>
|
||||
command=nice -n10 /home/zulip/deployments/current/manage.py process_queue --queue_name=<%= queue %>
|
||||
priority=300 ; the relative start priority (default 999)
|
||||
autostart=true ; start at supervisord start (default: true)
|
||||
autorestart=true ; whether/when to restart (default: unexpected)
|
||||
@@ -73,7 +73,7 @@ directory=/home/zulip/deployments/current/
|
||||
<% end -%>
|
||||
<% else %>
|
||||
[program:zulip_events]
|
||||
command=/home/zulip/deployments/current/manage.py process_queue --multi_threaded <%= @queues.join(' ') %>
|
||||
command=nice -n10 /home/zulip/deployments/current/manage.py process_queue --multi_threaded <%= @queues.join(' ') %>
|
||||
priority=300 ; the relative start priority (default 999)
|
||||
autostart=true ; start at supervisord start (default: true)
|
||||
autorestart=true ; whether/when to restart (default: unexpected)
|
||||
@@ -90,7 +90,7 @@ killasgroup=true ; Without this, we leak processes every restart
|
||||
<% end %>
|
||||
|
||||
[program:zulip_deliver_enqueued_emails]
|
||||
command=/home/zulip/deployments/current/manage.py deliver_email
|
||||
command=nice -n15 /home/zulip/deployments/current/manage.py deliver_email
|
||||
priority=350 ; the relative start priority (default 999)
|
||||
autostart=true ; start at supervisord start (default: true)
|
||||
autorestart=true ; whether/when to restart (default: unexpected)
|
||||
@@ -104,7 +104,7 @@ stdout_logfile_backups=3 ; # of stdout logfile backups (default 10)
|
||||
directory=/home/zulip/deployments/current/
|
||||
|
||||
[program:zulip_deliver_scheduled_messages]
|
||||
command=/home/zulip/deployments/current/manage.py deliver_scheduled_messages
|
||||
command=nice -n15 /home/zulip/deployments/current/manage.py deliver_scheduled_messages
|
||||
priority=350 ; the relative start priority (default 999)
|
||||
autostart=true ; start at supervisord start (default: true)
|
||||
autorestart=true ; whether/when to restart (default: unexpected)
|
||||
@@ -118,7 +118,7 @@ stdout_logfile_backups=3 ; # of stdout logfile backups (default 10)
|
||||
directory=/home/zulip/deployments/current/
|
||||
|
||||
[program:zulip_events_message_sender]
|
||||
command=/home/zulip/deployments/current/manage.py process_queue --queue_name=message_sender --worker_num=%(process_num)s
|
||||
command=nice -n5 /home/zulip/deployments/current/manage.py process_queue --queue_name=message_sender --worker_num=%(process_num)s
|
||||
process_name=%(program_name)s-%(process_num)s
|
||||
priority=350 ; the relative start priority (default 999)
|
||||
autostart=true ; start at supervisord start (default: true)
|
||||
|
||||
Reference in New Issue
Block a user