Skip to content

Commit

Permalink
Merge pull request #202 from cre-ne-jp/add-config-unicorn-autorestart
Browse files Browse the repository at this point in the history
設定ファイルで Unicorn 自動再起動の設定を行えるようにした
  • Loading branch information
ochaochaocha3 authored Mar 14, 2020
2 parents 2e8aa5e + 54f001f commit 2319cf0
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 3 deletions.
23 changes: 20 additions & 3 deletions config.ru
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
# This file is used by Rack-based servers to start the application.

if defined?(Unicorn)
require 'unicorn/worker_killer'

auto_restart_verbose =
ENV['UNICORN_AUTO_RESTART_VERBOSE'].to_s.downcase == 'true'

max_requests = {
min: ENV['UNICORN_MAX_REQUESTS_MIN']&.to_i || 1024,
max: ENV['UNICORN_MAX_REQUESTS_MAX']&.to_i || 2048
}.freeze
use Unicorn::WorkerKiller::MaxRequests, max_requests[:min], max_requests[:max], auto_restart_verbose

oom = {
min: ((ENV['UNICORN_OOM_MIN']&.to_i || 192) * (1024 ** 2)),
max: ((ENV['UNICORN_OOM_MAX']&.to_i || 256) * (1024 ** 2)),
check_cycle: ENV['UNICORN_OOM_CHECK_CYCLE']&.to_i || 16
}.freeze
use Unicorn::WorkerKiller::Oom, oom[:min], oom[:max], oom[:check_cycle], auto_restart_verbose
end

require ::File.expand_path('../config/environment', __FILE__)
run Rails.application

use Unicorn::WorkerKiller::MaxRequests, 1024, 2048, true
use Unicorn::WorkerKiller::Oom, (192*(1024**2)), (256*(1024**2))
23 changes: 23 additions & 0 deletions doc/log-archiver.default
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,26 @@ LOG_ARCHIVER_DATABASE_PASSWORD=
# 以下のコマンドを実行することで生成できます。
# bundle exec bin/rails secret
SECRET_KEY_BASE=

# UNICORN_AUTO_RESTART_VERBOSE
# 以下の設定による自動再起動までのログを詳細に出力するかの設定
# true にすると、詳細出力します。
#UNICORN_AUTO_RESTART_VERBOSE=false

# UNICORN_MAX_REQUESTS_MIN
# UNICORN_MAX_REQUESTS_MAX
# Unicorn プロセスを、リクエスト数により自動的に再起動する設定
# ランダムにプロセスを再起動する最小・最大回数を設定します。
#UNICORN_MAX_REQUESTS_MIN=1024
#UNICORN_MAX_REQUESTS_MAX=2048

# UNICORN_OOM_MIN
# UNICORN_OOM_MAX
# Unicorn プロセスを、メモリ使用量によって自動的に再起動する設定
# メモリを何メガバイト使用したときに再起動するかを設定します。
#UNICORN_OOM_MIN=192
#UNICORN_OOM_MAX=256

# UNICORN_OOM_CHECK_CYCLE
# Oom の閾値に達しているかを何回のアクセスごとに調べるかを設定します。
#UNICORN_OOM_CHECK_CYCLE=16

0 comments on commit 2319cf0

Please sign in to comment.