JVM调优-Jinfo的使用
关于JAVA相关的文档,具体还可以看官方文档https://docs.oracle.com
1. Jinfo介绍
引用官方一段说明:The jinfo command prints Java configuration information for a specified Java process or core file or a remote debug server. The configuration information includes Java system properties and Java Virtual Machine (JVM) command-line flags.
顾名思义,jinfo可以用于查看JVM参数和修改JVM参数,但是有些参数还是不支持修改的,比如XMX,XMN等运行时不适合修改的参数,当出现下面报错的时候,就知道不适合修改了
2. jinfo的应用场景
(1)通过命令查看当前的参数是否合适,是否需要调优。
(2)支持生产环境动态修改JVM参数,但是这个应用情景应用不大,因为jinfo不支持动态修改比如permsize,XMX,XMN,Xlogc等重要参数。
3. jinfo的基础使用
参数说明
pid 对应jvm的进程id
no option 输出全部的参数和系统属性
-flag name 输出对应名称的参数
-flag [+|-]name 开启或者关闭对应名称的参数
-flag name=value 设定对应名称的参数
-flags 输出全部的参数
-sysprops 输出系统属性
下面是展示平时经常用到的一些示例:
(1)no option
命令:jinfo pid
描述:输出当前 jvm 进程的全部参数和系统属性
(2)-flag name
命令:jinfo -flag name pid
描述:输出对应名称的参数
(3)-flag [+|-]name
命令:jinfo -flag [+|-]name pid
描述:开启或者关闭对应名称的参数
使用 jinfo 可以在不重启虚拟机的情况下,可以动态的修改 jvm 的参数。尤其在线上的环境特别有用。
(4)-flag name=value
命令:jinfo -flag name=value pid
描述:修改指定参数的值。
同示例三,但示例三主要是针对 boolean 值的参数设置的。
如果是设置 value值,则需要使用 name=value 的形式。
使用如下:
(5) -flags
命令:jinfo -flags pid
描述:输出全部的参数
(6)-sysprops
命令:jinfo -sysprops pid
描述:输出当前 jvm 进行的全部的系统属性