アプリケーションのメモリリークのトラブルシューティング
1.記事の起源;
日常の運用・保守プロセスでは、あなたが記事を準備高騰OOMリードサービス利用できません(ほとんどのプログラムは、javaアプリケーションです)、によって引き起こされる高いサーバリソース、CPUやメモリの問題が発生します、トラブルシューティングの問題に取り組んでいます問題を見つけてすぐにメソッドを参照して、
2.基本的な知識ベース。
(1)共通の設定パラメータを.jvm。
ヒープパラメータ
パラメータ |
説明 |
-Xms | JVMの起動を設定するヒープメモリの初期サイズ |
-Xmx | 最大ヒープメモリを設定します。 |
-Xmn | 若い世代に設定した空間、古い世代のためのスペースの残りの部分 |
-XX:PermGen | 恒久的な世代のメモリの初期サイズを設定します(JDK1.8永久廃棄物の生成を開始) |
-XX:MaxPermGen | 最大Permanent世代を設定します。 |
-XX:SurvivorRatio | エデンスペース比設定領域とサバイバー領域:エデン/ S0 =エデン/ S1デフォルト8 |
-XX:NewRatio | 旧世代とサイズの若い世代の比率を設定し、デフォルト値は2です |
回復パラメータ
-XX:+ UseSerialGC |
シリアル、若い(若い面積)と、古い世代のあるシリアル、再生コピーアルゴリズムを使用して、ロジックは、コンテキストがオーバーヘッドを切り替えることなく、シンプルかつ効率的です |
-XX:+ UseParallelGC | パラレル掃気コレクションアルゴリズムを使用してパラレル若者は(若い面積)、回復並行して複数のスレッドを生成することができます。-XXによってデフォルトのCPUコア数によってスレッドの数が持っているParallelGCThreads = Nパラメータを指定し、旧は(殿堂入り):シングルスレッド |
上記表に示すように、現在シリアル、パラレル、および同時三種類があり、アプリケーションのための大容量メモリ、シリアル低性能、メイン平行の使用と同時二種類。パラレルおよび同時GCポリシーUseParallelGCとUseConcMarkSweepGCをで指定され、実装戦略を構成するために使用されるコンフィギュレーションパラメータのいくつかの詳細があります。例:XX:ParallelGCThreads、XX:CMSInitiatingOccupancyFractionのような。典型的には:若い対象領域のみを選択パラレル(時間がかかる)、旧同時ゾーン選択(消費CPU)を回収します。