あなたは、JVMのパフォーマンスチューニングを理解してどのくらい

A、JVMのチューニング・メモリー

JVMのチューニングシステムレベルメモリの主な目的は、フルGCとGC周波数低減の数です。

1.Full GC

若い、終身やパーマを含め、全体のヒープの並べ替えを持っています。なぜなら、スタック全体を回復する必要性の完全なGCは、とても遅いので、できるだけフルGCの数を減らす必要があります。

2.フルGCの原因

1)旧世代(終身の位置)が充填されています

マルチの新世代内のオブジェクトは、いくつかの時間のために存続し、大きすぎるオブジェクトを作成しないと、古い世代で直接オブジェクトの配列を作成しないようにすることを、チューニングはGCの新しい世代で回収されたときにオブジェクトを作るようにしてください。

永久的な生成空間Pemanet世代の2)不足

パーマゲンの良い旧世代の割合と新しい世代を制御し、あまりにも多くの静的オブジェクトを避けるため、スペースを増加しました

3)にSystem.gc()の呼び出しが表示され

可能な限り、独自のメカニズムJVM上のように、手動ではないトリガーのガベージコレクションを実行します。

JVMを調整する過程で、調整のための作業の大部分は、以下の詳細な説明のJVMチューニング方法および手順に対応し、FullGCあります。

二、JVMおよびパフォーマンス・チューニング方法のステップ

1. GCの状態の監視

さまざまなツールを使用して、JVMは、それが最適化されるかどうか、現在のJVMパラメータを分析し、各メモリ区分や地域GCの実際の実行時間に基づいて、現在のヒープメモリのスナップショットおよびGCログを分析し、現在のログを表示します。

システムがクラッシュする前に、いくつかの現象:一例としては:

  • 4,5sに延長0.5秒前に、より多くの時間は50ms程度に、前の10msから延長されるたびにガベージコレクション、そこFullGC時間
  • 数FullGCより多く、最も頻繁にFullGC度未満1分後
  • 旧世代のメモリと毎回、より多くの旧世代メモリがFullGC後に解放されていません

システム後JVMのメモリのスナップショットダンプを分析する必要性に、今回の新しい要求に応答することができない、と徐々にOutOfMemoryErrorが発生の臨界値に到達します。

ダンプ・ファイルの2健康杭

JMXは、Java jmapのコマンドでファイルを生成することができます起動しない場合は、JMX MBeanのヒープ現在の情報、HPROFファイルの3G(全体のヒープサイズ)の大きさによって生成されます。

ダンプファイルを分析します。3.

この3Gヒープ情報ファイルを開き、明らかに一般的にはウィンドウシステムはそれほどメモリはありませんが、ファイルを開くには、いくつかのツールを高プロファイルのLinuxの助けを必要とします。

  • ビジュアルVM
  • IBM HeapAnalyzer
  • JDKはHPROFツールが来ます
  • マットをお勧めします(Eclipseのは、スタティックメモリ解析ツールを専門)

注:ファイルが大きすぎる、それは分析を開くマット特別なEclipseのスタティックメモリ解析ツールを使用することをお勧めします。

4.分析結果は、最適化する必要性を決定します

あなたは合理的なパラメータを設定した場合、システムは周波数が高くGCではない、タイムアウトが発生したログに記録されません、GC時間がかかるが高くないので、GC、以上の1-3秒、または頻繁GCは、それを最適化しなければならない場合にはGCの最適化のための必要はありません。

注:以下の指標が満たされている場合は、一般的には、GCを必要としません。

  • マイナーGC 50msの未満の実行時間。
  • マイナーGCは、約10秒間、あまり頻繁に行わ;
  • 1秒未満のフルGCの実行時間。
  • フルGC周波数は以下10分1秒よりも、頻繁に行われません。

GCおよびメモリ割り当てタイプを調整5.

メモリ割り当て大きすぎるか小さすぎる、または遅いコレクタGCを使用する場合、これらのパラメータは、優先的に調整し、機械またはいくつかのベータ第1移動し、機械を比較し、最適化された性能は、マシンを最適化されていないしなければなりません対照的に、対象と最終的な選択をします。

6.連続分析と調整

継続的なテストと試行錯誤の末、最適なパラメータが発見された場合、これらのパラメータは、すべてのサーバーに適用され、分析し、最も適切なパラメータを見つけます。

私がインタビューアリを終えるまで、それから私は、非常によく、JVMのパフォーマンスチューニングを考えました

 

第三に、アリJVMのパフォーマンス・チューニングの顔質問:

  • Javaクラスのロード処理
  • Javaのメモリの割り当て
  • JVMはクラスファイルをロードするための原則のメカニズムを説明しますか?
  • GCとは何ですか?なぜそこGCすべきですか?
  • オブジェクトが生きているかどうかを判断する方法は?
  • ガベージコレクションの利点と原則。そして、二回復メカニズムを検討してください。
  • Javaは、それを漏らすメモリで詳しく説明してくださいます
  • JVMのガベージコレクションを持つパーマネントは起こるのだろうか?
  • Javaのガベージコレクション方法

おすすめ

転載: www.cnblogs.com/weigy/p/12399018.html