ガベージ コレクション (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 ページから、 GC Execution 統計情報を Web transactions time チャートで確認します。
one.newrelic.com > APM & services > (Ruby アプリを選択) > Summary : Web トランザクションのタイム チャートでは、ガベージ コレクションの統計にGC Executionというラベルが付けられています。
詳細なGCメトリクスの表示
トランザクションごとにガベージ コレクションのメトリクスを表示するには、 one.newrelic.com > APM & services > (Ruby アプリを選択) > Transactions > (トランザクションを選択) に移動します。その後、GC に費やされた時間と、トランザクションごとに GC が呼び出された平均回数を表示できます。ガベージ コレクションの詳細を表示するには、他のラベルを非表示にします。
詳細情報は以下の通りです。
ガーベッジコレクションの詳細 | コメントコメント |
---|---|
ガベージコレクション時間の推移 | ガベージコレクションにかかる時間は通常わずかであるため、チャートにトレンドラインが表示されない場合があります。ガベージコレクション時間のトレンドを表示するには、 の概要チャート または の詳細トランザクションメトリックス に移動します。次に、 GC Execution 以外のすべてのチャートのラベルを、各ラベルを選択して非表示にします。 |
平均コール数 | 各コントローラアクションのガベージコレクションコールの平均回数を表示するには、以下の手順に従います。 APM Summary page から、 Transaction を選択します。次に、コントローラアクションを選択し、 App Server Breakdown を表示します。 |