티스토리 뷰
JVM hang 걸렸을 때 thread dump 남기는 법
행복한아빠 2009.11.26 21:50Thread dump가 무한루프나 코드블럭을 빠져나오지 못하는 곳을 바로 표시하거나 하는건 아니고 thread dump 남길 당시의 각 쓰레드의 stack trace를 보여주어 그 당시 수행하고 있는 java 메소드를 볼 수 있습니다. 문제를 풀 수 있는 좋은 출발점이 될 수 있습니다.
한 시점의 JVM 쓰레드의 각 stack 상태를 보는 것이기 때문에 문제가 발생한 시점에 약간의 간격을 두어 몇 번 남기고 비교하는게 좋은 방법입니다.
Thread dump 를 남기자
■ Windows
Windows에서 thread dump를 남기려면 command console 에서 java 애플리케이션을 실행해야 합니다. 쓰레드 덤프를 남기려는 시점에 Ctrl-Break 를 console에서 입력합니다.
■ Unix/Linux
간단히 thread dump를 남기고 싶은 JVM process에 SIGQUIT 시그널을 보냅니다.
prompt> kill -SIGQUIT process_id또는prompt> kill -3 process_id
* java 프로세스 아이디를 찾으려면 ps axf | grep java 하면 되겠습니다.
Thread dump를 보자
Thread dump는 그냥 text 형태의 매우 긴 로그입니다. 따라서 여러개의 thread dump를 그냥 날로 보려면 좀 피곤합니다. thread dump를 쉽게 분석할 수 있는 몇 가지 도구가 있겠지만 그 중 Samurai 이용해 보면 좋습니다. (다른 건 써 본적이 없어서...)
다음 URL을 참조하세요.
'6. 리눅스' 카테고리의 다른 글
VirtualBox 리눅스 서버 SSH로 연결하기 (0) | 2020.08.02 |
---|---|
jstack 그리고 jconsole - JVM Stack Trace 얻기 (0) | 2019.01.04 |
Thread Dump, Heap Dump 생성 및 분석 방법 (0) | 2019.01.04 |
리눅스 서버 60초안에 상황파악하기 (0) | 2019.01.03 |
쓰레드 덤프 뜨기 (0) | 2019.01.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- MSA
- 커널
- 키알리
- ORACLE 트러블 슈팅(성능 고도화 원리와 해법!)
- 코로나19
- 스토리지 클레스
- 5.4.0.1072
- 쿠버네티스
- 튜닝
- 오라클 홈디렉토리 copy 후 startup 에러
- 설치하기(HP-UX)
- 테라폼
- 앤시블
- pod 상태
- [오라클 튜닝] sql 튜닝
- 오라클 트러블 슈팅(성능 고도화 원리와 해법!)
- startup 에러
- K8s
- 오라클 인스턴트클라이언트(InstantClient) 설치하기(HP-UX)
- 트리이스
- CVE 취약점 점검
- 우분투
- directory copy 후 startup 에러
- 버쳐박스
- 오라클
- (InstantClient) 설치하기(HP-UX)
- Oracle
- [오라클 튜닝] instance 튜닝2
- 여러서버 컨트롤
- ubuntu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함