如何查找对应的JVM参数

JVM参数选项

# 查看标准选项
java -help 	
# 查看-X选项
java -X	
# 查看高级选项 -XX
java -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsInitial

JDK11:https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID-3B1CE181-CD30-4178-9602-230B800D4FAE

JDK8:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC

使用java -XX:+PrintFlagsInitial |grep 关键词,获得关键词相关的JVM参数。如果是Windows,把grep换成findstr即可。

java -XX:+PrintFlagsInitial 表示打印出所有参数选项的默认值 
java -XX:+PrintFlagsFinal 表示打印出所有参数选项在运行程序时生效的值

例如,查询Hospot回边计数器提交OSR编译请求时的阈值

# windows
$ java -XX:+PrintFlagsInitial | findstr OnStack
     intx OnStackReplacePercentage                  = 140                                 {pd product}
     bool UseOnStackReplacement                     = true                                {pd product}

对照 https://chriswhocodes.com ,输入参数,查询这些参数的含义。需要按照JDK版本选择,例如JDK8没有CounterHalfLifeTime参数。

PS. 生产环境不建议随意调整这些参数,保持默认即可。

使用jinfo也可以实现同样功能

$ jinfo -flag ThreadStackSize 14356
-XX:ThreadStackSize=0

## JDK9起
jhsdb clhsdb --pid 进程号
然后输入flags去查看

使用XXFOX

使用XXFOX查询、校验、优化、生成参数,切换版本。网站还可以分析Java线程dump文件和Java内存dump文件。

https://opts.console.heapdump.cn/

image

posted @ 2022-02-09 09:33  Awecoder  阅读(442)  评论(0编辑  收藏  举报