MAT確認導致OOM的具體功能表單的過程

MAT發現導致OOM的具體功能表單的過程


背景

愚人節這一天公司項目出現了 大量FullGC的情況.
羣裏發出來之後這邊進行了一些簡單的問題查找.

堆區設置的事 30G 然後 dump文件是 35G左右.
下載和解壓縮耗時 15min
使用40G堆區 全閃的Window虛擬機進行解析
耗時 30分鐘.

最近自己眼神不是特別好使, 找東西總是很費勁
所以想總結一下, 方便後續進行類似的工作. 

文件情況說明

堆區設置的事30G大小

dump文件爲 33.8G
mat解析後所有文件大小爲 79GB

說明 堆外內存大約有4GB以上. 
mat解析會昌盛大量的 index文件. 是堆區大小的1.5 倍. 

image


mat解析的整體情況

堆區設置是 30G 內存佔用是 26.5G左右. 
一般情況下抓取dump會進行一次fullGC. 
至少有一部分 FROM TO區域是空的
並且部分年輕代 也會倍清理, 所以一般不會到達 30G的巔峯數值.

image


點擊齒輪查看線程信息

與一般的tracelog不同 mat分析會對每一個進程的 關聯內存進行對應

所以這個使用內存排序很快就可以知道是哪個線程的問題了. 

image

image

左擊最大內存區域 list outgoing object

注意在overview區域是需要 左鍵單擊的
建議選擇 outgoing的 對象
這是就可以展示對象全貌了. 

需要注意, 不要無限制的去點擊最大的內存, 一般只需要在當前層次查看就可以了
無限制的下一級是沒有意義的. 

image

注意事項

String 對象可能是比較核心的部分, 如果是 % 分割 
可以放到chrome 裏面會幫忙轉換成中文. 

如果是 0x開頭的 可以 複製爲 value 
也會轉換爲中文. 

Oracle相關的會將 連接串給出來. 

還有就是 業務代碼相關的可以評判是哪個關鍵應用的功能異常.

image


查找表單ID

根據這邊 丁楊老師的講解.  可以通過查找 coyote 郊狼組件查看到具體的 url

需要說明:
apache tomcat 是應用服務器 coyote 郊狼是一個http 的工具鏈
裏面會有具體的url 可以找到對應的表單
所以在list outgoing object 裏面根據object name進行排序
查找 <org.apache.coyote.Request>  類似的對象
可以在 <header> 對象進行 查找. 

一般會有多個對象 可以根據序號進行查找, 會在7-12個序號之間 找到對應的url

注意選擇的 VALUEB的對象進行

image

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