相關(guān)命令
jps命令
java提供的一個(gè)顯示當(dāng)前所有java進(jìn)程pid的命令
參數(shù):
-q:只顯示pid
-m:輸出傳遞給main方法的參數(shù)
-l:輸出應(yīng)用程序main class的完整package名或者應(yīng)用程序的jar文件完整路徑名
-v:顯示JVM參數(shù)</pre>
參考鏈接:
Java命令學(xué)習(xí)系列(一)——Jps-HollisChuang's Blog
jstat命令
# 垃圾回收統(tǒng)計(jì)
jstat -gc pid 250 20:查詢(xún)進(jìn)程xxx的垃圾收集情況,每250毫秒查詢(xún)一次曹锨,一個(gè)查詢(xún)20次桑逝。
S0C:第一個(gè)幸存區(qū)的大小
S1C:第二個(gè)幸存區(qū)的大小
S0U:第一個(gè)幸存區(qū)的使用大小
S1U:第二個(gè)幸存區(qū)的使用大小
EC:伊甸園區(qū)的大小
EU:伊甸園區(qū)的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法區(qū)大小
MU:方法區(qū)使用大小
CCSC:壓縮類(lèi)空間大小
CCSU:壓縮類(lèi)空間使用大小
YGC:年輕代垃圾回收次數(shù)
YGCT:年輕代垃圾回收消耗時(shí)間
FGC:老年代垃圾回收次數(shù)
FGCT:老年代垃圾回收消耗時(shí)間
GCT:垃圾回收消耗總時(shí)間
jstat -gcutil pid 250 20:查詢(xún)GC總體使用情況(百分比)
jstat -gccause pid:額外輸出上次GC原因
特別的:
Allocation Failure:
表明本次引起GC的原因是因?yàn)樵谀贻p代中沒(méi)有足夠的空間能夠存儲(chǔ)新的數(shù)據(jù)了勤揩。
jinfo命令(jdk8后官方拋棄)
可以用來(lái)查看正在運(yùn)行的java應(yīng)用程序的擴(kuò)張參數(shù)著觉,包括java system屬性和JVM命令行參數(shù),也可以動(dòng)態(tài)的修改正在運(yùn)行的JVM的一些參數(shù)晴圾。
用法 | 說(shuō)明 | 舉例 |
---|---|---|
jinfo pid | 輸出當(dāng)前JVM進(jìn)程的全部參數(shù)和系統(tǒng)屬性 | jinfo 11772 |
jinfo -flag name pid | 輸出對(duì)應(yīng)名稱(chēng)的參數(shù) | jinfo -flag PrintGC 11772 |
jinfo -flag [+|-]name pid | 開(kāi)啟或者關(guān)閉對(duì)應(yīng)名稱(chēng)的參數(shù)(動(dòng)態(tài)修改參數(shù)) | jinfo -flag -PrintGC 11772 |
jinfo -flag name=value pid | 修改指定參數(shù)的值(動(dòng)態(tài)修改參數(shù)) | jinfo -flag HeapDumpPath=C:\error.hprof 11772 |
jinfo -flags pid | 輸出全部的參數(shù) | jinfo -flags 11772 |
jinfo -sysprops pid | 輸出當(dāng)前JVM進(jìn)程的全部系統(tǒng)屬性 | jinfo -sysprops 11772 |
參考鏈接:jvm 性能調(diào)優(yōu)工具之 jinfo - 簡(jiǎn)書(shū) (jianshu.com)
jstack
生成當(dāng)前時(shí)刻的線(xiàn)程快照
- jstack pid:查看線(xiàn)程情況
jmap
將內(nèi)存使用的詳細(xì)情況輸出到文件
- jmap -dump:format=b,file=heapDump pid:輸出到文件heapDump
jhat
Jhat分析Jmap打印出的堆快照信息
- jhat 文件名:?jiǎn)?dòng)了一個(gè)http服務(wù)懦冰,端口默認(rèn)是7000灶轰,可以使用http://127.0.01:7000/進(jìn)行訪(fǎng)問(wèn)
信息比較大,得對(duì)具體代碼有針對(duì)的分析刷钢,分析哪些對(duì)象無(wú)法回收的情況
常見(jiàn)問(wèn)題定位過(guò)程
頻繁GC或內(nèi)存溢出
jps:查看pid
jstat -gc pid 250 20:查看gc情況
jstat -gccause pid:查看上次gc原因
jmap -dump:format=b,file=heapDump pid:生成堆轉(zhuǎn)儲(chǔ)文件
使用jhat分析堆情況
結(jié)合代碼解決內(nèi)存溢出或泄漏問(wèn)題笋颤。
死鎖問(wèn)題
jps:查看pid
top -H -p pid:查看哪個(gè)線(xiàn)程CPU使用率高
printf %x 線(xiàn)程id:獲取十六進(jìn)制線(xiàn)程id
jstack pid|grep 十六進(jìn)制線(xiàn)程id:查看線(xiàn)程情況