命令基於Sun JDK,用於監控和診斷HotSpot的java 虛擬機。 對應的可執行文件位於$JAVA_HOME/bin/下
jps-虛擬機進程狀況工具
| 選項 |
作用 |
| -q |
只輸出LVMID,同進程pid |
| -m |
輸出JVM啟動時傳給主類main()的參數。 |
| -l |
輸出主類全名。如果進程執行的是jar包,則輸出包名。 |
| -v |
輸出JVM啟動時JVM參數。 |
jstat-虛擬機統計信息監視工具
命令格式
jstat [ option vmid [interval[s|ms] [count]] ]
interval代表查詢間隔,可以指定時間單位為s或ms,默認為ms。
| 選項 |
作用 |
| -class |
監視類裝載、卸載數量,字節數,以及類裝載所耗費的時間。 |
| -gc |
監視java堆狀況,包括Eden區,Survivor區,Old區,Perm區的容量,已使用容量及YGC,FGC發生的次數及耗費的時間。 |
| -gccapacity |
監視Java堆各個區的最大,最小使用容量及配置容量。 |
| -gcutil |
監視Java堆各個區的空間使用百分比及YGC,FGC發生的次數及耗費的時間。 |
| -gccause |
同-gcutil功能相同,額外輸出上一次GC產生的原因。 |
| -compiler |
輸出JIT編譯器編譯過的方法個數,耗時等信息。 |
| -printcompilation |
輸出已經被JIT編譯的方法 |
jinfo-Java配置信息工具
| <no option> |
打印命令行參數及系統屬性。 |
| -flag name |
打印給定name對應的命令行參數值。 |
| -flag [+|-]name |
更改boolean類型的命令行參數值 |
| -flag name=value |
更改name對應的命令行參數值為value。 |
| -flags |
打印傳給JVM的命令參數值。 |
| -sysprops |
打印系統屬性值。 |
jmap-java內存映像工具
| -dump |
生成dump文件,格式為:-dump:[live,]format=b,file=<filename>,其中live表示先做GC然后再做dump文件,即只dump活的對象。 |
| -finalizerinfo |
顯示在F-Queue中等待Finalizer線程執行finalize方法的對象。Only for Linux。 |
| -heap |
顯示Java堆棧詳細信息,例如GC收集器,參數配置,JVM內存分區情況。Only for Linux。 |
| -histo |
顯示堆中對象的統計信息,包括類、實例數量、容量大小。 |
| -permstat |
按照ClassLoader統計Perm區的內存狀態。Only for Linux。 |
| -F |
與-dump參數一起使用,強制生成dump文件。 |
jhat-dump文件分析工具
| 選項 |
作用 |
| -port |
指定http啟動的端口,默認7000 |
| -J<flag> |
指定傳給jhat JVM的參數,-J-Xmx512m表示jhat進程最大堆大小為512m。 |
jstack-java堆棧跟蹤工具
| 選項 |
作用 |
| -F |
當正常輸出請求得不到響應時,強制輸出堆棧信息。 |
| -l |
除堆棧外,顯示關於鎖的附加信息。 |
| -m |
如果調用native方法,則可以打出c/c++的線程堆棧。 |
