アプリケーションメモリリークのトラブルシューティング - 運用保守トラブルシューティングの手法


                                                                                           アプリケーションのメモリリークのトラブルシューティング        


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)を回収します。


おすすめ

転載: blog.51cto.com/breaklinux/2459137