Contents

使用 AIX ibm-heapanalyzer 查詢 Java OOM 問題

Contents

最近接的案子城市遇到OOM,但有時候要判斷程式是哪邊造成的,需要一些工具。但詳細還是要看log,說不定發生大量查詢資料地方。

java.lang.OutOfMemoryError Java heap space? 怎麼解? - 技術雜記 Technology Notes - Jack Yu | 傑克備份圖

AIX 不會產生 phrof 工具,產生 phd 檔案。跑在分析工具不能跑。最後找了很久發現要用 IBM HeapAnalyzer。

Java 執行緒究竟佔用多少記憶體_ImportNew - 微文庫

Capturing a Java Thread Dump | Baeldung

保姆級教學,22張圖揭開ThreadLocal_程式猿阿星 - MdEditor

.phd 檔案

IBM HeapAnalyzer

IBM HeapAnalyzer

https://i.imgur.com/PVd7rhB.png

https://i.imgur.com/v0czPEq.png

https://i.imgur.com/FtJwJSZ.png

https://i.imgur.com/11AOiZP.png

可惜不知道哪個 Class發生錯誤,但可以找對應資料和log錯誤地方找是哪邊出問題。原本這支程式MQ進來會開對應Class執行緒去執行,因為同時間跑的程式有兩隻,最後有一隻會撈大量資料,導致JVM RAM 暴掉。最後把這個排程先移出去。