herokuでMemory Quota Exceededと言うのが出るようになったので、puma_worker_killerを入れた話

最近、herokuで稼働させているRailsのアプリが「Memory Quota Exceeded」と言われる事が多くなり、定期的にワーカーの再起動をしたいと思ってました。

memory_quota_exceeded

見る限り、swapも出てしまい、レスポンスも遅くなっているようです。

このような場合、heroku以外だと、unicornを使うので、unicorn_worker_killerを入れるのですが

herokuだとpuma推薦なのでpuma使っていました。

で、pumaもuniconのようにworker killer系の物があるのかな?と探してたところ

puma_worker_killerがあるようなので、使ってみました。

https://github.com/schneems/puma_worker_killer

herokuでの使い方は、「Turn on Rolling Restarts」というのを使うのが推薦のようなので

その設定で行ってみました。

デフォルトだと6時間ごとに再起動ということになるので、ひとまず様子見で3時間に設定してみます。

以下が、3時間でリスタートがかかるようにした設定になります。

こちらを設定したところ

memory_quota_exceeded_after_config

ピーク時は少しswapが出る時もあるものの、割と落ち着いたのかなと思います。

しばらくはこの状態で様子見をし、アラートがまた増えるような感じであれば再度調整という事にしようと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*
*

* Copy This Password *

* Type Or Paste Password Here *