JVM参数分为三大类
1.标准参数查询
java -?
2.非标准参数查询
java -X
3.非stable参数查询
#输出参数初始值(jdk默认值)
java -XX:+PrintFlagsInitial或者
#输出参数最终值(根据物理环境和用户配置最终采用的值)
java -XX:+PrintFlagsFinal -version
输出结果(只摘取部分数据)
intx SyncFlags = 0 {product}
ccstr SyncKnobs = {product}
intx SyncVerbose = 0 {product}
uintx TLABAllocationWeight = 35 {product}
uintx TLABRefillWasteFraction = 64 {product}
uintx TLABSize = 0 {product}
bool TLABStats = true {product}
uintx TLABWasteIncrement = 4 {product}
uintx TLABWasteTargetPercent = 1 {product}
uintx TargetPLABWastePct = 10 {product}
数据根据数值类型非为五类
en | cn | 使用示例 |
---|---|---|
bool | 布尔 | -XX:+PrintGC -XX:-UseTLAB -XX:+UseLargePages |
intx | 有符号数值 | |
uintx | 无符号数值 | -XX:SurvivorRatio=8 -XX:LargePageSizeInBytes=4m |
ccstr | 字符串 | -XX:HeapDumpPath=./java_pid.hprof |
ccstrlist | 多个字符串 | -XX:OnOutOfMemoryError="cmd args;cmd args” |
程序运行起来后可以通过jinfo 查看和修改(部分参数支持动态修改)
可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数
-flag <name> pid:打印指定JVM的参数值
-flag [+|-]<name> pid:设置指定JVM参数的布尔值
-flag <name>=<value> pid:设置指定JVM参数的值
具体可参考链接