詳細JVMパラメータ - JDK1.8を備えます

    ヒープサイズ
    、仮想メモリの使用可能制限システムと、物理メモリ利用可能な制限システムのオペレーティングシステムに関連するデータ・モデル(32-BT又は64ビット)の限界:JVM最大ヒープ・サイズは、三の限界を有しています。一般1.5G〜2Gに限定されるもので、32ビットシステム、オペレーティングシステム64無制限メモリ。私は、最大が1478メートルに設定され、テスト中のWindows Server 2003システム、3.5G物理メモリ、JDK5.0を持っています。
    典型的な設定:
        Javaの-Xmx3550m -Xms3550m -Xmn2g -Xss128k
        -Xmx3550m:3550Mために利用可能なJVMの最大メモリを設定します。
        -Xms3550m:3550メートルを促進するために、JVMのメモリを設定します。この値は、REALLOCATEメモリガベージコレクションの完了を避けるために、同じ-Xmx、各JVMを設定することができます。
        -Xmn2g:若い世代2Gのサイズを設定します。全体のJVMのメモリーサイズ=サイズ+永続的な世代のサイズ+サイズの若い世代古い世代。若い世代の増加は、旧世代のサイズを小さくしますので、恒久的な世代は、一般的に固定サイズの64メートルです。システムのパフォーマンスにこの値より大きなインパクトは、Sunの関係者は3/8のヒープ全体の構成をお勧めします。
        -Xss128k:各スレッドのスタックサイズを設定します。各スレッドのスタックサイズは256Kである前に、各スレッドのスタックサイズ後JDK5.0は、1Mです。必要な調整の複数のアプリケーションのメモリサイズを通します。同じ物理メモリでは、この値を小さくするとより多くのスレッドを生成することができます。しかし、プロセス内のオペレーティング・システム・スレッドの数はまだ3000と5000にはない無限の世代、経験、制限されています。
        ジャワ-Xmx3550m -Xms3550m -Xss128k -XX:NewRatio = 4 -XX:SurvivorRatio = 4 -XX:MaxPermSizeを= 16メートル-XX:MaxTenuringThreshold = 0
        -XX:NewRatio = 4:(永久世代を除く)、旧世代の比率(エデンと2つのサバイバー領域を含む)若い世代を設定します。4に設定されている、若い世代と1の旧世代比の共有:4、若い世代1/5の合計スタック
        -XX:SurvivorRatio = 4:設定エデンサバイバー若い世代領域の面積比の大きさ。4に設定されている、サバイバーエデンゾーンを有する2つの領域の比率が2:4、総面積サバイバー若い世代1/6
        -XX:MaxPermSizeを= 16メートル:永続世代16メートルのサイズを設定します。
        -XX:MaxTenuringThreshold = 0:ごみの最大の年齢を設定します。直接、古い世代に、サバイバー領域なしで、その後、0にオブジェクトの若い世代を設定した場合。効率を向上させることができるアプリケーションの古い世代の多くのため。この値が大きい値に設定されている場合、若い世代のオブジェクトは、オブジェクト、次いで生存時間の若い世代、すなわちリサイクル若い世代への導入の増加を増やすことができ、サバイバー領域に何回もコピーされます。
        MetaspaceSize -XX:MaxMetaspaceSize PermSizeをMaxPermSizeをパラメータと障害が-XX置き換えるようJDK1.8はPermGenは、メタスペースが置換、除去

        -XX:MetaspaceSize -XX = 64M:MaxMetaspaceSize = 128M


    コレクタ選択
    3つにJVMを選択:シリアルコレクタ、コレクタ並列、同時コレクタが、シリアルコレクタのみ少量のデータに適用されるので、選択は本質的に平行コレクタと並行コレクタ懸念されます。デフォルトでは、JDK5.0以前のシリアルコレクタを使用して、あなたが他のコレクターを使用する場合は、起動時に適切なパラメータを追加する必要がありますされていました。JDK5.0後、JVMは、現在のシステム構成に基づいて決定することができます。
        パラレルコレクタ優先スループット
        上述したように、科学的および技術的背景処理等のためにある一定の目標に到達するための主平行コレクタ。
        構成:
            Javaの-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+ UseParallelGC -XX:ParallelGCThreads = 20である
            -XX:+ UseParallelGC:ガベージコレクタ平行コレクタを選択します。この構成では、若い世代のために有効です。上記構成によれば、若い世代はまだシリアルコレクターの古い世代を使用しながら、同時コレクションを使用すること。
            -XX:ParallelGCThreads = 20:多くのガベージコレクションのスレッドと同時に:すなわち、スレッドの数パラレルコレクタ構成。この設定値は、プロセッサの数に等しいことが好ましいです。
            -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XXのJava:+ UseParallelGC -XX:ParallelGCThreads = 20である-XX:+ UseParallelOldGC
            -XX:+ UseParallelOldGC:設定し、古い世代のガベージコレクションを並列に回収されます。パラレルコレクターの旧世代のためのJDK6.0のサポート。
            -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XXのJava:+ UseParallelGC -XX:MaxGCPauseMillis = 100
            -XX:MaxGCPauseMillis = 100:たびに最大の時間を若い世代のガベージコレクションを設定しますが、この時間を満たすことができない場合、JVMは自動的に若いを調整しますこの値を満たすためにサイズを代入します。
            -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XXのJava:+ UseParallelGC -XX:MaxGCPauseMillis -XX = 100:+ UseAdaptiveSizePolicy
            -XX:+ UseAdaptiveSizePolicy:このオプションが設定されている、パラレルコレクタは自動的に、若い世代領域のサイズと対応するサバイバーを選択しますパラレルコレクタは、開かれたときに比例帯、最低目標周波数システム、またはコレクションに対応する所定時間は、推奨値を使用します。
        応答時間優先並行コレクタ
        上述したように、並行コレクタは主に休止時間のガベージコレクションを低減、システムの応答時間が保証されています。アプリケーションサーバー、通信、その他のフィールドに適しています。
        構成:
            Javaの-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:ParallelGCThreads = 20 -XXです:+ UseConcMarkSweepGCを-XX:+ UseParNewGC
            -XX:+ UseConcMarkSweepGCを:同時コレクションは、古い設定を取りました。この構成をテストした後、-XX:NewRatio = 4の構成は、未知の理由で失敗しました。したがって、若い世代のサイズは、好ましくは、-Xmnが設けられています。
            -XX:+ UseParNewGC:若い者に代わって並列コレクタを設定します。CMSを収集し、同時に使用することができます。JDK5.0は上記、JVMは、システム構成に独自の応じて設定することができる、それはこの値を設定する必要がありません。
            -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XXのJava:+ UseConcMarkSweepGCを-XX:CMSFullGCsBeforeCompaction = 5 -XX:+ UseCMSCompactAtFullCollection
            -XX:CMSFullGCsBeforeCompaction:メモリ空間の同時コレクターので、それはいくつかの時間のために実行した後に生成されます、整理し、圧縮されません」。作業効率を作る破片」が減少しています。この値は、仕上げ、圧縮後に何回GCメモリ空間を実行するように設定されています。
            -XX:+ UseCMSCompactAtFullCollection:旧世代のオープン圧縮。パフォーマンスが影響を受ける可能性がありますが、破片削除することができ
    、補助情報
    JVMをコマンドラインパラメータ、デバッグのための印刷情報を多数提供しています。:主に以下に
        -XX:+ PrintGCの
        出力フォーマット:[GC 118250K-> 113543K(130112K)、0.0094143秒]

                        [完全GC 121376K-> 10414K(130112K)、0.0650971秒]
        -XX:+ PrintGCDetails
        出力フォーマット:[GC [DefNew:8614K-> 781K(9088K )、0.0123035秒] 118250K-> 113543K(130112K)、0.0124633秒]

                        [GC [DefNew:8614K-> 8614K(9088K)、殿堂入りの0.0000665秒] [位置:112761K-> 10414K(121024K)、0.0433488秒] 121376K-> 10414K(130112K)、0.0436268秒]
        -XX:+ PrintGCTimeStamps -XX:+ PrintGC:PrintGCTimeStampsは、上記使用は、二つと混合することができる
        11.851:[GC 98328K-> 93620K(130112K)、0.0082960秒]出力形式
        -XX:+ PrintGCApplicationConcurrentTime:各印刷ガベージコレクションの前に、プログラムの実行時間が中断されません。上記を使用して混合することができる
        アプリケーション時間:0.5291524秒出力形式
        -XX:+ PrintGCApplicationStoppedTime:印刷プロセス停止時間のガベージコレクション中に。上記は、使用して混合することがあり
        0.0468229秒:スレッドを停止したファイルのアプリケーションの合計のための時間:出力形式を
        -XX:PrintHeapAtGC:詳細スタック情報が印刷GCの前と後に
        、出力形式:
        34.702:GC GC =呼び出しの前に[{ヒープ7:
         DEF新世代合計55296Kは、52568K [0x1ebd0000、0x227d0000、0x227d0000)使用
        エデンスペース49152K、使用99%[0x1ebd0000、0x21bce430、0x21bd0000)を
        、空間6144Kから使用55%[0x221d0000、0x22527e10、0x227d0000)を
          空間6144Kに、0%が使用します[0x21bd0000、0x21bd0000、0x221d0000)
         古い世代合計69632K、2696K [0x227d0000、0x26bd0000、0x26bd0000)を用いる
        空間69632K、3%が使用[0x227d0000、0x22a720f8、0x22a72200、0x26bd0000)
         2898K [0x26bd0000、0x273d0000を使用PERM GEN合計8192Kを、圧縮0x2abd0000)
           35%が使用されるスペース8192K、[0x26bd0000、0x26ea4ba8、0x26ea4c00、0x273d0000)
            RO空間8192K、66%使用される[0x2abd0000、0x2b12bcc0、0x2b12be00、0x2b3d0000)
            RW空間12288K、46%が使用される[0x2b3d0000、0x2b972060、0x2b972200、0x2bfd0000)
        34.735:[DefNew:> 3433K 52568K-(55296K)、0.0072126秒] 55264K- GC呼び出し= 8後> 6615K(124928K)ヒープ:
         DEF新世代合計55296K、3433K [0x1ebd0000、0x227d0000、0x227d0000)使用
        エデンスペース49152Kを、0%は、使用[0x1ebd0000、0x1ebd0000、0x21bd0000)
          空間6144Kから、55%の使用[0x21bd0000 、0x21f2a5e8、0x221d0000)
          空間6144Kに、0%は使用[0x221d0000、0x221d0000、0x227d0000)
         3182K [0x227d0000、0x26bd0000、0x26bd0000)を使用古い世代合計69632K、
        使用される4%が[0x227d0000、0x22aeb958、0x22aeba00、0x26bd0000)宇宙69632K ,.
         2898K [0x26bd0000、0x273d0000、0x2abd0000)中古コンパクパーマジェン合計8192K、
           宇宙8192K、35%が使用される[0x26bd0000、0x26ea4ba8、0x26ea4c00、0x273d0000)
            ROスペース8192K 66%使用される[0x2abd0000、0x2b12bcc0、0x2b12be00、0x2b3d0000)
            RWスペース12288K、46%が使用される[0x2b3d0000、0x2b972060、0x2b972200、0x2bfd0000)
        }
        、0.0757599秒]
        -Xloggc:ファイル名:上記といくつかの組み合わせ、ログ情報分析用のファイルに記録します。
    一般的な構成の概要
        ヒープの設定
            -Xms:初期ヒープサイズ
            -Xmx:最大ヒープサイズ
            -XX:NewSizeパラメータ= n:設定、若い世代のサイズ
            -XX:NewRatio = N:若い世代と旧世代の比率を設定します。例えば:1の旧世代比に若い世代を示す3、3、若い世代の合計の若い世代と旧世代1/4
            -XX:SurvivorRatio = N:エデン若い世代領域と二つの領域サバイバー比率。2つのサバイバー領域があることに注意してください。例えば:3、エデンを発現:サバイバー= 3:2、総面積サバイバー若い世代1/5
            -XX:MaxPermSizeを= N:永続世代のサイズ設定
        コレクタ設定
            + UseSerialGC:-XX設定シリアルコレクタ
            - XX:+ UseParallelGC:パラレルコレクタセット
            + UseParalledlOldGC:セット並列古い世代コレクタ-XX
            -XX:+ UseConcMarkSweepGCをする:同時コレクタセット
        ガベージコレクションの統計を
            + PrintGC:-XX
            -XX:+ PrintGCDetails
            -XX:+ PrintGCTimeStamps
            -Xloggc:ファイル名の
        平行に配置されたコレクタ
            -XX:ParallelGCThreads = Nは:CPUの数は、平行に配置され、コレクタを収集するために使用されます。スレッドの数を収集するために平行です。
            -XX:MaxGCPauseMillis = N:セット平行収集最大休止時間
            -XX:GCTimeRatio = N:設定時間を走行時間ガーベッジコレクションプログラムのパーセンテージ。式1 /(1 + N)
        同時コレクタ配置さ
            -XX:+ CMSIncrementalMode:モード設定刻み。単一CPUの場合について。
            -XX:ParallelGCThreads = N:同時コレクタが収集並列CPUの数は、使用される場合、若い世代モードを収集するために設けられています。スレッドの数を収集するために平行です。


