常用Java分析及調(diào)優(yōu)工具

一、Greys

Greys是專業(yè)的JVM的業(yè)務(wù)問題定位工具

1、下載與安裝
wget http://ompc.oss.aliyuncs.com/greys/release/greys-stable-bin.zip
unzip greys-stable-bin.zip
cd greys
sh ./install-local.sh
2.啟動(dòng)與參數(shù)
./greys.sh <pid>[@IP:PORT]

默認(rèn)只寫pid時(shí),IP為127.0.0.1 PORT為3658,IP:PORT形式一般用于遠(yuǎn)程協(xié)助
進(jìn)入交互頁面,輸入help可查看命令
詳細(xì)參數(shù)說明:https://github.com/oldmanpushcart/greys-anatomy/wiki/greys-pdf

3.常用命令

(1)monitor命令:對(duì)某類的方法調(diào)用進(jìn)行監(jiān)控

monitor -c 10 ClassA MethodB

每十秒統(tǒng)計(jì)一次ClassA.MethodB 的調(diào)用情況,包括調(diào)用總數(shù),成功的個(gè)數(shù),失敗的個(gè)數(shù),RT情況等。
這個(gè)命令在實(shí)時(shí)流處理的程序中非常好用,可以快速定位問題,而無需增加打印信息和重啟流處理進(jìn)程

(2)trace命令:能方便的幫助你定位和發(fā)現(xiàn)因RT高而導(dǎo)致的性能問題缺陷,但其每次只能跟蹤一級(jí)方法的調(diào)用鏈路

trace -n 10 ClassA MethodB

打印10次ClassA.MethodB的調(diào)用鏈路及RT,其中[2,1ms]表示當(dāng)前節(jié)點(diǎn)的整體耗時(shí)2ms,當(dāng)前節(jié)點(diǎn)在當(dāng)前步驟的耗時(shí)1ms

(3)watch命令:能觀察到指定方法的調(diào)用情況。能觀察到的范圍為:返回值、拋出異常、入?yún)?/strong>

watch -b ClassA MethodB '"params[0]="+params[0]'

打印每次調(diào)用ClassA.MethodB之前的第一個(gè)參數(shù)的值

watch -s xxx.expand.ParseProducer parse returnObj -x 1

打印每次調(diào)用ClassA.MethodB之后的返回的結(jié)果的層級(jí)遍歷

二、jstat

jstat是JDK自帶的性能分析工具,主要用來實(shí)時(shí)查看JVM堆內(nèi)各個(gè)部分的使用量
常用命令為:jstat -gcutil 30476 5000
30476為pid 5000為間隔時(shí)間,結(jié)果如下圖:


image.png

下面為每個(gè)部分代表的意義

內(nèi)容 意義
S0 Survivor0區(qū)使用百分比
S1 Survivor1區(qū)使用百分比
E Eden區(qū)使用百分比
O Old區(qū)使用百分比
P Perm區(qū)使用百分比
YGC Young Generation Minor GC 的數(shù)目
YGCT Young Generation Minor GC 的時(shí)間
FGC Old Generation Full GC 的數(shù)目
FGCT Old Generation Full GC 的時(shí)間
GCT YGCT+FGCT

三、jmap

主要用來得到運(yùn)行java程序的內(nèi)存分配的詳細(xì)情況。
常用命令有兩個(gè):
(1) 打印heap的概覽情況和使用情況,和jstat -gcutil類似

jmap -heap <pid>

(2) 打印堆內(nèi)存中對(duì)象的數(shù)量及大小,可用來實(shí)時(shí)查看哪些對(duì)象占用資源過度。

jmap -histo <pid> | head -n 23
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容