리눅스/Dump

jattach로 쉽게 자바 프로세스 쓰레드 덤프(thread) 수집하기

G. Hong 2021. 3. 27. 09:21
728x90
반응형

 

예전 글에서 자바 쓰레드 덤프를 수집하는 방법에 대해서 설명을 하였는데요. (itknowledge.tistory.com/11)

 

이번에는 jattach라는 툴을 통해서 쉽게 스레드 덤프를 수집하는 방법을 소개하려고 합니다.

jattach는 jmap, jstack, jcmd, jinfo 툴들의 기능을 모두 가지고 있고, JVM의 각종 덤프 들을 수집할 수 있는 툴입니다.

 

아래 github에 상세한 설명도 있고, 다운로드도 가능합니다.

github.com/apangin/jattach

 

jattach 파일 다운로드:

jattach
0.02MB

사용법(thread dump 수집)

1. 아래와 같이 systemctl 로 pid를 확인 합니다.

# /bin/systemctl status 서비스이름 | grep "Main PID"

 

2. jattch를 복사한 디렉토리에서 아래의 커맨드로 쓰레드덤프를 수집합니다.<pid>에는 위에서 확인한 pid를 입력합니다. 예시와 같이 하게 되면 /tmp/ 경로에 threaddump.log.1~threaddumplog.3 3개의 덤프가 생성되게 됩니다. 1개만 생성하였을 때에는 확인 하려는 정보가 부족할 수 도 있으니, 시간 간격을 두고 3개정도 수집을 합니다.

# ./jattach <pid> threaddump > /tmp/threaddump.log.1 

# ./jattach <pid> threaddump > /tmp/threaddump.log.2

# ./jattach <pid> threaddump > /tmp/threaddump.log.3

 

 

쓰레드 덤프수집에 관해서 아래 글도 참고 하세요.

 

리눅스(솔라리스)에서 자바 쓰레드 덤프(Thread dump) 수집 방법

리눅스나 솔라리스에서 자바 쓰레드 덤프를 수집하기 위해서는 QUIT시그널을 보내야 합니다. kill -QUIT 또는 kill -3 커맨드를 사용하면 쓰레드덤프를 수집 할 수 있습니다. # kill -3 -Xrs JVM옵션이 사

itknowledge.tistory.com

728x90
반응형