天天看點

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