jstack主要用來查看某個Java進程內(nèi)的線程堆棧信息。語法格式:jstack [option] pid
; 命令行參數(shù)選項說明如下:
- -l long listings,會打印出額外的鎖信息矫俺,在發(fā)生死鎖時可以用jstack -l pid來觀察鎖持有情況
- -m mixed mode剿干,不僅會輸出Java堆棧信息闷盔,還會輸出C/C++堆棧信息(比如Native方法)
可以使用jstack [option] pid > stack.txt
將棧信息輸出到stack.txt文件中
jmap -permstat pid
: 打印進程的類加載器和類加載器加載的持久代對象信息劲弦,輸出:類加載器名稱、對象是否存活(不可靠)雏节、對象地址胜嗓、父類加載器、已加載的類大小等信息钩乍。
使用jmap -heap pid
查看進程堆內(nèi)存使用情況辞州,包括使用的GC算法、堆配置參數(shù)和各代中堆內(nèi)存使用情況寥粹。
使用jmap -histo[:live] pid
查看堆內(nèi)存中的對象數(shù)目孙技、大小統(tǒng)計直方圖,如果帶上live則只統(tǒng)計活對象:jmap -histo:live pid | more
排作;另外可以使用jmap -histo 9076 > histo.log
將堆信息輸出到histo.log文件中。
用jmap把進程內(nèi)存使用情況dump到文件中亚情,再用jhat分析查看妄痪。jmap進行dump命令格式:jmap -dump:format=b,file=dump.txt pid
;再用jhat -port 9090 dump.txt
楞件,然后就可以在瀏覽器中輸入http://ip:9090
查看了