首先應該明確的是,jmap命令只能為記憶體洩漏提供一些線索和依據,但是不能確切的排查出**中哪一行真正的出現了問題。
舉個例子:乙個池子有1000l的容量,前面的800l紅色的水一直沒有問題,這時向其中倒入了201l藍色的水,池子裡面的水溢位了,我能確切的說是這800l紅色的水的問題導致的嗎?我能確切的說是這201l藍色的水導致的嗎?只能說懷疑是800l的問題然後去看。
通過jmap能夠幫我們排查問題提供一些依據,讓我們對於排查問題更加的有跡可循
下面看下通過簡單的demo尋找問題的例子
通過上圖,我在不同的時刻執行了jmap命令,可以看到instances是一直在不停的上公升的,這樣我們懷疑,會不會是com.nanjing.nanjing28suo這個類建立了過多的例項,而沒有被釋放導致的記憶體溢位呢?這時候就需要到**中尋找,**進行了例項化這個類。
java記憶體溢位分析工具 jmap
cd usr local jdk1.6.0 37 bin jmap histo pid a.log pid tomcat程序id a.log 要生成的檔名 注意 解決系統tomcat老是記憶體撐到頭,然後崩潰的問題時,使用到了jmap 在環境是linux jdk1.5以上,這個工具是自帶的,路徑在j...
jvm記憶體洩露分析方法 jmap
使用監控工具發現記憶體使用不斷增加,則有可能存在記憶體洩露,記憶體洩露可以使用jmap工具進行分析。jmap命令可以獲得執行中的jvm的堆的快照,從而可以離線分析堆,以檢查記憶體洩漏,檢查一些嚴重影響效能的大物件的建立,檢查系統中什麼物件最多,各種物件所佔記憶體的大小等等,可以使用jmap生成hea...
jmap命令問題解決與記憶體洩漏
jmap jmap 命令檢視記憶體中物件的數量,統計記憶體洩漏。命令為 jps jmap histo live 程序號 1.txt 記憶體中物件的數量統計寫入1.txt檔案中 使用jmap histo live pid檢視堆記憶體中的物件數目 大小統計直方圖,如果帶上live則只統計活物件 在泛型的...