JVM-12虚拟机性能监控与故障处理工具之【JDK的可视化工具-VisualVM】
文章目錄
- 思維導(dǎo)圖
- 概述
- 生成、瀏覽堆轉(zhuǎn)儲快照
- 分析程序性能
- BTrace
思維導(dǎo)圖
概述
Visual VM (All-in-One Java Troubleshooting Tool)是目前為止隨JDK發(fā)布的功能最強大的運行監(jiān)視和故障處理程序。 Visual VM除了提供運行監(jiān)視、故障處理外,還提供了比如性能分析(Profiling),對應(yīng)用程序的實際性能影響很小,使得它可以直接應(yīng)用在生產(chǎn)環(huán)境,這個優(yōu)點是JProfiler、YourKit等第三方的性能分析工具無法比擬的.
VisualVM可以做到
- 顯示虛擬機進程以及進程的配置、環(huán)境信息(jps 、jinfo)
- 監(jiān)視應(yīng)用程序的CPU、GC、堆、方法區(qū)以及線程的信息(jstat、jstack)
- dump以及分析堆轉(zhuǎn)儲快照(jmap、jhat)
- 方法級的程序運行性能分析,找出被調(diào)用最多、運行時間最長的而方法
- 離線程序快照:收集程序的運行配置、線程dump、內(nèi)存dump等信息建立一個快照,方便分析
- 基于NetBeans平臺開發(fā),可安裝各種各樣的插件,功能強大,精華所在。
#插件安裝
打開 VisualVM圖形化界面工具, 工具 --插件
安裝完插件后,選擇一個需要監(jiān)視的程序就進入程序的主頁面了
生成、瀏覽堆轉(zhuǎn)儲快照
兩種方式生成dump
- 在“應(yīng)用程序”窗口中右鍵單擊應(yīng)用程序節(jié)點,然后選擇“堆Dump”
- 在“應(yīng)用程序”窗口中雙機應(yīng)用程序節(jié)點以打開應(yīng)用程序內(nèi)標簽,然后在“監(jiān)視”標簽中單擊“堆Dump”
生成dump文件之后,應(yīng)用程序頁簽將在該堆的應(yīng)用程序下增加一個以【heapdump】開頭的子節(jié)點,并且在主頁簽中打開了該轉(zhuǎn)儲快照。
-
從堆頁簽中的“摘要”面案可以看到應(yīng)用程序dump時運行的參數(shù)、System.getProperties()的內(nèi)容、線程堆棧等信息。
-
“類”:類面板是以類為統(tǒng)計口徑統(tǒng)計類的實例數(shù)量、容量信息等
-
“實例”:實例面板不能直接使用,因為不能確定用戶想查哪個類的實例,需要通過類面板進入,在類中選擇一個關(guān)心的類后雙擊,即可在實例中看到此類中500個實例的具體屬性信息
-
“OQL控制臺”:運行OQL查詢語句的
如果想保存該dump, 右鍵另存為即可。 要打開一個已經(jīng)存在的dump“文件–裝入”即可
分析程序性能
在Profiler頁簽中,VisaualVM提供了程序運行期間方法級的CPU執(zhí)行時間分析以及內(nèi)存分析。 做Profiling分析肯定會對程序性能有比較大的影響,一般不再生產(chǎn)環(huán)境使用。
CPU分析會統(tǒng)計每個方法的執(zhí)行次數(shù)、執(zhí)行耗時
內(nèi)存分析會統(tǒng)計每個方法關(guān)聯(lián)的對象數(shù)以及這些對象占用的空間。
BTrace
BTrace是sun公司推出的一款Java 動態(tài)、安全追蹤(監(jiān)控)工具,可以在不用重啟的情況下監(jiān)控系統(tǒng)運行情況,方便的獲取程序運行時的數(shù)據(jù)信息,如方法參數(shù)、返回值、全局變量和堆棧信息等,并且做到最少的侵入,占用最少的系統(tǒng)資源。
這項功能對實際生產(chǎn)中的程序很有意義,比如程序出現(xiàn)問題,但排查錯誤的一些必要信息,比如方法參數(shù)、返回值等,但是開發(fā)的時候沒有輸出到日志中,以至于不能不加上日志后重新啟動服務(wù)。 這時候BTrace插件就很方便了。
限制比較多,并且一定要確保腳本的正確性。
在Visual VM“應(yīng)用程序”中選擇對應(yīng)的進程,右鍵會看到“Trace Application”
先了解下,后續(xù)再補充。
總結(jié)
以上是生活随笔為你收集整理的JVM-12虚拟机性能监控与故障处理工具之【JDK的可视化工具-VisualVM】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM-11虚拟机性能监控与故障处理工具
- 下一篇: 实战SSM_O2O商铺_42【前端展示】