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