1. 미들웨어이야기/01. JVM

Thread dump(Javacore) 분석

OSSW(Open Source System SoftWare 2009. 6. 8. 15:09

Thread dump 어떻게 분석을 하고, System Bottle neck 찾아내는데 이용할지를 설명 하겠습니다..

System Hangup이나 slowdown 걸렸을 , 먼저 Thread dump 추출해야 합니다. 이때 개가 아니라 3~5 간격으로 5 정도의 dump 추출해야 합니다.. 추출한 여러 개의 dump 연결하면 Thread 시간 별로 어떻게 변하고 있는 지를 판별할 있습니다.

먼저 각각의 Thread 덤프를 비교해서 보면, 각각의 Thread 적어도 1~2개의 덤프 내에서 연속된 모습을 보여서는 되는 것이 정상입니다. 일반적으로Application 내부적으로 매우 고속으로 처리되기 때문에, 하나의 Method 1 이상 머물러 있는다는 것은 거의 있을 없는 일입니다. Thread Dump 분석은 각각의Thread 시간이 지남에 따라서 진행되지 않고 멈춰 있는 Thread 찾는 데서부터 시작 됩니다.

예를 들어서 설명해 보자. 아래의 프로그램을 보면 MY_THREAD_RUN()이라는 메소드에서부터 MethodA( )