순서
-
쓰레드 덤프를 5~7초 간격으로 3~5회 정도 추출한다.
jstack 또는 kill -3 명령을 이용 -
TDA(ThreadDump analyzer)를 실행한다.
-
파일 – 열기 선택 후 스레드 덤프 파일을 선택한다.
-
분석 시작
주의사항
쓰레드 덤프를 간격을 두고 여러번 추출하는 이유는 여러번 추출하는 동안 같은 부분에 BLOCK이 되어 있다면 로직 처리 시간이 15초가 넘어가는 경우기 때문에 병목 현상을 예상할 수 있습니다.
위의 이미지를 보면 덤프가 출력된 시간을 볼 수 있습니다. 약 7초간격으로 반복적으로 쓰레드 덤프를 출력 했습니다.
위의 상황을 Oracle JDBC에서 대기 상태로 남는 문제가 발생되는 것을 확인할 수 있습니다. 링크된 부분을 클릭하면 LOCK 된 객체때문에 대기중인 스레드 정보도 확인할 수 있습니다.