Rubyでメモリ管理
Oinkを利用します。
config/application.rb
config.logger = Hodel3000CompliantLogger.new(STDOUT)
config/initializers/oink.rb
Rails.application.middleware.use(Oink::Middleware, logger: Hodel3000CompliantLogger.new(STDOUT))
herokuの場合ログにprependされてしまうので、
vimでログを解析する場合の一例を示します。
$ heroku logs --tail --app YOUR_APP_NAME > log.txt $ vim log.txt // heroku出力部分を削除 :%s/\S* \S* // // Oink以外のログを削除 :g!/Oink\|Memory\|Instantiation/d // 保存してvimを終了 :wq
$ oink log.txt --threshhold=10
などするとoinkがメモリを食ってる処理を表示してくれます。
参考リンク
topfunky/hodel_3000_compliant_logger · GitHub
Dynos and the Dyno Manager | Heroku Dev Center
Understand Memory Usage on Heroku Rails App using Oink : arches.io
STDOUT for heroku · Issue #21 · noahd1/oink · GitHub
ruby on rails - Using oink gem with heroku - Stack Overflow
ruby - Rails 4 Error R14 on Heroku (Memory Quota Exceeded) - Stack Overflow