HBaseチューニング| HBase + G1GCパフォーマンスチューニング

                 

現在、XiaomiはオンラインでG1ガベージコレクションアルゴリズムを大規模に使用し始めており、フォーラムでG1を使用する際に発生するさまざまな問題について話し合っている友人を見かけました。ここでは、 G1を減らします。
ポータルから始めましょう。HBaseConAsia2017でG1GCチューニングPPTを共有しました。 

http://openinx.github.io/2012/01/01/my-share/
まず、G1アルゴリズムに慣れていない学生は、OracleのG1アルゴリズムチュートリアルを注意深く読むことができます。チュートリアルでは、基本的にG1の動作原理とCMSとの本質的な違いについて説明しています。アルゴリズムの詳細に興味がある場合は、次のことができます。 Garbage-First Garbage Collectionを読んでください。このペーパーでは、JVMのG1実装はこのペーパーに基づいている必要があります。

G1GCログ情報の統計を容易にするために、次のすべてのG1パラメーターを有効にする必要があります。

-Xmx30g -Xms30g 
-XX:MaxDirectMemorySize = 30グラム
-XX:+ UseG1GC
-XX:+ UnlockExperimentalVMOptions
-XX:MaxGCPauseMillis = 90
-XX:G1NewSizePercent = 8
-XX:InitiatingHeapOccupancyPercent = 30
-XX:+ ParallelRefProcEnabled
-XX:ConcGCThreads = 4
- XX:ParallelGCThreads = 16
-XX:MaxTenuringThreshold = 1
-XX:G1HeapRegionSize = 32m
-XX:G1MixedGCCountTarget = 64
-XX:G1OldCSetRegionThresholdPercent = 5

その中で、調整が必要な主要なパラメータは次のとおり
です 。1。G1NewSizePercent  :G1のヤング領域サイズは、アルゴリズムによって適応的に決定されます。つまり、ヤング領域の後のヤングサイズは、ヤングで費やされた時間に従って決定されます。エリアGC、それは時間がかかりすぎる場合は時間が短すぎる場合は、次に大きなヤング面積を調整し、より小さなヤング面積を調整このパラメータは、ヤングの最小パーセンテージを表します。。。
2.  InitiatingHeapOccupancyPercent:占有メモリがこのパーセンテージを超え、 G1は、旧世代の断片化のメモリを整理するために、複数のミックスのGCの実行を開始する。
3.  G1MixedGCCountTarget:占有メモリが混在GCがしきい値以下のメモリを制御するために使用することができる回数InitiatingHeapOccupancyPercentしきい値を超えた
MaxTenuringThreshold:オブジェクトgcの代数がこの値を超えると、オブジェクトは削除されます。若い領域から古い領域に移動
ます 。5。G1HeapRegionSize:各領域をG1で割った大きさを示します。単位は次のように記述する必要があることに注意してください。 32メートル。
たとえば、各パラメータの値の範囲は非常に広いため、G1NewSizePercentは通常0〜10(またはそれ以上)の範囲であり、多くのパラメータがあります。したがって、各パラメータを変更するスクリプトを記述して、自動的に再起動します。そして、各パラメーターのテスト開始時間と終了時間を記録します。その後、ツールを使用してgcログを自動的に分析するだけで済みます。ここでは、スクリプトは一度に1つのパラメーターのみを調整し、クラスター全体を再起動してから、 PerformanceEvaluationツールを使用してストレステストを実行します。ストレステストは1時間実行されます。実行後、次のパラメーターを調整してから、再度実行します。
スクリプトアドレスは次のとおりです。 

https://github.com/openinx/scripts/blob/master/java-g1gc-tuning.py
すべてのパラメータを実行した後、あなたは、将来的にはG1・ログを分析するためのツールを使用する必要があります。ハブスポットと呼ばれるPythonのツールを開発する前にgc_log_visualizerを 、このツールの抽出物が正則を介してデータを記録し、その後、より便利である、監視グラフにそれを描画しますグローバルG1ステータスを表示します。


画像

仕事や勉強中にHBaseの技術的な問題に遭遇した人は誰でも、問題をHBase技術コミュニティフォーラムhttp://hbase.groupに投稿し、フォーラムに質問したりコメントを残したりして議論することを歓迎します。HBaseテクノロジーについて詳しく知りたい場合は、 HBaseテクノロジーコミュニティの公式アカウント(WeChat ID:hbasegroup)に従ってください。積極的に貢献することを歓迎します。


おすすめ

転載: blog.51cto.com/15060465/2676760