jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数。使用 jps -v
命令参数可以查看虚拟机启动时显式指定的参数列表,如果想知道未被显式指定的参数的系统默认值,除了去找资料外,还可以使用 jinfo -flag
命令进行查询。
在 JDK 1.6 或以上版本,也可以使用 java -XX:+PrintFlagsFinal
在程序启动时查看参数默认值,还可以使用 jinfo -sysprops
选项把虚拟机进程的 System.getProperties()
的内容打印出
来。可以使用 jinfo -flag[+|-] name
或者 jinfo -flag name=value
修改一部分运行期可写的虚拟机参数值。下面是一些命令用例:
jinfo -help
查看命令帮助
[root@localhost ~]# jinfo -help
Usage:
jinfo [option] <pid>
(to connect to running process)
jinfo [option] <executable <core>
(to connect to a core file)
jinfo [option] [server_id@]<remote server IP or hostname>
(to connect to remote debug server)
where <option> is one of:
-flag <name> to print the value of the named VM flag
-flag [+|-]<name> to enable or disable the named VM flag
-flag <name>=<value> to set the named VM flag to the given value
-flags to print VM flags
-sysprops to print Java system properties
<no option> to print both of the above
-h | -help to print this help message
jinfo -flag SurvivorRatio 19863
查看进程号为 19863 的 Java 程序新生代中伊甸园区与一个幸存区的空间比例
[root@localhost ~]# jinfo -flag SurvivorRatio 19863
-XX:SurvivorRatio=3
文章摘自《深入理解Java虚拟机》第二版 周志明著,仅作为学习记录,书籍中用到的案例代码及描述有部分修改,但未改变原意。