시스템 관리/인프라구조

[스크랩] javacore / heapdump 분석 발생

99iberty 2014. 11. 24. 14:31

 

 

출처 : javaservice.net

 

제목 : AIX,Windows,Linux 환경에서의 HeapDumpJavacore 발생,분석 방법
글쓴이: 차의중(prof21) 2005/03/07 20:44:41 조회수:972 줄수:36
대체로 WebSphere User들은 다 알고 계시겠지만, 
AIX, Linux, Windows 환경에서 OutOfMemory 발생시, 혹은 memory leak이 의심될 경우, 
다음과 같은 방법을 자주 사용합니다.
일단, 다음 문서를 참조하시어 javacoreheapdump를 떠 보시길 권합니다. 
http://www-1.ibm.com/support/docview.wss?rs=180&context=SSCMPCY&q1=MustGatherDocument&uid=swg21138457&loc=en_US&cs=utf-8&lang=en
위 방식대로 하시면 OutOfMemory 에러가 발생하는 즉시 heapdumpjavacore 파일이 생성됩니다. 
heapdump 파일은 WAS 내 객체 및 메모리의 구조/크기등을 보여줌으로써 Memory leak을 알아내기 쉽게 해 줍니다. 
javacore는 WAS 내 스레드들의 스택을 보여주므로 어떤 메소드들이 수행중이었는지를 보여줍니다. 
OutOfMemoryError가 발생하지 않아도 heapdumpjavacore를 받을 수 있는 방법도 있습니다. 
kill -3 pid 를 실행시키십시요. pid는 dump를 뜨고자 하는 WAS instance의 Process ID를 가리킵니다.  
분석은 다음과 같은 방법을 이용하십시요. 
1. heapdump 분석은 위 문서에서 제시하는 HeapRoots보다 
HeapAnalyzer(http://alphaworks.ibm.com/tech/heapanalyzer)를 추천합니다. 
GUI 방식이라 편리합니다. 이용 방법은 Heap Analyzer를 설치하시면 같이 설치되는 문서에 들어있습니다. 
사실 너무 간단하여 실행만 시키면 그 이후는 문서가 없이도 사용하실 수 있을 것입니다. 
2. javacore 분석은 Thread Analyzer를 추천합니다.  
이는 WAS에 포함된 툴이지만, GUI 툴이기 때문에 만일 X-windows를 사용할 수 없는 환경이거나, 
Windows에 설치된 WAS가 없다면, 다음 사이트에서 다운로드받아 사용할 수 있습니다. 
http://www14.software.ibm.com/webapp/download/preconfig.jsp?id=2003-02-06+11%3A06%3A52.953473R&S_TACT=104CBW71&S_CMP=&s=
만일, Windows환경에 WAS5 가 설치되어 있거나, X-Windows가 구동중이라면 다음과 같은 명령으로 Thread Analyzer를 구동시킬 수 있습니다. 
%> cd $WAS_HOME/bin
%> tagui.sh
Windows 환경에서는 %WAS_HOME%\bin 에서 tagui.cmd 를 실행시키면 됩니다. 
이 또한 매우 간단하고 직관적인 툴이랍니다. 

 

 

'시스템 관리 > 인프라구조' 카테고리의 다른 글

[스크랩] 실전 DW 설계 - CDC vs ETL 차이  (0) 2015.11.20
[스크랩] WEB서버와 WAS  (0) 2014.06.12