
5ycode
被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。
公众号
当我们在生产调优的时候,有时候不确定当前的jvm哪些参数已过期。通过以下两种方式,可以确认当前jdk是否支持,以及对应的参数含义。
方法一:通过命令行获取当前jdk的参数
# 打印jvm所有参数的最终值(可能jdk被人调整,有些值变化了)
java -XX:+PrintFlagsFinal -version # 注意这个必须加-version
# 打印jvm所有的默认参数
java -XX:+PrintFlagsInitial
# 打印被覆盖的项
java -XX:+PrintCommandLineFlags -version
#直接针对应用查看自己改了哪些值
java -server -Xms1g -Xmx1g -XX:+PrintFlagsFinal AA |grep ":"
解析:
第一列:表示参数值类型 可以根据第三列推断
第二列: 表示参数名
第三列:表示参数对应的值 =50 表示默认值 :=50 表示被用户或jvm赋值
第四列:应该是参数的发行状态
第五列:表示是默认还是修改过的 default 或 ergonomic
方法二:通过官网查找
https://docs.oracle.com/en/java/javase/index.html
jdk7及以下:
https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html
jdk8
jdk9 及以后
选择java点进去就是当前版本的jvm参数分类以及描述。
如jdk8
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
可以看对应的参数以及含义。
文章评论