JVM的监控工具之jinfo

参考博客:https://www.jianshu.com/p/8d8aef212b25java

jinfo(ConfigurationInfoforJava)的做用是实时地查看和调整虚拟机各项参数,使用jps命令的-v参数能够查看虚拟机启动时显式指定的参数列表。
但若是想知道未被显式指定的参数的系统默认值,除了去找资料外,就只能使用jinfo的-flag选项进行查询。jvm

  • no option 输出所有的参数和系统属性
  • -flag name 输出对应名称的参数
  • -flag [+|-]name 开启或者关闭对应名称的参数

咱们能够经过jinfo实时的修改虚拟机的参数,可是不是任何命令均可以修改,能够修改的参数咱们先来执行这个命令:java -XX:+PrintFlagsFinal -version,会列出当前机器支持的全部参数,那么用jinfo能够修改的参数是什么呢?ide

只有最后一列显示manageable的这一列才能进行修改。idea

仔细查看发现可修改的参数其实并很少,jvm的运行内存一旦在运行时肯定下来,那么就没法修改。可是没法一些错误信息没有记录,或者是处于关闭状态,仍是能够修改的命令行

 

例如咱们来查询idea的进程是否开启了GC日志信息的详细打印,咱们能够执行这样的命令:jinfo -flag PrintGCDetails 17312,从结果中咱们能够看出是没有开启打印GC详细信息的。线程

jinfo还能够使用-sysprops选项把虚拟机进程的System.getProperties()的内容打印出来,能够执行命令:jinfo -sysprops 17312。3d

 

jinfo -flags:会打印当前该线程全部相关的参数,例如咱们要来打印idea这个进程的全部相关参数,咱们来执行命令:jinfo -flags 40416会列出JVM的版本,显示当前idea他的非缺省值的东西(也就是你修改过的),还有Command Line 表明的是命令行形式传递给idea这个进程的一些参数日志

 

 查看最大堆内存 jinfo -flag MaxHeapSize 17312 blog

 

查看所使用的垃圾收集器
jinfo -flag UseConcMarkSweepGC 17312进程

jinfo -flag UseG1GC 17312
jinfo -flag UseParallelGC 17312

 

能够看出所使用的垃圾回收器是 ParallelGC

相关文章
相关标签/搜索