幾款實(shí)用的 GC 日志可視化分析工具!你用的怎么樣?
01、背景介紹
通常情況下,運(yùn)維人員并不會直接在服務(wù)器端通過命令方式實(shí)時打印當(dāng)前應(yīng)用程序的 GC 日志來分析服務(wù)的性能,通常的做法是導(dǎo)出當(dāng)前服務(wù)的 GC 日志文件,然后通過其它的可視化工具來分析服務(wù)的性能指標(biāo)。
今天通過這篇文章,我們一起來了解一下 GC 相關(guān)的可視化分析工具。
02、日志分析工具
目前,軟件市場上對 GC 日志進(jìn)行可視化分析的工具非常多,在此我們介紹幾款業(yè)界比較流行的日志分析工具,以便能更加快速的排查 GC 問題。
2.1、GCeasy
GCeasy 是一款在線的 GC 日志分析器,使用起來非常方便,用戶可以通過它的 web 網(wǎng)站導(dǎo)入 gc 日志,實(shí)時進(jìn)行內(nèi)存泄漏檢測、GC暫停原因分析、JVM 配置建議優(yōu)化等功能,而且是可以免費(fèi)使用的(有部分服務(wù)是收費(fèi)的),網(wǎng)站訪問地址如下!
http://gceasy.io
選擇中文語言之后,即可看到如下界面。
圖片
還是以最開頭的代碼為例,在運(yùn)行的時候,加上如下命令即可導(dǎo)出 gc 日志。
-Xloggc:/Users/xxx/Documents/logs/gc.log
如果是 jar 包的啟動方式,比如 SpringBoot 工程,可以在啟動命令時加上Xloggc參數(shù)即可,例如下面的示例。
java -Xloggc:gc.log -XX:+PrintGCDetails -jar application.jar
如果是 war 包的啟動方式,比如放在 tomcat 里面,可以通過修改bin/catalina.sh文件來開啟 gc 日志,例如下面的示例。
JAVA_OPTS='-Xloggc:/tmp/gc.log -XX:+PrintGCDetails'
最后,將導(dǎo)出的 gc 日志,上傳到 GCeasy 中,即可實(shí)時統(tǒng)計(jì)出相關(guān)的 gc 信息。
以下導(dǎo)入 gc 日志后,相關(guān)的分析截圖信息,有興趣的朋友,可以自行嘗試一下。
圖片
圖片
2.2、GCViewer
GCViewer 也是一款非常強(qiáng)大的 gc 日志可視化分析工具,與 GCeasy 稍有不同,它需要本地運(yùn)行,而且完全免費(fèi)。
安裝和啟動方式如下!
-- 1.下載源碼
git clone https://github.com/chewiebug/GCViewer.git
-- 2.用 IDEA打開項(xiàng)目,使用 maven 進(jìn)行打包
mvn clean pacakge
-- 3.得到一個 可運(yùn)行的jar包,在 target目錄下,啟動服務(wù)
java -jar gcviewer-1.37-SNAPSHOT.jar
啟動服務(wù)之后,會彈出一個類似于如下的界面。
圖片
點(diǎn)擊左上角的按鈕,打開本地的 gc 日志文件,就會顯示了日志分析的結(jié)果。
圖片
左側(cè)是圖表,右側(cè)是數(shù)據(jù)統(tǒng)計(jì)面板,展示的內(nèi)容還是比較豐富的,有興趣的訪問它的官網(wǎng)特性說明,地址如下。
https://github.com/chewiebug/GCViewer/wiki
03、參考
1.https://juejin.cn/post/7029130033268555807
2.https://www.cnblogs.com/xrq730/p/4836700.html