第四には、チューニングがまとめ

    、若い世代のサイズ選択の
        応答時間優先のアプリケーションを:大きなとして設定し、(実際の状況に基づいて)最小のシステム応答時間の限界に近いまで。この場合には、発生の若い世代の収集頻度は最小限です。同時に、古い世代のオブジェクトの範囲を減らします。
        優先アプリケーションスループット:大を設定することができる限り、ギガビットのレベルに到達することができます。応答時間を必要としないので、ガベージコレクションは、より一般的なアプリケーションの8CPUのために、並列に実行されてもよいです。
    旧世代のサイズを選択し
        、応答時間優先のアプリケーションを:コレクターの同時旧世代を使用して、そのサイズの必要がセットに注意するので、通常は同時セッションとセッション継続時間のパラメータのいくつかを検討します。ヒープが小さく設定されている場合は、メモリの断片化、高周波、明確なマーキングの伝統的な方法の使用を停止する回復アプリケーションを引き起こす可能性があります。大きなヒープ場合、長い収集時間が必要になります。最も最適なソリューション、通常得られ、以下のデータを参照する必要があります。
            コンカレントガベージコレクション情報
            Permanent世代同時コレクションの数
            伝統的なGC情報の
            リサイクル若い世代と旧世代に費やす時間の割合は
        若い世代と旧世代を減らすために時間がかかり、一般的にアプリケーションの効率が向上します
        アプリケーションの優先順位スループット:一般的な優先順位アプリケーションは、若い世代の多くを持ってスループットそして、小さな古い世代。古い世代が生きているオブジェクトの長期保存を行うことながら、中期目標を減らすために、ほとんどの短期的な目標から可能な限り回復することができるように理由が、あります。
    生じた破片の小さな山
    、それはヒープを圧縮しないように、古い世代の並行コレクタは、マーク、スイープアルゴリズムを使用しているため。コレクタが回復したとき、彼は大きなオブジェクトに割り当てることができ、隣接するスペースを、マージします。しかし、ヒープ領域が同時コレクターは十分なスペースを見つけることができない場合は、いくつかの時間のために実行した後、「残骸」があるだろう、小さいとき、そして同時収集は停止し、その後、伝統的なマーカーを使用して、回復の道をクリアします。「残骸」が表示される場合は、次のように必要があるかもしれません:
        -XX:+ UseCMSCompactAtFullCollection:コンカレントコレクタを使用する場合は、古い世代のための圧縮をオンにします。
        -XX:CMSFullGCsBeforeCompaction = 0:フルGCが本明細書に提供される回数に上記のような構成の場合、古い世代の圧縮

3

おすすめ

転載: www.cnblogs.com/halberts/p/11877769.html