티스토리 뷰
본 포스팅은 Tmax5 장애진단 가이드입니다.
본 포스팅에서는 Tmax 시스템 운영중에 발생 할수 있는 장애에 대비한 방안에 대해 살펴보겠습니다.
Tmax Trouble Shooting 을 위한 단계는 다음과 같습니다.
먼저 현상을 파악합니다.
다음으로 Tmax System의 구성을 확인합니다.
다음으로 Tmax 환경 확인 및 분석을 수행합니다.
문제가 발생한 시점의 각종 로그를 확인합니다.
필요에 의해 관련 소스를 분석합니다.
장애 재현 및 테스트를 수행합니다.
분석 취합 및 결과를 도출합니다.
마지막으로 결과를 정리하고 문서화합니다.
Trouble Shooting의 단계를 하나씩 상세하게 살펴보겠습니다.
먼저 현상 파악입니다.
정확한 현상을 파악 하여 장애 상황에 대한 범위를 최소화 합니다.
일곱번째로 분석결과 취합 및 결과를 도출합니다.
전의 과정에서 분석한 내용을 바탕으로 어느 구간에서 어떤 원인으로 인해 어떤 장애가 발생했는지 파악합니다.
먼저 부팅이 되어있는지 Shared Memory를 통해 확인합니다.
Shared Memory에는 있고 관리프로세스가 없는 경우 Shared Memory를 삭제합니다.
Ipcs -m으로 현재 할당되어 있는 Shared Memory의 ID로 제거를 수행합니다.
삭제 전 사용 중이었던 Process가 무엇이었는지 반드시 확인 후 작업을 수행합니다.
엔진 process가 기동되어 있는 경우 대처 방안은 다음과 같습니다.
관리프로세스는 있고 Shared Memory는 없는경우, 관리프로세스를 제거합니다.
ps 명령어로 확인해야 하는 Process는 tmm, clh, cll입니다.
기동과 마찬가지로 관리프로세스는 있고 Shared Memory는 없는경우, 관리프로세스를 제거합니다.
ps 명령어로 확인해야 하는 Process는 tmm, clh, cll입니다.
tms서버가 비활성화 되어 있다면 tmboot -t 명령어로 가동합니다.
먼저 tms서버를 추가 기동합니다. 이후 Transaction 정보를 확인합니다. 현재 처리중인 트랜잭션 정보 출력하기 위해 tmadmin -n node명을 입력하면 xastate를 통해 확인이 가능합니다.
서비스를 반복 호출 후, 응용서버의 메모리 사용량을 재 확인합니다.
문제가 발생한 위치를 확인하고(tpfree()), 해당 응용서버를 수정합니다.
다음으로 서비스 수행중 비정상 종료(core발생) 현상입니다.
먼저 에러코드(tperrno)를 확인합니다.
TPESVRDOWN(tperrno=29)이 발생하는지, slog 상에 CLH2058이 발생하는지 확인합니다.
컴파일시CFLAGS=-g 를 추가하여 컴파일후SIGSEGV가 발생하는 경우 core를 dbx(or gdb)로 분석합니다.
문제 발생 위치가 확인되었으면 프로그램을 수정합니다.
다음으로 서비스 수행중 Timeout이 발생한 경우입니다.
먼저 에러코드(tperrno)를 확인합니다.
클라이언트에서 TPETIME(tperrno=13)이 발생하는지 확인합니다.
debug 로그로 timeout을 유발하는 부분을 찾은후 프로그램을 수정합니다.
다음으로 존재하지 않는 서비스를 호출한 경우입니다.
마찬가지로 에러코드(tperrno)를 확인합니다.
클라이언트에서 TPNOENT(tperrno=6)이 발생하는지 확인합니다.
Tmax환경파일을 확인하여 소스를 수정합니다.
다음으로 비활성 서비스를 호출한 경우입니다.
에러코드(tperrno)를 먼저 확인합니다.
클라이언트에서 TPNOREADY(tperrno=24)이 발생하는지 확인합니다.
확인되면 해당 서버를 기동시킵니다.
다음으로 tpalloc하지 않은 버퍼를 사용할 경우입니다.
에러코드(tperrno)를 확인합니다.
클라이언트에서 TPEOTYPE(tperrno=18)이 발생하는지 확인합니다.
tpcall()시 사용하는 buffer를 tpcalloc을 하도록 소스를 수정합니다.
먼저 해당 프로세스의 CPU 사용량을 확인합니다.
다음으로 응용서버의 CPU 과점유상황시 system call trace를 수집하고 확인합니다.
먼저 요청이 폭주하는 서버를 추가 기동하는 경우입니다.
서버를 추가 기동 합니다.
Tmax환경파일상에서 큐잉되는 서버의 환경에 MIN, MAX, ASQCOUNT를 수정합니다.
현재 큐에 적체되어 있는 서비스 요청을 삭제합니다.
이후 해당 서버의 큐잉건수를 체크합니다.
'④ 미들웨어 > ⓣ Tmax' 카테고리의 다른 글
[Tmax] JEUS7 - WebT 연동 가이드 (0) | 2018.07.03 |
---|---|
[Web Server] Tmax CLHQTIMEOUT & tmm 다운 영향도 가이드 (0) | 2018.06.18 |
[Web Server] Tmax 서버/서비스 동적추가 가이드 (0) | 2018.06.18 |
[Tmax] Configuration & 명령어 가이드 (0) | 2018.04.11 |
[Tmax] Install 가이드 (0) | 2018.04.10 |
- Total
- Today
- Yesterday
- openstack token issue
- node.js
- SWA
- 오픈스택
- 쿠버네티스
- jeus
- JEUS6
- nodejs
- TA
- k8s
- Architecture
- openstack tenant
- SA
- API Gateway
- Docker
- kubernetes
- git
- 아키텍처
- 마이크로서비스 아키텍처
- JEUS7
- aa
- JBoss
- Da
- OpenStack
- apache
- aws
- webtob
- wildfly
- 마이크로서비스
- MSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |