一鄙币、基于命令行
1. jps
功能
類似與 UNIX 的 ps 命令焰扳,可列出正在運行的虛擬機進程辆琅,并顯示虛擬機執(zhí)行主類名稱及這些進程的本地虛擬機唯一 ID(LVMID)丰包。
格式
jps [ options ] [ hostid ]
示例
選項
選項 | 作用 |
---|---|
-q | 主輸出 LVMID爆价,省略主類的名稱 |
-m | 輸出虛擬機進程啟動時傳遞給主類 main() 函數(shù)的參數(shù) |
-l | 輸出主類的全名垦巴,如果進程執(zhí)行的是 JAR 包,則輸出 JAR 路徑 |
-v | 輸出虛擬機進程啟動時的 JVM 參數(shù) |
2. jstat
功能
用于監(jiān)視虛擬機各種運行狀態(tài)信息的工具铭段。既可以顯示本地或者遠程虛擬機進程中的類加載骤宣、內(nèi)存、垃圾收集序愚、即時編譯等運行時數(shù)據(jù)憔披。也許不如圖形化那么直觀,但在沒有 GUI 圖形界面爸吮,只提供純文本控制臺環(huán)境的生產(chǎn)環(huán)境服務(wù)器上芬膝,它是運行期定位性能問題的常用工具。
格式
jstat [ option vmid [ interval[s|ms] [count] ] ]
其中形娇,interval 和 count 代表查詢間隔和次數(shù)锰霜,如果省略倆參數(shù),則只查詢一次桐早。
示例
如圖癣缅,第一個命令即省略參數(shù),只進行一次查詢哄酝;而設(shè)置interval 為 250ms友存,count 為 20時,會進行每 250ms 查詢一次進程 22288 垃圾收集狀況陶衅,一共查詢 20 次(圖未截取完整)屡立。
選項
選項 | 作用 |
---|---|
-class | 監(jiān)視類加載、卸載數(shù)量搀军、總空間以及類裝載所耗費的時間 |
-gc | 監(jiān)視 Java 堆狀況膨俐,包括 Eden 區(qū)、兩個 Survivor 區(qū)罩句、老年代吟策、永久代等的容量,已用空間的止,垃圾收集時間合計等信息 |
-gccapcity | 監(jiān)視內(nèi)容與 -gc 基本相同,但關(guān)注 Java 堆各個區(qū)域使用到的最大着撩、最小空間 |
-gcutil | 監(jiān)視內(nèi)容與 -gc 基本相同诅福,但關(guān)注已使用空間占總空間百分比 |
-gccause | 與 -gcutil 功能一樣匾委,但是會額外輸出導(dǎo)致上一次垃圾收集產(chǎn)生的原因 |
-gcnew | 監(jiān)視新生代垃圾收集狀況 |
-gcold | 監(jiān)視老年代垃圾收集狀況 |
-gcpermcapcity | 輸出永久代使用到的最大、最小空間 |
二氓润、可視化
JDK 附帶了幾個功能集成度更高的可視化工具赂乐,包括:JConsole、JHSDB咖气、VisualVM 和 JMC 四個挨措。
1.JSHDB
功能
JHSDB 可提供命令行模式和可視化模式,它是一款基于服務(wù)性代理實現(xiàn)的進程外調(diào)試工具
2. JConsole
功能
- 內(nèi)存監(jiān)控崩溪,相對于 jstat
- 線程監(jiān)控浅役,相當于 jstack,可檢測死鎖伶唯。
3. VisualVM
功能
最強大的運行監(jiān)視器和故障處理程序之一觉既。基本 NetBeans 平臺開發(fā)工具乳幸,具備插件擴展功能瞪讼。