jinfo也是jvm中參與的一個命令,可以查看運行中jvm的全部參數,還可以設置部分參數。
格式
jinfo [ option ] pid
jinfo [ option ] executable core
jinfo [ option ] [server-id@]remote-hostname-or-IP
參數說明
pid 對應jvm的進程id
executable core 產生core dump文件
[server-id@]remote-hostname-or-IP 遠程的ip或者hostname,server-id標記服務的唯一性id
option
no option 輸出全部的參數和系統屬性
-flag name 輸出對應名稱的參數
-flag [+|-]name 開啟或者關閉對應名稱的參數
-flag name=value 設定對應名稱的參數
-flags 輸出全部的參數
-sysprops 輸出系統屬性
實例
1 輸出全部的參數和系統屬性
[java@xftest0 ~]$ jinfo 43934 Attaching to process ID 43934, please wait... Debugger attached successfully. Server compiler detected. JVM version is 20.45-b01 Java System Properties: java.runtime.name = Java(TM) SE Runtime Environment sun.boot.library.path = /usr/java/jdk1.6.0_45/jre/lib/amd64 java.vm.version = 20.45-b01 java.vm.vendor = Sun Microsystems Inc. java.vendor.url = http://java.sun.com/ path.separator = : java.vm.name = Java HotSpot(TM) 64-Bit Server VM file.encoding.pkg = sun.io sun.java.launcher = SUN_STANDARD env = dev user.country = US sun.os.patch.level = unknown
2 只輸出參數
[java@xftest0 ~]$ jinfo -flags 43934 Attaching to process ID 43934, please wait... Debugger attached successfully. Server compiler detected. JVM version is 20.45-b01 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true
剛才提到不是全部參數可以修改,只有部分,下面是可以修改的參數列表
SZ-sten:go sten$ java -XX:+PrintFlagsFinal -version |grep manageable intx CMSAbortablePrecleanWaitMillis = 100 {manageable} intx CMSWaitDuration = 2000 {manageable} bool HeapDumpAfterFullGC = false {manageable} bool HeapDumpBeforeFullGC = false {manageable} bool HeapDumpOnOutOfMemoryError = false {manageable} ccstr HeapDumpPath = {manageable} uintx MaxHeapFreeRatio = 100 {manageable} uintx MinHeapFreeRatio = 0 {manageable} bool PrintClassHistogram = false {manageable} bool PrintClassHistogramAfterFullGC = false {manageable} bool PrintClassHistogramBeforeFullGC = false {manageable} bool PrintConcurrentLocks = false {manageable} bool PrintGC = false {manageable} bool PrintGCDateStamps = false {manageable} bool PrintGCDetails = false {manageable} bool PrintGCTimeStamps = false {manageable}
命令 java -XX:+PrintFlagsFinal -version是輸出全部的參數