質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

0回答

819閲覧

puma_worker_killerの確認とログの吐き出され場所

llc

総合スコア10

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/11/30 02:41

前提・実現したいこと

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問