JAVA學(xué)習(xí)筆記--JDK工具
一掘殴、JPS - JavaVirtual Machine Process Status Tool
顯示指定系統(tǒng)內(nèi)所有JAVA虛擬機(jī)進(jìn)程
參數(shù):
- -q 只輸出進(jìn)程ID,不顯示class名稱,jar文件名和傳遞給main方法的參數(shù)
- -m 輸出傳遞給main方法的參數(shù)(傳給main方法的參數(shù))
- -l 輸出應(yīng)用程序main class的完整package名;或者應(yīng)用程序的jar文件完整路徑名
- -v 輸出虛擬機(jī)進(jìn)程啟動(dòng)的JVM參數(shù)
二、JSTAT - Java Virtual Machine Statistics Monitoring Tool
利用JVM內(nèi)建的指令對(duì)Java應(yīng)用程序的資源和性能進(jìn)行實(shí)時(shí)的命令行的監(jiān)控幔摸,包括了對(duì)Heap size和垃圾回收狀況的監(jiān)控
使用時(shí)伸刃,需加上查看進(jìn)程的進(jìn)程id拴驮,和所選參數(shù)
命令:jstat [-選項(xiàng)] [間隔毫秒] [監(jiān)控次數(shù)]
參數(shù):
- -gcutil 監(jiān)視java內(nèi)存狀況庸汗,GC狀況
- -class 監(jiān)視類裝載卸載數(shù)量,總空間已經(jīng)類裝載耗費(fèi)時(shí)間
- -compiler 顯示VM實(shí)時(shí)編譯的數(shù)量等信息
使用示例
jstat -gcutil 25444 1000 2
S0 S1 E O P YGC YGCT FGC FGCT GCT
73.54 0.00 99.04 67.52 98.49 166 0.252 6 0.331 0.583
73.54 0.00 99.04 67.52 98.49 166 0.252 6 0.331 0.583
- S0 — Heap上的 Survivor space 0 區(qū)已使用空間的百分比
- S1 — Heap上的 Survivor space 1 區(qū)已使用空間的百分比
- E — Heap上的 Eden space 區(qū)已使用空間的百分比
- O — Heap上的 Old space 區(qū)已使用空間的百分比
- P — Perm space 區(qū)已使用空間的百分比
- YGC — 從應(yīng)用程序啟動(dòng)到采樣時(shí)發(fā)生 Young GC 的次數(shù)
- YGCT– 從應(yīng)用程序啟動(dòng)到采樣時(shí) Young GC 所用的時(shí)間(單位秒)
- FGC — 從應(yīng)用程序啟動(dòng)到采樣時(shí)發(fā)生 Full GC 的次數(shù)
- FGCT– 從應(yīng)用程序啟動(dòng)到采樣時(shí) Full GC 所用的時(shí)間(單位秒)
- GCT — 從應(yīng)用程序啟動(dòng)到采樣時(shí)用于垃圾回收的總時(shí)間(單位秒)
三山上、JINFO - Java Configuration Info
實(shí)時(shí)查看和調(diào)整虛擬機(jī)各項(xiàng)參數(shù)
- jinfo -v 查看虛擬機(jī)啟動(dòng)指定的參數(shù)列表
- jinfo -flag 查看未被顯示指定的參數(shù)的系統(tǒng)默認(rèn)值【jinfo -flag UseSerialGC 28569】
四眼耀、JMAP - Java Memory Map
一個(gè)可以輸出所有內(nèi)存中對(duì)象的工具
獲取dump文件,查詢finalize執(zhí)行隊(duì)列佩憾,Java堆和永久代的詳細(xì)信息
參考:jmap命令詳解
參數(shù):
-dump:[live,]format=b,file=<filename> 生成堆內(nèi)存快照文件; live可選[只輸出活的對(duì)象到文件];
eg: $jmap –dump:live,format=b,file=myfile.bin 3772
-finalizerinfo 打印正等候回收的對(duì)象的信息(Object.finalize());
eg: $jmap -finalizerinfo 3772
-heap 顯示JAVA進(jìn)程堆的詳細(xì)信息(垃圾收集器哮伟,參數(shù),分代狀況妄帘,內(nèi)存使用量等);
eg: $jmap -heap 3772
-histo 顯示JAVA進(jìn)程對(duì)象統(tǒng)計(jì)信息(類數(shù)量楞黄,對(duì)象實(shí)例數(shù)量);
eg: $jmap -histo 3772
-permstat 以ClassLoader為口徑顯示永久帶內(nèi)存狀態(tài);
eg: $jmap -permstat 3772
五、JHAT - Java Heap Analyse Tool
用于對(duì)JAVA heap進(jìn)行離線分析的工具
使用示例:
$jhat myfile.bin
JHAT內(nèi)置HTTP服務(wù)器抡驼,生成dump文件的分析結(jié)果可以打開瀏覽器查看
六鬼廓、JSTACK - Java Stack Trace
用于打印出給定的java進(jìn)程服務(wù)的Java堆棧信息, 可以定位線程長時(shí)間停頓的原因,如死鎖致盟,死循環(huán)碎税,IO等待
java.lang.Thread.getAllStackTraces()可以獲取虛擬機(jī)所有線程StackTraceElement對(duì)象。
使用示例:
$jstack 3772
- 參數(shù)-l 顯示線程額外的鎖信息
七馏锡、JCONSOLE
基于JMX的可視化監(jiān)視管理工具