Ruby on Rails 5 + Puma + Nginx の構成で、メモリが決まった時間に解放されるのは仕様でしょうか?
タイトルの通りですが、 Rails 5 + Puma + Nginx の構成で、メモリが決まった時間(毎時57分ごろ)に解放されるのは仕様でしょうか?
主な利用バージョンは下記の通りです。
- Ruby: 2.4.2
- Ruby on Rails: 5.0.6
- Puma: 3.11.2
- Nginx: 1.12.2
サーバーは 3 台あり、下記のような構成になっています。
A サーバー (Nginx) ┬ B サーバー (Puma)
└ C サーバー (PUma)
おそらく Puma のメモリかなと思っていまして、 Puma にそのような機能があるか調べて見たのですが、そういった仕様を確認することができませんでした。(メモリが解放されるタイミングで、 Puma の worker のプロセス ID が変わっていたので、 Puma の worker が再起動されたように見受けられます。)
下記は NewRelic の Memory Used % のグラフですが、青と赤の線が Puma の動いているサーバーで、前述の毎時57分ごろにメモリ使用量がガクッと下がっていることが確認できます。
ちなみに、 puma_worker_killer は使用していません。
そこでお伺いしたのですが、これは Puma 、 Nginx (または Rails )の仕様でしょうか?仕様である場合、仕様が書かれたドキュメントがあればご教示いただきたいです。