天天看点

JVM 参数监控之 jinfo

jdk自带的jinfo命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息.使用 jinfo -help 命令可以查看jinfo的具体用法,如下所示:

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 -help命令可以看到jstack有如下用法:jinfo [ options ] pid,jinfo [ options ] executable core和jinfo [ options ] [ server-id@ ] remote-hostname-or-IP。其中pid为要打印的堆栈的Java进程ID,executable为生成核心转储的Java可执行文件,core为要打印堆栈跟踪的核心文件,[ server-id@ ] remote-hostname-or-IP为要远程调试的hostname或者ip地址。下面是options参数的具体介绍:

-h,-help 打印jstack用法的信息
-flag <name> 输出对应名称的参数
-flag [+|-]<name> 开启或者关闭对应名称的参数
-flag <name>=<value> 给指定的参数设置值
-flags 打印jvm配置信息
-sysprops 打印出系统属性,即可以使用System.getProperties()获取到的信息
<no option> 打印出系统属性和jvm配置信息
           

我们还可以使用jinfo pid > pid.txt将信息输出到文件中。以下为vm的falg配置选项:

Non-default VM flags: 
-XX:CICompilerCount=3 
-XX:InitialHeapSize=130023424 
-XX:MaxHeapSize=2065694720 
-XX:MaxNewSize=688390144 
-XX:MinHeapDeltaBytes=524288 
-XX:NewSize=42991616 
-XX:OldSize=87031808
-XX:+UseCompressedClassPointers 
-XX:+UseCompressedOops 
-XX:+UseFastUnorderedTimeStamps 
-XX:+UseParallelGC
Command line: -Xmx1024m -XX:MaxPermSize=192m 
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:NewRatio=2 -XX:ParallelGCThreads=8 -XX:SurvivorRatio=58
           

更多详细信息可以参考官方介绍jinfo