summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2018-11-01 00:27:38 -0700
committerStan Hu <stanhu@gmail.com>2018-11-01 00:29:16 -0700
commitd19ba4439b4f0cda2aa5ab6e1fb7e4f4330738db (patch)
tree3f612522395c9c7bdbc0fa5f6d15e7d241a34d29
parent31733b6fc5a9ba4443a5dd279e787e2fd8e31c6d (diff)
downloadgitlab-ce-sh-bump-puma-memory-limits.tar.gz
Reserve more RAM for master process in Pumash-bump-puma-memory-limits
The Puma Worker Killer checks the total RAM used by both the master and worker processes. Bump the limits to N+1 instead of N workers to account for this.
-rw-r--r--lib/gitlab/cluster/puma_worker_killer_initializer.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/gitlab/cluster/puma_worker_killer_initializer.rb b/lib/gitlab/cluster/puma_worker_killer_initializer.rb
index 331c39f7d6b..4ed9a9a02ab 100644
--- a/lib/gitlab/cluster/puma_worker_killer_initializer.rb
+++ b/lib/gitlab/cluster/puma_worker_killer_initializer.rb
@@ -11,7 +11,11 @@ module Gitlab
# Importantly RAM is for _all_workers (ie, the cluster),
# not each worker as is the case with GITLAB_UNICORN_MEMORY_MAX
worker_count = puma_options[:workers] || 1
- config.ram = worker_count * puma_per_worker_max_memory_mb
+ # The Puma Worker Killer checks the total RAM used by both the master
+ # and worker processes. Bump the limits to N+1 instead of N workers
+ # to account for this:
+ # https://github.com/schneems/puma_worker_killer/blob/v0.1.0/lib/puma_worker_killer/puma_memory.rb#L57
+ config.ram = (worker_count + 1) * puma_per_worker_max_memory_mb
config.frequency = 20 # seconds