前提・実現したいこと
puma_worker_killerを導入したのですが、その実行状況の確認をしたいのですがわかりません。
環境は、
Centos7
rails5.1.6
puma (3.12.0)
で
puma_worker_killer (0.1.0)
を導入しました。
導入は、主にこちらのサイトの参考にしました。
https://github.com/schneems/puma_worker_killer#configure
config/puma.rb
の設定は、以下です。
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
・
・
workers ENV.fetch("WEB_CONCURRENCY") { 3 }
・
・
preload_app!
・
・
before_fork do
require 'puma_worker_killer'
PumaWorkerKiller.config do |config|
config.ram = 16000
config.frequency = 5 * 60
config.percent_usage = 0.90
config.rolling_restart_frequency = 12 * 3600
config.reaper_status_logs = true
onfig.pre_term = -> (worker) { puts "Worker #{worker.inspect} being killed" }
end
PumaWorkerKiller.start
ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
end
・
・
導入自体は成功したようで、productionモードでの実行ですので
例えば、
rails server --environment production
で起動させると、ターミナル上にも
上記サイトに記載されているような
[77773] Puma starting in cluster mode...
[77773] * Version 3.1.0 (ruby 2.3.1-p112), codename: El Niño Winter Wonderland
[77773] * Min threads: 0, max threads: 16
[77773] * Environment: development
[77773] * Process workers: 2
[77773] * Phased restart available
[77773] * Listening on tcp://0.0.0.0:9292
[77773] Use Ctrl-C to stop
[77773] PumaWorkerKiller: Consuming 54.34765625 mb with master and 2 workers.
(↑これは上記サイトに記載されているもののコピーです)
と同じようなメッセージが出力され、以降も
[77773] PumaWorkerKiller: Consuming 54.34765625 mb with master and 2 workers.
[77773] PumaWorkerKiller: Consuming 54.34765625 mb with master and 2 workers.
[77773] PumaWorkerKiller: Consuming 54.34765625 mb with master and 2 workers.
[77773] PumaWorkerKiller: Consuming 54.34765625 mb with master and 2 workers.
・
・
と出続けるので、動いていそうだなと判断できるのですが、
rails server -e production -b '*' -d
のように、pumaをデーモンで起動させると
ターミナル上には何もメッセージが出ませんので、
その後puma_worker_killerが動いているのか?、小プロセスはきちんと指定した数で立ち上がっているのか、
指定した実行間隔で発動したのか、まったくわかりません。
設定ファイル中の、
config.reaper_status_logs = true
の指定でログ出力されるということのようですが、
これは、ログファイル(log/production.logaなど)に書き出されるものではないのでしょうか?
ログファイル中を見ても、
[77773] PumaWorkerKiller: Consuming 54.34765625 mb with master and 2 workers.
といったものも、
設定では、メモリ残量に関係なく、12時間おきに発動するはずなので
例えば、
[77845] - Worker 0 (pid: 78271) booted, phase: 0
のようなものが、ログファイル中に残っていて欲しいのですが
丸1日分のログを見ても、
puma_worker_killerに関するものは一切書き出されていないのです。
何かエラー的なメッセージも出ていませんし。
ちなみに、
environments/production.rb
のほうには、ログレベル
config.log_level = :debug
で設定してあります。
また、ログではなく、コマンドにてpuma_worker_killerの実行確認をする際に
ps aux | grep rails
で、ワーカープロセスが複数起動していることが確認できる
参考:http://www.subarunari.com/entry/2018/04/04/Rails_%2B_Puma_%2B_Nginx_on_CentOS_7_%E3%81%AE_%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%83%A1%E3%83%A2
らしいのです、このコマンドを叩いても、
表示される内容は
XXXXXX 1234 0.0 0.0 112672 976 pts/0 S+ 08:30 0:00 grep --color=auto rails
↑
こんな感じの1行だけなのですが、これで複数起動していることになるのかわかりません。
いったい、どのように、すればデーモン起動されているpumaの
puma_woler_killerの実行状況を確認できるものなのでしょうか?
よろしくお願い申し上げます。
試したこと
rails server --environment production
での起動であれば、ターミナル上にpuma_worker_killerに関するメッセージは表示され続ける。
この場合でも、
ps aux | grep rails
で確認できるのは、上記と同じで、ワーカープロセスが複数起動されているかどうかよくわかならい。
補足情報(FW/ツールのバージョンなど)
Centos7
rails5.1.6
puma (3.12.0)
puma_worker_killer (0.1.0)
あなたの回答
tips
プレビュー