1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Scout APMを利用してHerokuのR14/R15エラーを解析

Posted at

はじめに

こちらのポストはScout APMを利用してHerokuのH12エラーを解析の続きになってますので、是非そちらも参考にしてください

R14とR15の違いについて

  • R14 - Memory quota exceeded

A dyno requires memory in excess of its quota. If this error occurs, the dyno will page to swap space to continue running, which may cause degraded process performance. The R14 error is calculated by total memory swap, rss and cache.

メモリの使用量がdynoに割り当てられた分を超えた場合に起こります。このエラーが起こった際には、dynoはメモリスワップすることでアプリケーションを動かします。これにより、アプリケーションのパフォーマンスが劇的に遅くなることがあります。

  • R15 - Memory quota vastly exceeded

A dyno requires vastly more memory than its quota and is consuming excessive swap space. If this error occurs, the dyno will be killed by the platform. The R15 error is calculated by total memory swap and rss; cache is not included.

メモリの使用量がdynoに割り当てられた分を超え、スワップスペースもかなり使用している際に起こります。(具体的には、割り当てられたメインメモリの二倍の量...free, hobby, standard 1xであれば、1GB)
このエラーがおきた際には、herokuによって、プロセスがkillされることになります。

まとめると、どちらもアプリケーションが完全に止められてしまうか、遅くなるかという違いになります。

Scout APM活用方法

上記エラーが起こった際には、次のようなログが出力されます
image

このエラーは頻繁に起こる例ではありますが、APMを使わずしてデバックするのはかなり困難です。メモリ問題の解決については、Scout APMが競合他者と比較しても、かなり優っている点になります。

まず始めに、このようなメモリに関する異常はScoutのOverviewページの線グラフにおいて、スパイクを発見することが出来ます。下のような例では、メモリの使用量が、ある時を境にして急激に上昇したことが確認出来ます。さらに下図の左下にも確認出来る、Memory Bloat Insightsをチェックすると、ArticlesController#index が表示されており、そこで精査すべき問題を表示しています。

image

このスパイクが起きた時間のトレースを確認すると、どこのレイヤーで多くのメモリを使用していたかは一目瞭然です。下図の例ではViewのレイヤーになります。さらに、バックトレースから、ペジネーションを行なわず、全レコードを表示していたことが原因だということを特定することができます。

image
※ScoutではGithub integrationを提供しておりますので、Scout上で、実際に誰がいつ書いたコードが問題の原因になっているのか確認することができます!

最後に

Scoutを活用してメモリの問題を解決したいという場合には、こちらのリンクを参考にしていただけると、更に詳細情報が確認できます。

14日間無料トライアルを実施中ですので、この機会に是非ご利用ください!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?