Loading...
 
Print

IBM HeapAnalyzer? 를 이용한 heap dump 분석방법


1. 프로그램 실행 후 dump 파일 불러오기

Image

2. Leak Suspect(s) 를 클릭하여 Memory Leak 으로 의심되는 object 확인

Image

3. 여기서는 java/util/HashMap 이 leak object의 대부분을 차지하고 있었으며, 가장 상위 java/util/HashMap$Entry 를 클릭

Image


위 화면에선 8개의 instances가 의심된다고 보고있음
- array of java/util/HashMap$Entry holding 34,327,032 bytes at 0x9fffffff990851e0
- array of java/util/HashMap$Entry holding 56,275,336 bytes at 0x9fffffff99c6af80
- array of java/util/HashMap$Entry holding 27,447,520 bytes at 0x9fffffff99917b18
- array of java/util/HashMap$Entry holding 62,072,808 bytes at 0x9fffffff9606b820
- array of java/util/HashMap$Entry holding 55,861,176 bytes at 0x9fffffff98eb0760
- array of java/util/HashMap$Entry holding 27,383,832 bytes at 0x9fffffff998c6230
- array of java/util/HashMap$Entry holding 62,445,104 bytes at 0x9fffffff995c6048
- array of java/util/HashMap$Entry holding 33,710,632 bytes at 0x9fffffff98edec88

8개의 업무로직을 살펴봐야 하며, 이들로 인하여 FullGC가 지속적으로 발생한다고 볼 수 있다.

4. Address 로 search 하면 해당 업무로직을 찾을 수 있음.

Image

Image

Image

마우스 우측키 누른 후 Find object in a tree view 란 메뉴 클릭

Image

해당 업무 로직은
Name cauhis/aff/ad/dao/ADStatisticsAdDAOImpl
Owner object cauhis/aff/ad/service/ADStatisticsAdSrvImpl

이러한 방법으로 나머지 7개의 업무로직도 찾을 수 있다.

Note) 이들이 반드시 Memory leak 이라는 것은 아님.
Memory Leak을 의심해봐야 하기에 로직에 대한 검증이 필요함.


Created by meng. Last Modification: Saturday 15 of March, 2014 22:51:24 KST by meng. (Version 14)
[ Execution time: 0.14 secs ]   [ Memory usage: 23.44MB ]   [ Queries: 66 in 0.00 secs ]   [ Server load: 0.03 ]

Shout anything, anybody...

jhpark: 감기가 장난이 아니내요. 모두들 감기 조심하세요...~
jhpark: 세렌즈 홈페이지의 Tiki에 대한 Patch가 이루어졌습니다. 새로운 버전은 Tiki 12.3
jhpark: 말그대로 키오스크이지요. 뭔가 샤우팅하고 싶은 것이 있다면 그것이 무엇이든 샤우티잉...
meng: 이건 뭐지요 ㅋㅋ
jhpark: 이곳 정자동엔 함박눈... 오늘 어케 퇴근하나.
Ji-Su Hong: 출첵? ㅎ~
jhpark: sql_mode=""의 위력은 대단하다. 특히 End User의 입장에서는...
박영훈: testtest
jhpark: 명규야 잘자라, 내일을 위해서... ㅋㅋ
Admin: 아우, 홈페이지 결국은 오픈했당. 어지러워라...