Java

JVM Heap Analyzer

griffy 2008. 1. 22. 16:43
JVM Heap Analyzer입니다.
java 프로그램 구동중 OutOfMemoryError가 발생하면
jvm은 자동 셧다운 됩니다.
이때 heapdump를 활용 함으로써 어떤 프로세서에서 얼마만큼의
메모리를 사용하고 있는지를 분석할 수 있습니다.
jvm 1.4.2 update 12 이상에서는 아래 옵션으로 OutOfMemoryError 발생시
자동으로 Heap dump를 뜨게 할수 있습니다.

-XX:+HeapDumpOnOutOfMemoryError

그리고 아래 옵션으로 heapdump 파일의 경로를 설정할 수 있습니다.

-XX:HeapDumpPath=[dump file full path]

생성된 heap dump는 바이너리 파일로 생성되어 일반 에디터로는 분석이 불가능합니다.
jdk6.0 이상에서는 jhat 이나 jmap 등과 같은 유틸이 제공되어 분석이 가능합니다.

그 이하의 버전에서는 hat이나 ha24등과 같은 heap analyzer 툴을 이용해
분석이 가능합니다.
자료는 hat과 ha24로써

1. hat은 http server 방식으로 구동되어 해당 아래와 같이 실행하면

java -Xms256m -Xmx512m -jar hat.jar [heap dump file full path]

http://localhost:7000 으로 접속하여 해당 heap dump 파일의 내용을 분석한 화면을 볼수 있습니다.

2. ha24는 ibm에서 나온 gui analyzer입니다.
실행은 압축을 풀고 ha24.jar가 있는 디렉토리에서 아래와 같이 실행 하면 됩니다.

java -Xms256m -Xmx512m -jar ha24.jar