2016-07-25 18 views
1

私はSolrから特定のメトリックを取り出し、Elastic Searchのインデックスにそれらを格納し、Grafanaでグラフィカルにそれらを表現するプロジェクトに取り組んでいます。 Solrの中にガベージコレクションの特定のクエリを持っていた、次のように彼らがしている:Solrのガベージコレクタへの影響

  • どのようにしているのSolrのメトリクス(エラー、ヒットのように、などを挿入)ガベージコレクタによって影響を受けていますか?
  • Solrに関係する可能性のあるガベージコレクタのどのメトリックを追跡する必要がありますか? (YGC YGCT FGC FGCTなど)

ありがとうございます!

+0

https://wiki.apache.org/solr/SolrPerformanceProblemsおよびhttps://wiki.apache.org/solr/ShawnHeisey#GC_Tuning_for_Solrも参照してください。 – Risadinha

答えて

0

GCはアプリケーションロジック自体を変更すべきではありません。ヒットのようなメトリックは、GCが実行されるかどうかではなく、Solrのデータストアの内容に依存します。エラーは、GCの動作、主に大規模なGCの一時停止によるタイムアウトの影響を受ける可能性があります。これは、最初に追跡する必要があると言います。

GC時間(新世代と旧世代の両方)に焦点を当てますが、これはアプリケーション(Solr)の大きな障害になるためです。これはJMXを介して行うことができます(広範なドキュメントはhttps://wiki.apache.org/solr/SolrJmx、java.lang:type = GarbageCollectorの下にGC beanがあります)。プロファイラや監視ツールを選択するだけです。時間が累積されることに

YGC: Number of young generation garbage collection events. 
YGCT: Young generation garbage collection time. 
FGC: Number of full GC events. 
FGCT: Full garbage collection time. 

注:([1] [ドキュメント])最も関連のメトリックは可能性があり、 "JSTAT -gc $ PID" を使用して、GCメトリックをダンプすることができますコンソールで

。 jstatコマンドに間隔を追加すると、統計情報が連続的に出力されます。

これらの数値に基づいて、GC一時停止スパイクが発生し、それがSolr Errorスパイクと相関する場合、それらを減らすことができます。私たちがそれに取り組んでいる一方で

は、GCの回数を追跡するための別の良い方法は、有効にすることです:

(各一時停止の期間だけでなく、時間を含む各GC、のために、より具体的な詳細を記録します
-XX:+PrintGCApplicationStoppedTime 
-XX:+PrintGCDetails 

GCによって引き起こされますが他の理由もあります)。

Total time for which application threads were stopped: 0.1135087 seconds 

あなたの質問に答えるかどうか教えてください。

関連する問題