Contenu connexe
Similaire à 장애 분석 절차 (서영일) (20)
장애 분석 절차 (서영일)
- 3. - 3 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애란?
장애분석 절차
애플리케이션 본연의 기능을 저해하는 여타의 상황을 의미합니다.
장애 원인 분석에 앞서 장애 유형을…
사후 분석 이전에 실시간으로 상황을 인지…
- 4. - 4 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 유형
장애분석 절차
애플리케이션 장애 유형을 분류해 보면 외부요인과 내부요인으로 분류해 봅니다.
내부요인
• 메모리 관리
• 메노리 캐시
• 보안 모듈
• Scale out 조건 관리
• 최적화 여부
• Pool 관리
• 애플리케이션 결함
외부요인
• 외부 네트워크 장애
• 내부 네트워크 장애
• DNS 장애
• 의존 시스템 장애
• 클라우드 자원 제약
- 5. - 5 -Copyright © 2019 Whatap – Developed by
Internal Network
Front Load Balancer
애플리케이션 장애 유형
장애분석 절차
조금 더 디테일하게… 가상의 애플리케이션 환경을 가정해 보겠습니다.
내부요인
6. 메모리 관리
7. 메노리 캐시
8. 보안 모듈
9. 최적화 여부
10. Pool 관리
11. 애플리케이션 결함
12. Scale out 조건 관리
외부요인
1. 외부 네트워크 장애
2. 내부 네트워크 장애
3. DNS 장애
4. 의존 시스템 장애
5. 클라우드 자원 제약
Account API
Account API
인터넷
구간
DNS
Web Load Balancer
Web Front
Web Front
1
3
2
Database
Cache DB
External API
External
4
Scale out
Product Load
Balancer
Product API
Product API
6-11
1
2
- 6. - 6 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 유형 상세
장애분석 절차
외부요인으로 인한 장애는 시스템 전체 장애로 확산 가능성을 내포합니다.
내외부 장애 유형 상세 현상
외부요인
외부 네트워크 장애 시스템 자체에 외부 요청 진입불가 서비스 유입 없음
내부 네트워크 장애 네트워크 장비 장애 등, 시스템 일부 또는 전체 장애 가능성 유발 연계(DB 포함) 시스템 호출 에러 다발
DNS 장애 DNS 의존 호출 구조 시스템의 장애 유발 DNS lookup 실패로 인한 에러 다발
의존시스템 장애 외부 호출 의존성 서비스의 장애 특정 서비스 에러 다발
클라우드 자원 제약 CPU Steal, Burst Balance 등 클라우드 제약으로 인한 장애 특정 서버의 성능 저하 또는 서비스 중단
내부 요인
메모리 관리 페이징/스트리밍을 사용하지 않는 과도한 데이터 조회 트랜잭션의 동시 발생으로 Heap 잠식
유발 가능
높은 Heap 사용량, 빈번한 GC 수행, GC 시간의 장기화,
OOM 발생
메모리 캐시 캐시 옵션의 오적용으로 인한 Heap 메모리 잠식
2차 파일 캐시 사용시 1차 메모리 캐시 전환 지연
상동
file read/write 지연
보안 모듈 과도한 보안 옵션 적용으로 인한 높은 비용의 암복호화 부하 트랜잭션 급증 시 대규모 병목 지연
최적화 여부 단위 애플리케이션이 최적화 되지 않은 상태로 전체 시스템의 성능 저하 유발 응답 시간 지연
Pool 관리 DB connection, HttpClient, 외부 캐시 클라이언트 pool 미적용 또는 사이즈 부족 connection 취득 병목
애플리케이션 결함 생략 에러로 식별
Scale out 조건 관리 부하 급증 시, scale out timing 이 늦을 경우 장애 유발
scale out size가 적을 경우, 기존 부하의 쏠림 현상으로 장애 극복 불가
높은 TPS, 응답 시간 지연 현상 지속
- 7. - 7 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 분석 절차
장애분석 절차
와탭이 활용하는 핵심 기능은 히트맵과 스택입니다.
1차 분석
• 히트맵, 프로파일
• 스택
2차 분석
• 트랜잭션 통계
• 에러 통계
• 카운터
타 정보 분석
• 애플리케이션 로그
• GC 로그
• Heap Dump 분석
• 클라우드 장애 리포팅
• DNS 점검
• 서버 모니터링 정보
• 클라우드 전용 지표 (CPU Steal, Burst Balance 등)
이벤트 알림 설정
• 집합 모니터링 기반 알림 (프로젝트 단위)
• 에이전트 단위 알림
- 8. - 8 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 분석 절차 - 1-1) 히트맵
장애분석 절차
가장 빠르게 문제에 접근하는 방법은 히트맵을 통한 특정 프로파일 샘플링입니다.
히트맵
• 응답시간 분포 패턴 확인
• 트랜잭션 프로파일 샘플링 (드래그)
• 대상 시스템 특정 (멀티 서버 연계 추적)
• 익숙한 패턴인가?
• 병목(세로줄)이 있는가?
• 응답시간의 갑작스런 지연이 발생하는가?
• 에러가 급증하고 있는가?
- 9. - 9 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 분석 절차 - 1-2) 프로파일
장애분석 절차
히트맵 드래그를 통해 트랜잭션 프로파일을 확인했을 때 지연 스텝에는 무엇이 보이는가?
프로파일
액티브 스택
에러 프로파일
처리 시간이 긴 스텝은?
• 파일 접근
• Socket 접속
• SQL 발행
• HTTP Call
• 어떤 처리과정에서 정책되어 있는
스택이 높은 빈도로 발견되는가?
• 어떤 유형의 에러가 발생중인가?
- 10. - 10 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 분석 절차 - 1-3) 멀티 서버 트랜잭션
장애분석 절차
MSA 환경이라면 어느 애플리케이션이 지연을 유발하는가?
멀티 서버 추적
- 11. - 11 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 분석 절차 - 1-4) 스택
장애분석 절차
장애 발생 시간대에 어떤 스택이 높은 비중을 차지하고 있는가? (상위 10개 또는 10% 상위 항목 점검)
탑 스택 유니크 스택
- 12. - 12 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 분석 절차 - 2-1) 트랜잭션 통계
장애분석 절차
2차 분석에서는 각종 통계 정보를 활용한 분석을 진행합니다. 서비스명을 단위 업무로 볼 수 있는 경
우 유용합니다.
트랜잭션 통계
• 에러 발생 비중
• 평균 응답 시간
• 메모리 평균 할당량
• 다중화 애플리케이션 밸런싱
- 13. - 13 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 분석 절차 - 2-2) 에러 통계
장애분석 절차
장애가 에러로 나타난 경우, 에러 유형을 통해 특정 장애의 원인을 추적합니다.
에러 통계
• 에러 발생 추이
• 에러 스택
- 14. - 14 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 분석 절차 - 2-3) 카운터
장애분석 절차
메모리 분석 등 연관 지표 중심으로 비교 분석을 위해 카운터에서 나란히 배치하여 비교합니다.
메모리 분석용 지표
• Heap 사용량
• 메모리
• GC 시간
• GC 건수
• Heap Pending Finalization 개수
(애플리케이션의 메모리 릭 가능
성을 탐지하기에 유용한 지표)
- 15. - 15 -Copyright © 2019 Whatap – Developed by
애플리케이션 장애 유형별 참고 모니터링 지표
장애분석 절차
장애 유형별로 애플리케이션 모니터링에서 참고할 수 있는 정보를 제시합니다.
장애 유형 현상 애플리케이션 모니터링 데이터
외부 네트워크 장애 서비스 유입 없음 TPS의 현저한 저하, 트랜잭션 통계 상 트랜잭션 유입 없음
내부 네트워크 장애 연계(DB 포함) 시스템 호출 에러 다발 히트맵 + 프로파일, 에러 통계, 원격 HTTP 호출 통계, 트랜잭션 통계의 에러 건수
DNS 장애 DNS lookup 실패로 인한 에러 다발 히트맵 + 프로파일, 에러 통계, 스택 통계
의존시스템 장애 특정 서비스 에러 다발 히트맵 + 프로파일, 에러 통계, 원격 HTTP 호출 통계, 트랜잭션 통계의 에러 건수
클라우드 자원 제약 특정 서버의 성능 저하 또는 서비스 중단 TPS의 현저한 저하, 서버 모니터링 (별도 서비스) 중 클라우드 지표(CPU Steal 등)
메모리 관리 높은 Heap 사용량, 빈번한 GC 수행, GC 시간의 장기화, OOM 발생 트랜잭션 통계의 평균 메모리 사용량, 카운터의 메모리 관련 지표
메모리 캐시 상동
file read/write 지연
액티브 트랜잭션의 지연 트랜잭션 확인, 프로파일 상의 파일 처리 관련 스텝과 액티브 스택 정보
보안 모듈 트랜잭션 급증 시 대규모 병목 지연 히트맵 + 프로파일, 스택 통계
최적화 여부 응답 시간 지연 종합적 접근 필요
Pool 관리 connection 취득 병목 히트맵 + 프로파일의 액티브 스택, 스택 통계
애플리케이션 결함 에러로 식별 에러 통계
Scale out 조건 관리 높은 TPS, 응답 시간 지연 현상 지속 종합적 접근 필요, 서버 모니터링(별도 서비스)
- 16. - 16 -Copyright © 2019 Whatap – Developed by
정리
장애분석 절차
사후 분석 절차를 언급드렸으나, 가능한 상황이라면 실시간 분석을 권장합니다.
개발 트렌드의 변화 - 빈번한 주기로 배포
지속적인 모니터링의 필요
배포 직후, 피크 사용시간대 중점 모니터링
이벤트 감지 활용
타이트한 룰 적용을 통한 이상 상황 감지 테스트
운영자가 알림을 간과하지 않을 수준의 룰을 적용하여 안정화
일 수건의 알림은 알림 기능의 정상 동작 여부 검증과 운영자의 긴장감 유지를 위해 필요
- 18. - 18 -Copyright © 2019 Whatap – Developed by
통합대시보드 V2
신규 기능
라이브 편집 기능과 URL 주소를 통한 대시보드 찾아가기 기능을 활용가능합니다.
- 19. - 19 -Copyright © 2019 Whatap – Developed by
일자별 애플리케이션 현황
신규 기능
일간의 요약 현황을 일목요연하게 확인할 수 있는 현황 보드가 추가되었습니다. (분석 메뉴 하위)
- 20. - 20 -Copyright © 2019 Whatap – Developed by
트랜잭션 검색
신규 기능
검색 기능이 강화된 트랜잭션 검색 메뉴가 추가되었습니다. (분석 메뉴 하위)
- 21. - 21 -Copyright © 2019 Whatap – Developed by
Flexible Report
신규 기능
템플릿 기반 보고서 기능이 추가되었습니다. (보고서 메뉴 하위)
향후 기존 보고서가 본 기능으로 대체됩니다.
- 22. - 22 -Copyright © 2019 Whatap – Developed by
Netstat 토폴로지
신규 기능
애플리케이션의 Inbound/Outbound 접근 대상 IP 및 포트 정보를 표현하는 토폴로지가 추가되었습니
다.
- 23. - 23 -Copyright © 2019 Whatap – Developed by
에이전트 종류
신규 기능
상단 필터에 에이전트 종류가 추가되었습니다.
복수의 애플리케이션을 그룹으로 관리하고자 할 경우 활용합니다.
-Dwhatap.okind={에이전트 종류명}
- 24. 감사합니다.
이 문서의 저작권은 (주)와탭랩스에 있습니다.
이 문서는 (주)와탭랩스의 서면동의 없이 어떤 형태로도 재생산, 배포, 변경할 수 없습니다.