puppet: Add override for queue_workers_multiprocess.

With tweaks to the documentation by tabbott.

This uses the following configuration option:

[application_server]
queue_workers_multiprocess = false
This commit is contained in:
Jennifer Hwang
2021-04-19 15:11:07 -07:00
committed by Tim Abbott
parent 051d448bc0
commit c9f5946239
2 changed files with 16 additions and 1 deletions

View File

@@ -492,6 +492,20 @@ non-empty value is currently equivalent to true).
[s3-uploads]: ../production/upload-backends.html#s3-backend-configuration
#### `queue_workers_multiprocess`
By default, Zulip automatically detects whether the system has enough
memory to run Zulip queue processors in the higher-throughput but more
multiprocess mode (or to save 1.5GiB of RAM with the multithreaded
mode). The calculation is based on whether the system has enough
memory (currently 3.5GiB) to run a single-server Zulip installation in
the multiprocess mode.
Set to `true` or `false` to override the automatic calculation. This
override is useful both Docker systems (where the above algorithm
might see the host's memory, not the container's) and/or when using
remote servers for postgres, memcached, redis, and RabbitMQ.
#### `uwsgi_buffer_size`
Override the default uwsgi buffer size of 8192.

View File

@@ -72,7 +72,8 @@ class zulip::app_frontend_base {
# This determines whether we run queue processors multithreaded or
# multiprocess. Multiprocess scales much better, but requires more
# RAM; we just auto-detect based on available system RAM.
$queues_multiprocess = $zulip::common::total_memory_mb > 3500
$queues_multiprocess_default = $zulip::common::total_memory_mb > 3500
$queues_multiprocess = Boolean(zulipconf('application_server', 'queue_workers_multiprocess', $queues_multiprocess_default))
$queues = [
'deferred_work',
'digest_emails',