차근차근/이것저것

스레드 덤프 만들기

예쁜꽃이피었으면 2015. 7. 22. 10:27


현재 운영하고 있는 서버가 아무 이유 없이 죽을 때가 있다.

자세히 말하자면 톰캣을 살아있는데 홈페이지 화면이 보이지 않는다.


로그를 봐도 에러는 있지만 그것이 원인이라고 판단되지는 않는다.


http://yckwon2nd.blogspot.kr/2014/04/common-dbcp-thread-lock.html

common DBCP 사용시 Thread lock 문제가 있다고 한다.

소스코드를 보니 메이븐 설정에서 DBCP에 대한 부분이 있었다.


스레드 덤프를 봐야겠다는 생각이 들었다.

http://helloworld.naver.com/helloworld/textyle/10963




내가 한 방법.

windows서버에서 pid확인하기

1. cmd창을 연다

2. cd /

3. netstat -ao

하면 뭔가가 주르륵 나오는데 그곳에서 보기에 톰캣의 pid는4836같았다.

사실 4836이라고 생각한데에.기준이 없다. 그냥.. 저 숫자 같았다..ㅡㅜ


근데 pid를 확인하는 방법이

http://egloos.zum.com/kwon37xi/v/2871508 이곳에 보면

1. C:\Java\jdk1.6.0\bin>jps --help

2. C:\Java\jdk1.6.0\bin>jps -v

3. C:\Java\jdk1.6.0\bin>jstack [본인의 pid] > st.txt

라고 한다.

근데 난  예제처럼 startup.jar에 대한 pid값이 없다.

(jps값을 계속 변한다. )


어떻게 할까하다가 그냥  C:\Java\jdk1.6.0\bin>jstack 4836 > st.txt

이렇게 함. 

근데 4836: Insufficient memory or insufficient privileges to attach

The -F option can be used when the target process is not responding

라고 나와서

C:\Java\jdk1.6.0\bin>jstack -F 4836 > st.txt 이렇게 함.

st.txt파일은  C:\Java\jdk1.6.0\bin 이 경로에 만들어진다.


잘 실행되고 있는 서버이어서 그런가

파일을 열어보면 No deadlocks found.라고 쓰여있다.


서버가 멈추면 다시 해봐야겠다.


참고사이트

common DBCP 사용시 Thread lock 문제

http://yckwon2nd.blogspot.kr/2014/04/common-dbcp-thread-lock.html

스레드 덤프 분석하기 

http://helloworld.naver.com/helloworld/textyle/10963

[자유] JAVA 폴더 BIN안에 있는 여려 유틸명령어

http://www.androidside.com/plugin/mobile/board.php?bo_table=B10&wr_id=43502

jstack

http://knight76.tistory.com/entry/30043239820

jstack – Java Stacktrace

http://devoff.kr/archives/tag/jstack

[자바 스택정보 보기] jstack을 이용해서 스택정보(쓰레드 덤프, Thread dump) 확인

http://www.tuning-java.com/234

jstack 그리고 jconsole - JVM Stack Trace 얻기

http://egloos.zum.com/kwon37xi/v/2871508


반응형