db2_hang_analyze - 가능한 애플리케이션 정지 검색 및 분석 스크립트
db2pd 명령에서 수집된 다양한 메트릭스를 사용하여 Db2® 애플리케이션의 중단 가능성을 감지하고 분석합니다. db2_hang_analyze 스크립트는 Linux® 와 UNIX 운영 체제에서만 사용할 수 있습니다.
db2_hang_analyze 스크립트는 무한 실행되는 Perl 스크립트입니다. 이 스크립트는 각 반복에 대해 애플리케이션에 대한 메트릭을 수집하여 애플리케이션이 특정 시간 간격 동안 활성 상태인지 검사합니다(기본값은 300초). 애플리케이션이 시간 간격 동안 활성 상태가 아닐 경우 정지로 플래그 지정됩니다. 잠재적인 정지가 검색된 경우 애플리케이션 목록이 보고서 파일에 기록됩니다. Ctrl-C 또는 Ctrl-Z를 눌러서 스크립트를 종료할 수 있습니다.
db2_hang_analyze 스크립트는 sqllib/samples/pd/ 디렉토리에 있습니다.
권한 부여
다음 권한 중 하나가 필요합니다.
- SYSADM
- SYSCTRL
- SYSMAINT
- SYSMON
필수 연결
활성 데이터베이스구문
매개변수
- -db 데이터베이스명
- 정지를 검색할 데이터베이스를 지정합니다. 이 매개변수는 필수입니다. 회원 회원 번호
- 스크립트를 실행할 멤버를 지정합니다. 이 옵션을 지정하지 않은 경우 현재 멤버에 대해 스크립트가 실행됩니다. 인스턴스가 일련 모드일 경우 이 매개변수가 무시됩니다. -타이머 제한 초
- 애플리케이션이 정지로 판별되기 전의 유휴(메트릭에 변경사항이 없음) 시간(초)을 지정합니다. 기본값은 300초입니다. -수면 시간 초
- 스크립트가 정지 분석의 다음 반복을 시작하기 전에 대기하는 시간(초)을 지정합니다. 기본값은 60초입니다. -재시도 제한 시도
- 실패 또는 제한시간 초과 후 db2pd 명령이 실행되는 횟수를 지정합니다. 기본값은 3회입니다. -길 디렉토리
- 보고서 파일 및 로그 파일이 저장되는 전체 디렉토리 경로를 지정합니다.
DIAGPATH데이터베이스 관리자 구성 매개변수에서 기본값을 지정합니다. -cpu 임계치 백분율 - 애플리케이션이 사용하는 프로세서 시간 백분율의 변경에 대한 임계값을 지정합니다. 애플리케이션의 사용 변경이 임계값을 초과할 경우 애플리케이션이 활성으로 플래그 지정됩니다. 기본값은 0.1(0.1%)입니다. -집행관 스크립트 경로
- 정지가 검색된 후 실행되는 스크립트의 경로를 지정합니다. 정지 문제점을 해결하기 위해 스크립트가 사용자 정의되어 있습니다. 스크립트의 출력은
DIAGPATH디렉토리에db2_hang_analyze.<timestamp>.exec형식으로 저장됩니다. 기본값은 off이며, 정지가 발견된 후 스크립트가 실행되지 않음을 의미합니다. -log - 가능한 정지 애플리케이션, 경고 및 오류에 대한 알림을 로그 파일에 인쇄하려면 yes를 지정하십시오. 기본값은 아니오입니다. -sql
정지 애플리케이션에서 실행한 최근 SQL문을 인쇄하려면 yes를 지정하십시오(데이터가 있는 경우). 기본값은 아니오입니다.
-list- 시스템에서 실행 중인 다른 db2_hang_analyze 스크립트 목록을 생성합니다. 이 목록에서 종료할 db2_hang_analyze 스크립트를 지정할 수 있습니다. -h
- 도움말 정보를 표시합니다.
예 1
다음 예제에서 스크립트는 SAMPLE 데이터베이스를 모니터링하여 가능한 애플리케이션 정지를 검색합니다. 모든 애플리케이션에서 60초마다 db2pd 명령의 다양한 메트릭이 수집됩니다. 애플리케이션이 정지로 판별된 경우 스크립트가 보고서를 기록하고 종료됩니다.
$HOME/sqllib/samples/pd/db2_hang_analyze -db sample -log
Invoked: /home/hotel32/shenli/sqllib/samples/pd/db2_hang_analyze -db sample -log
APPLICATION HANG DETECTION: Started on Fri Jan 25 14:41:38 EST 2013
Sleeptime : 60 seconds
Timer Limit : 300 seconds
Node Member : default
Retry Limit : 3
Log : yes
SQL : no
Event Metrics Available : yes
Logfile : db2_hang_analyze.20130125.14.41.38.10297.log
Script PID : 10297
CPU Threshold : 0.1%
Post Detection Script : none
Path : /home/hotel32/shenli/sqllib/db2dump
Press CTRL-C or CTRL-Z to terminate script
Pre-loop setup...
Iteration 1: No hang found.
Iteration 2: No hang found.
Iteration 3: No hang found.
Iteration 4: No hang found.
Iteration 5: POSSIBLE HANG DETECTED!
Logfile : /home/hotel32/shenli/sqllib/db2dump/db2_hang_analyze.20130125.14.41.38.10297.log
VIEW REPORT AT : /home/hotel32/shenli/sqllib/db2dump/db2_hang_analyze.20130125.14.41.38.10297.report
APPLICATION HANG DETECTION: Ended on Fri Jan 25 14:46:47 EST 2013단일 정지 또는 다중 정지가 검색된 경우 정지 애플리케이션을 나열하는 보고서 파일이 생성됩니다.
cat /home/hotel32/shenli/sqllib/db2dump/db2_hang_analyze.20130125.14.41.38.10297.report
APPLICATION HANG DETECTION: Started on Fri Jan 25 14:41:38 EST 2013
Sleeptime : 60 seconds
Timer Limit : 300 seconds
Node Member : default
Retry Limit : 3
Log : yes
SQL : no
Event Metrics Available : yes
Logfile : db2_hang_analyze.20130125.14.41.38.10297.log
Script PID : 10297
CPU Threshold : 0.1%
Post Detection Script : none
Path : /home/hotel32/shenli/sqllib/db2dump/
POTENTIAL APPLICATIONS HANGING: 3 application(s).
Apphdl : 7
Status : CommitActive
AgentEDUID : 16
Apphdl : 9
Status : CommitActive
AgentEDUID : 28
Apphdl : 19
Status : CommitActive
AgentEDUID : 37
APPLICATION HANG DETECTION: Ended on Fri Jan 25 14:46:47 EST 2013예 2
옵션 개수를 변경하여 가능한 정지 애플리케이션을 스크립트에서 검색하는 방법을 제어할 수 있습니다.
$HOME/sqllib/samples/pd/db2_hang_analyze -db sample -member 0 -log -timerlimit 30 -sleeptime 15 -sql -path /TMP/
Invoked: /home/hotel32/shenli/sqllib/samples/pd/db2_hang_analyze -db sample -member 0 -log -timerlimit 30 -sleeptime 15 -sql -path /TMP/
APPLICATION HANG DETECTION: Started on Fri Jan 25 15:38:27 EST 2013
Sleeptime : 15 seconds
Timer Limit : 30 seconds
Node Member : 0
Retry Limit : 3
Log : yes
SQL : yes
Event Metrics Available : yes
Logfile : db2_hang_analyze.20130125.15.38.27.10189.log
Script PID : 10189
CPU Threshold : 0.1%
Post Detection Script : none
Path : /TMP
Press CTRL-C or CTRL-Z to terminate script
Pre-loop setup...
Iteration 1: No hang found.
Iteration 2: POSSIBLE HANG DETECTED!
Logfile : /TMP/db2_hang_analyze.20130125.15.38.27.10189.log
VIEW REPORT AT : /TMP/db2_hang_analyze.20130125.15.38.27.10189.report
APPLICATION HANG DETECTION: Ended on Fri Jan 25 15:39:03 EST 2013
이 예에서, 사용자는 멤버 0에서 정지된 애플리케이션이 있는지 여부를 확인하려고 합니다. 다수의 db2pd 명령 메트릭은 기본값인 60초 대신 15초마다 수집됩니다. 기본값 300초 대신 30초 내에 메트릭이 변경되지 않을 경우 애플리케이션이 정지로 식별됩니다. 정지가 발견되면 정지된 애플리케이션과 관련된 최근 SQL문이 보고서 파일에 인쇄됩니다. 보고서 및 로그 파일은 /TMP/ 디렉토리에 기록됩니다.
다음 보고서 파일에서 결과를 표시합니다. 하나의 애플리케이션이 정지된 것 같습니다.
cat /TMP/db2_hang_analyze.20130125.15.38.27.10189.report
APPLICATION HANG DETECTION: Started on Fri Jan 25 15:38:27 EST 2013
Sleeptime : 15 seconds
Timer Limit : 30 seconds
Node Member : 0
Retry Limit : 3
Log : yes
SQL : yes
Event Metrics Available : yes
Logfile : db2_hang_analyze.20130125.15.38.27.10189.log
Script PID : 10189
CPU Threshold : 0.1%
Post Detection Script : none
Path : /TMP
POTENTIAL APPLICATIONS HANGING: 1 application(s).
Apphdl : 51
Status : UOW-Executing
AgentEDUID : 44
Current query : select * from staff
Last query: : none
APPLICATION HANG DETECTION: Ended on Fri Jan 25 15:39:03 EST 2013사용 참고
스크립트에서 잠금 대기 상태인 애플리케이션은 정지로 간주하지 않습니다.
스크립트를 실행하려면 Perl v5.6.0 이상이 필요합니다.
