一JVM的参数类型
标准参数
- -help
- -server -client
- -version -showversion
- -cp -classpath
X参数
非标准化参数,JVM各个版本都有可能会变,但是一般变化都不大。
- -Xint:解析执行
- -Xcomp:第一次使用就编译成本地代码
- -Xmixed:混合模式,JVM自己来决定是否编译成本地代码
XX参数
非标准化参数,相对不稳定,主要用于JVM调优和Debug
Boolean类型
格式:-XX:[+-]
表示启用或者禁用name属性 比如:-XX:+UseConcMarkSweepGC 启用CMS垃圾收集器 -XX:UseG1GC 使用G1垃圾收集器
非Boolean类型
格式:-XX:
= 表示name属性的值是value 比如:-XX:MaxGCPauseMillis=500 GC的最大停顿时间 -XX:GCTimeRatio=19
-Xmx -Xms -Xss
不是X参数,而是XX参数
-Xms等价于-XX:InitialHeapSize
-Xmx等价于-XX:MaxHeapSize
-Xss等价于-XX:ThreadStackSize
查询参数值方式如下1
2
3
4
5
6
7bash-4.2# jps
7 jar
218 Jps
bash-4.2# jinfo -flag MaxHeapSize 7
-XX:MaxHeapSize=268435456
bash-4.2# jinfo -flag ThreadStackSize 7
-XX:ThreadStackSize=1024
二 查看JVM运行时参数
- -XX:+PrintFlagsInitial 查看JVM初始参数
- -XX:+PrintFlagsFinal 查看JVM最终运行参数
- -XX:+UnlockExperimentalVMOptions 解锁试验参数
- -XX:+UnlockDialognosticVMOptions 解锁诊断参数
- -XX:+PrintCommandLineFlags 打印命令行参数
PrintFlagsFinal 会输出以下两种
- = 表示默认值
- := 表示被用户或者JVM修改后的值
1 | uintx InitialHeapSize := 268435456 {product} |
1 | bool UseG1GC = false {product} |
三 命令的使用
主要可以查看文档
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html
jps命令如下:
1 | $ jps -l |
jinfo的命令如下:
1 | $ jinfo -flag MaxHeapSize 54215 |
其他命令使用参考文档