JVMパラメータ設定
9082 ワード
一、パラメータ表示方法
1.標準的なパラメータ(-)、すべてのJVM実装はこれらのパラメータの機能を実現しなければならなくて、しかも後方互換性
2.非標準パラメータ(-X)は、デフォルトのjvmではこれらのパラメータの機能を実現しますが、すべてのjvm実装が満たされることは保証されず、後方互換性は保証されません.
3.非Stableパラメータ(-XX)このようなパラメータは、jvm実装ごとに異なるため、将来的には随時キャンセルされる可能性があり、慎重に使用する必要がある(ただし、これらのパラメータは非常に有用であることが多い)
二、標準パラメータ
実は標準パラメータはJavaを使ったことがある人が最もよく知っているのは、javaコマンドを実行するときに追加したパラメータです.java-version、java-jarなど、コマンドjava-helpやjava-?現在のマシンのjavaのすべての標準パラメータのリストを取得できます.
1. -client
2. -server
3. -DpropertyName=value
4.-verbose(GCの問題を問い合わせる最も一般的なコマンドの1つです.具体的なパラメータは以下のとおりです.)
三、非標準パラメータ
非標準パラメータは、標準パラメータに基づいて拡張されたパラメータで、「java-X」コマンドを入力すると、現在のJVMでサポートされているすべての非標準パラメータのリストを得ることができます(実際には多くありませんよ)
1. -Xms
2. -Xmx
3. -Xmn
4. -Xss
5. -Xprof
6. -Xnoclassgc
7. -Xincgc
8. -Xloggc:file
四、非Stableパラメータ(非静的パラメータ)
-Xで表される非Stableパラメータは、公式文書では不確定で丈夫ではなく、各社の実装にもそれぞれ異なりますが、非常に実用的な場合が多いため、このパラメータはGCにとって非常に重要です
1.分類
2.使用方法
3.一般的なパフォーマンス・パラメータ(パフォーマンス・パラメータは、動作パラメータとデバッグ・パラメータと比較して、パフォーマンス・パラメータの後に数値が付くことが多いメモリ割当てのサイズと割合を定義するために使用されることが多い)
4.一般的な動作パラメータ(主にどのようなゴミ収集器の組み合わせを使用するか、運転中のGCポリシーを制御するなど)
5.一般的なデバッグパラメータ(主にGCの情報の監視と印刷に使用)
五、監視ツールと方法
1.GCを監視することで、多くの問題を明らかにすることができます.
2.コマンドラインツール(オリジナル)
1)jps(実行中のJVMプロセスを問い合わせるため、コマンド形式:jps[option][hostid])
2)jstat(jstatは、ローカルまたはリモートJVMプロセスにおけるクラスマウント、メモリ、ゴミ収集、JITコンパイルなどのデータをリアルタイムで表示することができる(リモートJVM情報を表示するには、リモートホストがRMIサポートをオンにする必要がある)
3)jinfo(現在実行中のJVM属性とパラメータの値を問い合わせる)
4)jmap(現在使用されているコレクタ、現在のスペース使用率など、現在のJavaスタックと永続世代の詳細を表示するためのもの)
5)jhat(jmapで生成されたdumpファイルを解析するためのJDK独自のツール)
6)jstack(現在のJVMのすべてのスレッドスナップショットを生成するために使用されます.スレッドスナップショットは、仮想マシンの各スレッドが実行中の方法であり、スレッドが長時間停止している理由を特定するために使用されます)
3.ビジュアル化ツール
参考サイト
JVMモニタリングとチューニング
Javaパフォーマンス最適化の9大ツール
注:文章は他の文章を参考にして自分で整理したもので、一部の参考になるかもしれないし、大部分の参考になるかもしれないが、決して直接転載するわけではない.権利侵害したら削除すると思う.私はこれを自分のノートに使うだけだ.ついでに知識を整理すると同時に、一部の人を助けることができる.ps:間違いがあったら、皆さんのご指摘をお願いします.弟さんは感謝に堪えません.
1.標準的なパラメータ(-)、すべてのJVM実装はこれらのパラメータの機能を実現しなければならなくて、しかも後方互換性
2.非標準パラメータ(-X)は、デフォルトのjvmではこれらのパラメータの機能を実現しますが、すべてのjvm実装が満たされることは保証されず、後方互換性は保証されません.
3.非Stableパラメータ(-XX)このようなパラメータは、jvm実装ごとに異なるため、将来的には随時キャンセルされる可能性があり、慎重に使用する必要がある(ただし、これらのパラメータは非常に有用であることが多い)
二、標準パラメータ
実は標準パラメータはJavaを使ったことがある人が最もよく知っているのは、javaコマンドを実行するときに追加したパラメータです.java-version、java-jarなど、コマンドjava-helpやjava-?現在のマシンのjavaのすべての標準パラメータのリストを取得できます.
1. -client
1) jvm client , pc , , ;
2. -server
1) server , ( client 10% ), , , 、 ;
2) -server -client,JVM , server ,64 JVM server , -client
3. -DpropertyName=value
1) , , value , -Dname=”space string” , System.getProperty(“propertyName”) , System.setProperty(“propertyName”,”value”)
4.-verbose(GCの問題を問い合わせる最も一般的なコマンドの1つです.具体的なパラメータは以下のとおりです.)
1)-verbose:class jvm , jvm
2)-verbose:gc GC ,
3)-verbose:jni native , jni
三、非標準パラメータ
非標準パラメータは、標準パラメータに基づいて拡張されたパラメータで、「java-X」コマンドを入力すると、現在のJVMでサポートされているすべての非標準パラメータのリストを得ることができます(実際には多くありませんよ)
1. -Xms
1) , , /64( 1G)
2) , 40%( -XX: MinHeapFreeRatio , -X:MinHeapFreeRatio=30) , , -Xmx
2. -Xmx
1) , /64( 1G), Xms Xmx ,
2) , 70%( -XX: MaxHeapFreeRatio , -X:MaxHeapFreeRatio=60) , , -Xms
3) = + , , , , / =2/1 ( -XX:NewRatio -XX:NewRatio=5, / =5/1)
4) Xms Xmx , ,Xms Xmx , ——
3. -Xmn
1) , E S , :-Xmn65535,-Xmn1024k,-Xmn512m,-Xmn1g (-Xms,-Xmx )
2)-Xmn JDK1.4 ,( 1.3/1.4 , -XX:NewSize , -XX:MaxNewSize )
4. -Xss
1) , 1M,
2) , , -XX:ThreadStackSize, 1.6 , , ;1.6 ,-Xss , -Xss ,-XXThreadStackSize , -Xss , -XX:ThreadStackSize
5. -Xprof
1) , ;
6. -Xnoclassgc
1) class gc ; , OutOfMemoryError ,
7. -Xincgc
1) gc( ); GC ; , CPU
8. -Xloggc:file
1) -verbose:gc , GC , , 。
2) verbose , -Xloggc
四、非Stableパラメータ(非静的パラメータ)
-Xで表される非Stableパラメータは、公式文書では不確定で丈夫ではなく、各社の実装にもそれぞれ異なりますが、非常に実用的な場合が多いため、このパラメータはGCにとって非常に重要です
1.分類
1) ( Performance Options): JVM , ;
2) (Behavioral Options): JVM , GC ;
3) (Debugging Options): 、 、 jvm , jvm ;
2.使用方法
1)-XX:+
3.一般的なパフォーマンス・パラメータ(パフォーマンス・パラメータは、動作パラメータとデバッグ・パラメータと比較して、パフォーマンス・パラメータの後に数値が付くことが多いメモリ割当てのサイズと割合を定義するために使用されることが多い)
1)-XX:NewSize=2.125m
2)-XX:MaxNewSize=size
3)-XX:PermSize=64m
4)-XX:MaxPermSize=64m ( )
5)-XX:MaxTenuringThreshold=15 ( MinorGC , , 1),
6)-XX:NewRatio=n 。 : 3, 1:3, 1/4, 2
7)-XX:SurvivorRatio=n Eden Survivor 。 Survivor 。 :3, Eden:Survivor=3:2, Survivor 1/5, 8
8)XX:MaxHeapFreeRatio=70 GC java , ,
9)-XX:MinHeapFreeRatio=40 GC java , ,
10)-XX:ThreadStackSize=512 , 0
11)-XX:PretenureSizeThreshold= size ( )
4.一般的な動作パラメータ(主にどのようなゴミ収集器の組み合わせを使用するか、運転中のGCポリシーを制御するなど)
1)-XX:-UseSerialGC GC, Serial+Serial Old
2)-XX:-UseParallelGC GC, Parallel Scavenge+Serial Old (-Server )
3)-XX:GCTimeRatio=99 ( 99, 1% GC)
4)-XX:MaxGCPauseMillis=time GC ( Parallel Scavenge )
5)-XX:+UseParNewGC ParNew+Serial Old
6)-XX:ParallelGCThreads , +UseParNewGC
7)-XX:+UseParallelOldGC Parallel Scavenge +Parallel Old
8)-XX:+UseConcMarkSweepGC ParNew+CMS+Serial Old , ParNew+CMS, , Serial Old
9)-XX:-DisableExplicitGC System.gc(); jvm gc
10)-XX:+ScavengeBeforeFullGC GC Full GC
5.一般的なデバッグパラメータ(主にGCの情報の監視と印刷に使用)
1)-XX:-CITime JIT
2)-XX:ErrorFile=./hs_err_pid.log
3)-XX:HeapDumpPath=./java_pid.hprof
4)-XX:-HeapDumpOnOutOfMemoryError OOM
5)-XX:-PrintCommandLineFlags
6)-XX:+PrintCompilation
7)-XX:+PrintGC GC
8)-XX:+PrintGC Details GC
9)-XX:+PrintGCTimeStamps GC
10)-XX:+TraceClassLoading
11)-XX:+TraceClassLoadingPreorder
12)XX:+TraceClassResolution
13)-XX:+TraceClassUnloading
14)-XX:+TraceLoaderConstraints
15)-XX:+PrintHeapAtGC GC
五、監視ツールと方法
1.GCを監視することで、多くの問題を明らかにすることができます.
1)minor GC full GC ;
2) GC ;
3)
4) GC , (Stop the world)
5) GC ,
2.コマンドラインツール(オリジナル)
1)jps(実行中のJVMプロセスを問い合わせるため、コマンド形式:jps[option][hostid])
(1) -q LVMID,
(2) -m main()
(3) -l , Jar , Jar
(4) -v JVM
2)jstat(jstatは、ローカルまたはリモートJVMプロセスにおけるクラスマウント、メモリ、ゴミ収集、JITコンパイルなどのデータをリアルタイムで表示することができる(リモートJVM情報を表示するには、リモートホストがRMIサポートをオンにする必要がある)
(1) -class 、 、
(2) -gc Java , Eden 、 Survivor 、 、 , 、GC
(3) -gccapacity -gc , java
(4) -gcutil -gc ,
(5) -gccause -gcutil , GC
(6) -compiler JIT 、
: jstat -gc 3463
3)jinfo(現在実行中のJVM属性とパラメータの値を問い合わせる)
(1)-flag
(2)-flag [+|-]name -flag name=value:
(3)-sysprops System.getProperties()
:jinfo -sysprops 3463
4)jmap(現在使用されているコレクタ、現在のスペース使用率など、現在のJavaスタックと永続世代の詳細を表示するためのもの)
(1)-dump java
(2)-heap java ( Linux/Solaris )
(3)-F -dump , dump ( Linux/Solaris )
(4)-histo
(5)-permstat ClassLoader ( Linux/Solaris )
:jmap -dump 3463
5)jhat(jmapで生成されたdumpファイルを解析するためのJDK独自のツール)
(1) : jhat -J -Xmx512m [file], jhat mat , mat(Eclipse : http://www.eclipse.org/mat ),mat ,
6)jstack(現在のJVMのすべてのスレッドスナップショットを生成するために使用されます.スレッドスナップショットは、仮想マシンの各スレッドが実行中の方法であり、スレッドが長時間停止している理由を特定するために使用されます)
(1)-F ,
(2)-l ,
(3)-m , C/C++
3.ビジュアル化ツール
1)Jconsole JDK
2)Visual VM , OQL
3)MAT eclipse , Java , 。 OQL
4)NetBeans Profiler CPU、 , JVM 。
5)jmeter ,
参考サイト
JVMモニタリングとチューニング
Javaパフォーマンス最適化の9大ツール
注:文章は他の文章を参考にして自分で整理したもので、一部の参考になるかもしれないし、大部分の参考になるかもしれないが、決して直接転載するわけではない.権利侵害したら削除すると思う.私はこれを自分のノートに使うだけだ.ついでに知識を整理すると同時に、一部の人を助けることができる.ps:間違いがあったら、皆さんのご指摘をお願いします.弟さんは感謝に堪えません.