ガベージ コレクション (GC) は、未使用のデータ オブジェクトを検出し、そのメモリ領域を別のプロセスで使用できるように再利用します。New Relic Ruby エージェントは、CRuby 1.9.2 以降または Ruby Enterprise Edition で実行されているアプリケーションのガベージ コレクションに費やされた時間に関する情報を収集できますが、アプリケーションでこの機能を明示的に有効にする必要があります。
重要
ガベージコレクションはオーバーヘッドを増加させるため、プロダクションで長時間使用することは避けてください。
ガベージコレクション・インストゥルメンテーションの有効化
この機能を有効にするには、アプリケーションの初期化で適切なコールを追加します。
- CRuby 1.9.2 以降:
GC::Profiler.enable
- Ruby エンタープライズ版:
GC.enable_stats
Rails アプリケーションの場合、この呼び出しをconfig/initializers
の初期化子に追加するか、 config/application.rb
ファイルに直接追加することができます。
アプリ全体のGC統計情報を表示
ガベージコレクション全体の統計を見るには
New Relic にログインし、Ruby アプリを選択して、
Summary
に移動します。
APM
Summary
ページで、
Web transactions time
チャートの
GC Execution
統計を探します。
one.newrelic.com > All capabilities > APM & services > (select a Ruby app) > Summary: Web コレクションタイム チャートでは、ガベージ コレクション統計にGC Executionラベルが付けられています。
詳細なGCメトリクスの表示
ガベージ コレクション メトリックをトランザクションごとに表示するには、 one.newrelic.com > All capabilities > APM & services > (select a Ruby app) > Transactions > (select a transaction)に移動します。 その後、GC に費やされた時間と、各トランザクションで GC が呼び出される平均回数を表示できます。 ガベージ コレクションの詳細を表示するには、他のラベルを非表示にします。
詳細情報は以下の通りです。
Garbage collection details | Comments |
---|---|
ガベージコレクション時間の推移 | 通常、ガベージ コレクションには少し時間がかかるため、トレンド ラインがグラフに表示されない場合があります。 ガベージ コレクション時間の傾向を表示するには、概要グラフまたは詳細なトランザクション メトリックに移動します。 次に、各ラベルを選択して、 GC Execution以外のすべてのグラフ ラベルを非表示にします。 |
平均コール数 | 各コントローラー アクションのガベージ コレクション呼び出しの平均数を表示するには、 APM SummaryページからTransactionを選択します。 次に、コントローラーアクションを選択し、 App Server Breakdownを表示します。 |