Jinfo的作用
jinfo可以实时的查看以及调整虚拟机的各项参数。
Jinfo的使用
jinfo的命令格式
jinfo [option] pid
jinfo -help
jinfo -help
可以获取一些帮助信息,比如一些参数之类的,如下:
jinfo pid
jinfo 23960 //23960为PID
我发现可以直接jinfo pid,不加选项,这样会输出所有的JVM参数。如下图:
jinfo [option] pid
各选项简介:
-flag <name> 打印指定的VM参数
-flag [+|-]<name> 开启或者禁用指定的VM配置参数
-flag <name>=<value> 设置指定VM参数的值
-flags 打印所有的VM参数
-sysprops 打印所有的Java系统参数
<no option> 打印所有的Java系统参数以及VM参数
-h | -help 打印帮助信息
jinfo -flag MaxHeapSize pid
jinfo -flag MaxHeapSize 23960
执行结果如下:
jinfo -flag -UseAdaptiveSizePolicy pid
禁用动态调整Java堆中各个区域大小以及进入老年代的年龄
首先我们查看一下这个参数是否为开启状态:
jinfo -flag UseAdaptiveSizePolicy 23960
可以看到,前面是+ 号表示为启用状态。然后我们禁用它
jinfo -flag -UseAdaptiveSizePolicy 23960
然后你就会发现,报错了。因为有些配置参数是不支持动态修改的。
换一个继续尝试那个命令,启用打印GC信息,先查看这个配置参数是否开启
可以看到,配置是处于禁用状态的。
执行命令jinfo -flag +PrintGC 启用这个配置参数。
jinfo -flag +PrintGC 23960
没有报错,然后我们再次查看该配置。
成功启用该配置参数,开心。
jinfo -flags pid
jinfo -flags 23960
打印虚拟机参数。
参考资料:
- 深入理解Java虚拟机。
- Java命令学习系列(六)——jinfo
- jinfo命令
- jinfo - Configuration Info
- jinfo命令使用