본 문서는 간단하게 DB에 update lock이 걸렸을 때 어떻게 모니터링 되는지를 시뮬레이션한다. 기본적인 환경구성은 Getting Start Profile SQL을 참조한다.
-
JDK7설치 ( Getting Started 참고 )
-
HSQLDB설치 ( Getting Start Profile SQL 참고 )
-
Tomcat설치 ( Getting Started 참고 )
-
JMeter설치 ( Getting Start Profile SQL 참고 )
-
Scouter설치 ( Getting Started 참고 )
-
Tomcat환경구성
-
DataSource설정 (Getting Start Profile SQL 참고)
-
Sample jsp설치 create.jsp, sql.jsp, lock.jsp 3개의 파일을 ${TOMCAT_HOME}/webapps/ROOT/.로 복사한다.
-
Scouter Agent설정 ( Getting Started 참고 )
-
-
모두 기동
- HSQLDB
runServer.bat --database.0 file:mydb --dbname.0 xdb
- Tomcat
set JAVA_HOME=c:\java7
set JAVA_OPTS=-javaagent:c:\scouter\agent\scouter.agent.jar
startup.bat
- Scouter Server
- Scouter Client
- Scouter Client 모니터링
JMeter를 실행하고 앞에서 설치했던 sql.jsp롤 호출하여 부하를 발생하는 테스트를 수행한다.
죄측윈도우 >> Test Plan(우측마우스) >> Add >> Threads(Users) >> setUp Thread group
setUp Thread group(우측마우스) >> Add >> Sampler >> HTTP Request
화면에서 다음값을 입력한다.
- server ip : 127.0.0.1
- port : 8080
- Path : /sql.jsp
실행버튼을 눌러 실행하면 다음과 같은 내용을 Scotuer클라이언트에서 볼 수 있다.
추가플러그인 설치 : http://jmeter-plugins.org
lock.jsp를 호출하여 락을 유발시킬수 있다. 파라미터 "t"값을 통해 락 시간을 조절할 수 있다.
그러면 Scouter화면에서 XLog와 다른 차트를 통해 락이 발생하는 것을 볼 수 있다.
위 화면에서 어느 구간에서 지연이 발생하고 있는지 분석하기 위해서는 두 가지 방법을 활용한다. 왼쪽 하단의 액티브서비스 리스트를 더블클릭해서 조회하면 진행중인 서비스 리스트를 볼 수 있고 상세 정보를 조회할수 있다. 아래 화면에서 두데이터 모두 많은 서비스들이 update SQL을 수행하고 있음을 알 수 있다.