3.2. Java 힙 덤프
Java 힙 덤프는 특정 시점에서 생성된 JVM 힙의 스냅샷입니다. 힙 덤프를 만들고 분석하면 Java 애플리케이션의 문제를 진단하고 해결하는 데 유용할 수 있습니다.
사용 중인 JDK에 따라 JBoss EAP 프로세스의 Java 힙 덤프를 생성 및 분석하는 다양한 방법이 있습니다. 이 섹션에서는 Oracle JDK, OpenJDK 및 IBM JDK의 일반적인 방법에 대해 설명합니다.
3.2.1. 힙 덤프 생성
3.2.1.1. OpenJDK 및 Oracle JDK
온 디맨드 힙 덤프 만들기
jcmd 명령을 사용하여 OpenJDK 또는 Oracle JDK에서 실행되는 JBoss EAP의 온디맨드 힙 덤프를 생성할 수 있습니다.
- 힙 덤프를 생성하려는 JVM의 프로세스 ID를 확인합니다.
다음 명령을 사용하여 힙 덤프를 생성합니다.
$ jcmd JAVA_PID GC.heap_dump -all=true FILENAME.hprof
이렇게 하면 일반적으로
EAP_HOME 또는에 있는 HPROF 형식으로 힙 덤프 파일이 생성됩니다. 또는 다른 디렉터리의 파일 경로를 지정할 수도 있습니다.EAP_HOME/bin
OutOfMemoryError에서 자동으로 힙 덤프 생성
Out JVM 옵션을 사용하여 힙 덤프를 자동으로 생성할 수 있습니다.
OfMemoryError 예외가 발생하면 -XX:+HeapDumpOnOutOfMeforyError
이렇게 하면 일반적으로 EAP_HOME 또는 에 있는 HPROF 형식으로 힙 덤프 파일이 생성됩니다. 또는 EAP_HOME /bin-XX:HeapDumpPath=/path/ 를 사용하여 힙 덤프에 대한 사용자 지정 경로를 설정할 수 있습니다. -XX:HeapDumpPath 를 사용하여 파일 이름을 지정하면 -XX:HeapDumpPath=/path/filename.hprof 와 같이 힙 덤프가 서로 덮어씁니다.
관리형 도메인의 독립 실행형 서버 또는 서버에 JVM 옵션을 적용하는 방법에 대한 지침은 JBoss EAP 구성 가이드를 참조하십시오.
3.2.1.2. IBM JDK
IBM JDK를 사용하면 OutOfMemoryError 가 throw될 때 힙 덤프가 자동으로 생성됩니다.
IBM JDK의 힙 덤프는 이식 가능한 힙 덤프(PHD) 포맷 파일로 /tmp/ 디렉터리에 저장됩니다.