티스토리 뷰

개발/java

JAVA Thread dump

개발자와코더사이가 PM일까? 2019. 3. 17. 00:00
반응형

요즘에 고객사의 tomcat이 자꾸 죽는데.. 어떻게 해야 할까? 고민중에 우선 java thread dump를 떠보자는 생각을 했습니다.

오류가 발생 할 경우에는 로그나 현 상태를 확인 하는 것 이 가장 중요한 것이라고 생각했습니다.

결론부터 이야기를 하면 thread dump는 만병 통치약이 아닙니다. 특히 평상시에 java나 thread(?)에 대해서 잘 모르거나 해당 솔류션이 thread 명에 대해서 잘 명명이 되지 않았다면 저는 거의 무의미 하다고 생각합니다. 마치 오라클 튜닝하겠다고 실행계획을 떠는데 실행계획에 대해서 잘모르면 무의미 한 것 처럼요. 테스트 삼아서 회사 서버에서 떠보았을때는 도대체 이게 무슨 의미가 있는지 몰라서 결국에는 저는 포기 했습니다. 차라리 해당 회사에 APM이 있기를 바라는 것이 더 좋은 방법 같기도 합니다.

네이버 같은 곳에서 가장 thread dump를 뜨는 법을 설명해주는데요. 평균적으로 5초간격으로 3번정도 떠서 분석 하자고 합니다. 

참고로 저는 tomcat때문에 thard dump를 뜨기 때문에 tomcat 경로에 catalina.out 먼저 실행 시켰습니다. 예를들어서 tail -f catalina.out 처럼요.

그 다음에는 새로운 창을 더 한번 열어서 ps -ed | grep java로 해당 톰캣의 pid를 확인 했습니다. 그 다음에 kill -3 해당 pid를 치게 되면 자동으로 톰캣에 catalina.out에 "스레드 이름" "우선순위" "스레드 ID" "스레드 상태" "스레드 콜스택" thread dump가 떠지는데요. 음...  과연 이것으로 문제되는 부분을 찾을 수가 있을까?라는 생각이 들었습니다. 차라리 해당 tomcat서버의 로그를 보는 것이 더 맞다고 생각하네요. 

한주의 시작을 잘 하셨으면 좋겠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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 29 30
글 보관함