mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +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