GC日誌可視化分析 & JVM狀態可視化 工具整理

目錄

 

一、GC日誌可視化分析工具

    1. 概述

    2. GCeasy

    3. GCPlot

    4. JClarity

    5. GcViewer

二、JVM狀態可視化(JVisualVM)

    1. 概述

    2. 運行

    3. 安裝插件

    4. 遠程監控

        4.1 jstatd連接 

        4.2 JMX連接(以Tomcat爲例)


一、GC日誌可視化分析工具

    1. 概述

            本文選取https://fasterj.com/tools/gcloganalysers.shtml 中按更新日期排序的GC日誌分析工具的前四個,好處:目前都還有人維護;

            實驗GC日誌生成參數:-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/Desktop/gc.txt;

            JDK8;macOS;

            工具包含主要指標(Metrics):JVM Heap Size(Generation / Allocated space / before GC / after GC);Throughput;Pause(Minor GC / Full GC / count);Reclaimed Bytes;GC count;GC causes;Allocatied Objects Size;Promoted Object Size;created bytes;

            本地部署的工具比在線工具快;

    2. GCeasy

            部署 https://gceasy.io/index.jsp#features

            1. 將GC日誌文件gc.txt壓縮成zip;

            2. 訪問https://gceasy.io/index.jsp#features,完全在線,上傳zip;

            3. Analyze,多等一會,將會展示數據和圖表;     

    3. GCPlot

            部署(同官網)https://gcplot.com/

            1. 安裝docker;

            2. 在終端運行命令:docker run -d -p 80:80 gcplot/gcplot;

            3. 在瀏覽器訪問地址:http://127.0.0.1;用戶名和密碼,均爲admin;

            4. General --> Upload GC Log --> 選擇文件 --> 點擊Upload按鈕;

            5. Analysis Groups --> Files --> 點擊上傳的GC日誌gc.txt --> 將會JVM info,指標按tab頁分類;

    4. JClarity

            部署(付費)https://www.jclarity.com/censum/

            1. 在官網選擇試用,填寫信息(郵箱),將會收到下載地址和uuid;

            2. 在下載頁輸入郵箱、uuid、操作系統,點擊submit,將會收到包含licence key的郵件,瀏覽器將下載安裝包;

            3. (macOS下載tgz)雙擊tgz文件,將解壓後目錄下的文件移動到應用程序目錄下,在啓動臺點擊icon運行;

            4. 首次運行輸入licence key;

            5. 點擊Analyse a GC Log;上傳GC日誌文件gc.txt;

            6. 將會展示分析結果和建議(ANALYTICS,如👇圖所示)、圖表和數據(GRAPHS AND DATA);

JClarity分析截圖
Clarity分析功能截圖

    5. GcViewer

            部署 https://github.com/chewiebug/GCViewer

            1. 下載工程;

            2. 在Intellij idea中打開;運行com.tagtraum.perf.gcviewer.GCViewer類型的main函數;

            3. 點擊左上角打開GC日誌文件gc.txt;(View菜單可調整折線圖及圖例,圖表分辨率可調整,如下👇圖)

View菜單
View菜單調整折線圖圖例
分辨率
分辨率調整

 

二、JVM狀態可視化(JVisualVM)

    1. 概述

            建議與被監控程序運行在不同機器上(遠程監控)。

            安裝插件讓JVisualVM完整。(常用:Virsul GC、MBeans)

    2. 運行

            在$JAVA_HOME/bin目錄下,運行jvisualvm命令

            啓動時多等一會,將會在左側菜單欄看見本地Java應用

    3. 安裝插件

            JVisualVM插件說明 https://visualvm.github.io/plugins.html           

            菜單欄 --> 工具(T) --> 插件(P) --> 可用插件 --> 全選,安裝

            配置JConsole Plugins

            1. 下載https://github.com/TheLQ/GamersClub/tree/master/build/bcf736a518834fe7aa689d74d5ca1b/demo/management/JTop JTop.jar;

            2. 左側菜單欄,本地 --> 雙擊VisualVM,進入VisualVM監控頁--> 在右側監控頁,選擇"JConsole Plugins" tab頁,看見no jconsole plugin installed提示,點擊configure plugins按鈕,將JTop.jar添加進來,應用並重啓JVisualVM;

    4. 遠程監控

            遠程機器操作系統:Linux

        4.1 jstatd連接 

            1. 在/etc/hosts文件末尾增加一行:

該機器ip(可通過ifconfig命令獲得)  hostname(可通過hostname命令獲得)

 

           2. 在遠程機器$JAVA_HOME/bin目錄下,新建jstatd.all.policy文件,內容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {

 permission java.security.AllPermission;

};

            3. 在遠程機器$JAVA_HOME/bin目錄下,執行命令:jstatd -J-Djava.security.policy=jstatd.all.policy &,將後臺運行,執行成功情況下不輸出任何信息;

            4. 測試是否能遠程監控Java程序,在本機執行命令:jps 遠程機器ip,將輸出遠程機器上的Java進程

            5. JVisualVM左側菜單欄,遠程,右鍵 --> 添加遠程主機 --> 輸入遠程主機IP --> 左側菜單欄,遠程主機IP上右鍵 --> 添加jstatd連接,默認端口1099;若成功,左側菜單欄遠程主機IP下,將看到jstatd進程及其它運行在遠程主機上的Java進程,以及它們的pid;

        4.2 JMX連接(以Tomcat爲例)

            1.  編輯Tomcat的bin目錄下的catalina.sh,在首部註釋塊之後添加:(jmxremote.port端口號可修改爲任一未被佔用的端口號)

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

             2. 重啓Tomcat;(配置了JMX連接的Tomcat,shutdown關閉時會報錯誤,無法關閉,Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 9999;  此時kill -9 殺死佔用9999端口的進程即可,即關閉Tomcat進程;)

            3. JVisualVM左側菜單欄 --> 遠程主機IP上右鍵 --> 添加JMX連接 --> IP後添加jmxremote.port指定的端口號,勾選不要求SSL連接;若成功,左側菜單欄遠程主機IP下,將看到帶JMX logo的進程;

            使用安全憑證,可參考:https://www.cnblogs.com/sunshine-2015/p/5547128.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章