497acb1670
PumaWorkerKiller is used for periodically checking and killing workers (the biggest one) if overall memory reaches specified limit. This metric allows us to watch number of killed workers.
76 lines
2.4 KiB
Ruby
76 lines
2.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# -----------------------------------------------------------------------
|
|
# This file is used by the GDK to generate a default config/puma.rb file
|
|
# Note that `/home/git` will be substituted for the actual GDK root
|
|
# directory when this file is generated
|
|
# -----------------------------------------------------------------------
|
|
|
|
# Load "path" as a rackup file.
|
|
#
|
|
# The default is "config.ru".
|
|
#
|
|
rackup 'config.ru'
|
|
pidfile '/home/git/gitlab/tmp/pids/puma.pid'
|
|
state_path '/home/git/gitlab/tmp/pids/puma.state'
|
|
|
|
stdout_redirect '/home/git/gitlab/log/puma.stdout.log',
|
|
'/home/git/gitlab/log/puma.stderr.log',
|
|
true
|
|
|
|
# Configure "min" to be the minimum number of threads to use to answer
|
|
# requests and "max" the maximum.
|
|
#
|
|
# The default is "0, 16".
|
|
#
|
|
threads 1, 4
|
|
|
|
# By default, workers accept all requests and queue them to pass to handlers.
|
|
# When false, workers accept the number of simultaneous requests configured.
|
|
#
|
|
# Queueing requests generally improves performance, but can cause deadlocks if
|
|
# the app is waiting on a request to itself. See https://github.com/puma/puma/issues/612
|
|
#
|
|
# When set to false this may require a reverse proxy to handle slow clients and
|
|
# queue requests before they reach puma. This is due to disabling HTTP keepalive
|
|
queue_requests false
|
|
|
|
# Bind the server to "url". "tcp://", "unix://" and "ssl://" are the only
|
|
# accepted protocols.
|
|
bind 'unix:///home/git/gitlab.socket'
|
|
|
|
workers 2
|
|
|
|
require_relative "/home/git/gitlab/lib/gitlab/cluster/lifecycle_events"
|
|
|
|
on_restart do
|
|
# Signal application hooks that we're about to restart
|
|
Gitlab::Cluster::LifecycleEvents.do_master_restart
|
|
end
|
|
|
|
before_fork do
|
|
# Signal to the puma killer
|
|
Gitlab::Cluster::PumaWorkerKillerInitializer.start @config.options unless ENV['DISABLE_PUMA_WORKER_KILLER']
|
|
|
|
# Signal application hooks that we're about to fork
|
|
Gitlab::Cluster::LifecycleEvents.do_before_fork
|
|
end
|
|
|
|
Gitlab::Cluster::LifecycleEvents.set_puma_options @config.options
|
|
on_worker_boot do
|
|
# Signal application hooks of worker start
|
|
Gitlab::Cluster::LifecycleEvents.do_worker_start
|
|
end
|
|
|
|
# Preload the application before starting the workers; this conflicts with
|
|
# phased restart feature. (off by default)
|
|
|
|
preload_app!
|
|
|
|
tag 'gitlab-puma-worker'
|
|
|
|
# Verifies that all workers have checked in to the master process within
|
|
# the given timeout. If not the worker process will be restarted. Default
|
|
# value is 60 seconds.
|
|
#
|
|
worker_timeout 60
|
|
|