虛擬機器堆轉快照分析工具 jhat

2021-09-01 13:13:21 字數 1025 閱讀 4867

聽完公司《jvm應用除錯相關指令碼》的分享之後,又有同事在郵件裡分享了另外乙個可以生成html的分析工具叫:jhat (虛擬機器堆轉快照分析工具)。純技術的東西,沒有啥保密的,我就直接貼過來了,下面是郵件原文,弄過來比較麻煩,就暫缺吧。

[quote]

sun jdk提供的這個jhat(jvm heap analysis tool)命令需要與jmap搭配使用。先dump出來快照,然後再用jhat來分析。

dump_hai.li.bin是我之前dump出來的乙個快照。(怎麼dump玥老已經講過了,不贅述)執行命令:jhat d:\dump_hai.li.bin

【缺圖】

分析結果:(jhat內部了乙個微型的http/html伺服器,可以將dump檔案分析之後生成html文件,可以在瀏覽器中檢視。。)

【缺圖】

如上圖:分析結果預設是以包為單位進行分組的,分析記憶體洩漏問題主要會用到其中的「heap histogram」與oql(object query language)頁標籤的功能。

前者可以找到記憶體中最大物件,如圖:

【缺圖】

後者是標準的物件查詢語言,類似sql的語法對記憶體中的物件進行查詢統計,如圖:(旁邊的「oql help」可以檢視相應的查詢語法)

【缺圖】

但是:這個也就平時自己玩兒的時候用用,在生產環境就不太靠譜兒(主要原因:1-一般生產環境是不建議在部署了應用的伺服器上分析,就算如玥老說說的先將伺服器摘下來,也不推薦,畢竟是生產使用的環境,而且線上dump的檔案通常很大,jhat分析起來效率並不怎麼好,而且還很消耗資源;2-另外就是jhat的分析功能相對簡陋,做一些基本的分析或者自己學習可以玩玩兒。我想說的是玥老分享的命令列可以更好的按需要定位問題),除非是真的沒有其他別的分析工具了。

好吧,分析工具嘛,除了玥老介紹的命令列、mat1.2.0和jdk自帶工具外,還有些專業的產品,如:eclipse memory analyzer、ibm heapanalyzzer等。有興趣的童鞋可以研究研究,當然了,研究之後就是相互交流分享^^(好的預期是能形成一套屬於qunar的jvm解決方案)

[/quote]

Linux虛擬機器快照

一 虛擬機器快照 在虛擬機器安裝過程中,硬碟檔案.qcow2是最主要的,要是沒了硬碟檔案,虛擬機器就掛了,所以有時候為了保證虛擬機器安裝時不會誤刪,可以進行虛擬機器快照。快照的指令是 qemu img create f qcow2 b test1.qcow2 node1.qcow2 其中test.q...

根據虛擬機器獲取虛擬機器快照引用

在虛擬機器的備份還原中,快照的引用是乙個很重要的引數,獲取獲取虛擬磁碟 虛擬磁碟changeid以及快照資訊都需要用到快照託管物件引用作為引數。下面給出根據虛擬機器獲取快照引用的方法 title getsnapshotreference description 根據虛擬機器獲取快照引用 param ...

Linux之虛擬機器快照

虛擬機器快照 1.用命令生成快照 快照可以reset,占用很小記憶體,不浪費空間,修改快照時母盤不會改變 cd var lib libvirt images 切換到硬碟位置 ls 檢視想要快照的母盤 qemu img create f qcow2 b haha.qcow2 xixi.qcow2 f是...