JDK的bin目錄下面自帶了非常多的優(yōu)秀工具,可以對(duì)系統(tǒng)進(jìn)行性能分析,查看CPU,內(nèi)存的消耗,dump日志分析等。在遇到性能問題,或者并發(fā)訪問問題的時(shí)候,不妨試用下這些工具,可以很方便的定位出性能的瓶頸點(diǎn),也能幫助大家發(fā)現(xiàn)平時(shí)走讀代碼,或者功能測(cè)試發(fā)現(xiàn)不了的問題。
首先介紹下VisualVM:

如圖所示,該軟件主要有兩個(gè)功能,
本地程序的監(jiān)控:
可以監(jiān)控本地的java進(jìn)程的CPU,類,線程,的消耗情況,點(diǎn)擊線程dump也可以比較方便的查看當(dāng)前的dump日志

查看遠(yuǎn)程服務(wù)器的運(yùn)行狀態(tài)
如果要遠(yuǎn)程監(jiān)控tomcat服務(wù)器的運(yùn)行狀態(tài),則需要修改下tomcat的配置
在catalina.sh中,或者bin下新建一個(gè)setenv.sh,加上如下內(nèi)容
JAVA_OPTS='-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'
然后重啟tomcat。
然后添加jmx連接即可。

而jconsole可以有多的維度來(lái)監(jiān)控java進(jìn)程的運(yùn)行狀態(tài),還可以很方便的檢查死鎖

關(guān)于dump日志的具體分析和如何利用visualVM分析系統(tǒng)并發(fā)問題,下一篇博文詳細(xì)介紹