如何查找对应的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文件。
版权声明:本文为博主原创文章,未经博主允许不得转载。