-
weblogic 힙덤프 경로 설정# WAS | WebLogic 2023. 8. 9. 16:56
*Window
set USER_MEM_ARGS=%USER_MEM_ARGS% -Xms128m -Xmx128m -XX:MaxPermSize=128m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\test
*Linux
USER_MEM_ARGS="-D${SERVER_NAME} -D${SERVER_PORT} -Xms512m -Xmx512m"
USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\test"
export USER_MEM_ARGS1. 힙 덤프(Heap Dump) 란?
클래스의 인스턴스를 생성하여 Java 객체를 생성할 때마다 항상 힙이라는 영역에 배치됩니다. Java 런타임의 클래스도 이 힙에서 생성됩니다. JVM이 시작될 때 힙이 생성됩니다. 애플리케이션에서 생성되거나 소멸된 개체를 수용하기 위해 런타임 동안 확장되거나 축소됩니다.
힙이 가득 차면 더 이상 참조되지 않는(즉, 더 이상 사용되지 않는) 개체를 수집하기 위해 가비지 수집 프로세스(Garbage Collector Process)가 실행됩니다.
힙 덤프에는 Java 힙에서 실행 중인 Java 애플리케이션이 사용 중인 모든 활성 객체(Objects)의 스냅샷이 포함됩니다. 주소, 유형, 클래스 이름 또는 크기와 같은 각 개체 인스턴스에 대한 자세한 정보와 인스턴스에 다른 개체에 대한 참조가 있는지 여부를 얻을 수 있습니다.
자바 Heap 메모리 구조는 JVM 마다 다를 수 있습니다. 예를 들어 Oracle HotSpot과 IBM JVM의 힙 구조는 다릅니다.
2. 힙덤프 생성 방법
1) kill -3 [JVM PID]
(IBM) $ export IBM_HEAPDUMP=true 또는 export IBM_HEAP_DUMP=true 옵션 설정 필요
2) OutOfMemory 발생 시에 자동 생성
(Oracle) $ java -XX:+HeapDumpOnOutOfMemoryError 별도 옵션 설정 필요
(IBM) $ export IBM_JAVADUMP_OUTOFMEMORY=true 설정 필요
3) jmap 명령어
$ jmap -dump:live,format=b,file=/tmp/dump.hprof [JVM PID]
3. 힙덤프 파일 위치 및 확장자
1) 힙덤프 파일 생성 위치
(Oracle) $ java -XX:+HeapDumpPath=[디렉터리] 위치에 생성됨
(IBM) $ export IBM_HEAPDUMPDIR=[디렉터리] 위치에 생성됨
2) 힙덤프 파일 확장자
Oracle HotSpot은 확장자 .HPROF로 생성되고, IBM JVM의 Heap Dump는 .PHD로 생성됩니다.
4. 힙덤프 분석 방법
1) Eclipse MAT
(매뉴얼) https://www.eclipse.org/mat/documentation/
2) IBM Heap Analyzer
: 주로 IBM JVM 힙덤프 분석 시에 사용
'# WAS | WebLogic' 카테고리의 다른 글
Error)ResourceManagement" is not enabled in this JVM (0) 2023.10.05 nohup/Log에 대해 (0) 2023.08.10 Weblogic 11g patch 가이드 (0) 2023.04.19 Weblogic 서버 이전 시 IP 치환 (0) 2023.04.19 Weblogic AdminServer Name 변경 (0) 2023.02.16