Java Thread Dump 생성 방법
Java thread dump는 Java Virtual Machine (JVM)에서 실행 중인 모든 스레드의 상태를 출력한 것입니다. 다음과 같은 방법으로 생성할 수 있습니다.
- JVM Signal (Kill Command) 사용:
- Unix/Linux 시스템에서 kill -3 [PID] 명령을 사용하면, JVM은 thread dump를 생성하여 표준 출력(stdout)에 출력합니다.
kill -3 [PID]
- Windows에서는 CTRL + BREAK 키를 사용하면 됩니다.
- Unix/Linux 시스템에서 kill -3 [PID] 명령을 사용하면, JVM은 thread dump를 생성하여 표준 출력(stdout)에 출력합니다.
- jstack 유틸리티 사용:
- jstack은 Java Development Kit (JDK)에 포함된 도구로, 실행 중인 JVM의 thread dump를 생성할 수 있습니다.
jstack [PID] > thread_dump.txt
- 이 명령은 지정된 프로세스 ID([PID])의 JVM에서 thread dump를 생성하여 thread_dump.txt 파일에 저장합니다.
- jstack은 Java Development Kit (JDK)에 포함된 도구로, 실행 중인 JVM의 thread dump를 생성할 수 있습니다.
2번 방법은 CPU를 많이 사용하기 때문에 되도록이면 1번 사용
Core Dump 생성 방법
Core dump는 JVM 프로세스의 메모리 상태를 저장한 파일로, 심각한 오류 발생 시의 디버깅에 사용됩니다. 다음과 같은 방법으로 생성할 수 있습니다.
- Unix/Linux 시스템에서 ulimit 설정:
- Core dump를 생성하려면 먼저 core dump 크기를 설정해야 합니다.
ulimit -c unlimited
- 그런 다음 JVM을 시작하면, JVM이 크래시할 때 core dump 파일이 생성됩니다.
- Core dump를 생성하려면 먼저 core dump 크기를 설정해야 합니다.
- JVM 옵션 사용:
- JVM 시작 시 -XX:+HeapDumpOnOutOfMemoryError 옵션을 추가하면, OutOfMemoryError가 발생할 때 heap dump가 생성됩니다.
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump -jar your_application.jar
- -XX:HeapDumpPath 옵션을 사용하여 heap dump 파일이 저장될 경로를 지정할 수 있습니다.
- JVM 시작 시 -XX:+HeapDumpOnOutOfMemoryError 옵션을 추가하면, OutOfMemoryError가 발생할 때 heap dump가 생성됩니다.
- gcore 유틸리티 사용 (Linux):
- gcore를 사용하여 실행 중인 프로세스의 core dump를 생성할 수 있습니다.
gcore -o /path/to/dump [PID]
- 이 명령은 지정된 프로세스 ID([PID])의 core dump를 /path/to/dump 경로에 생성합니다.
- gcore를 사용하여 실행 중인 프로세스의 core dump를 생성할 수 있습니다.
반응형
'Java' 카테고리의 다른 글
ROCKY(CENTOS) openjdk 17 yum 사용 없이 설치 (1) | 2024.11.06 |
---|---|
JVM GC 방식 (0) | 2024.05.27 |