Feature
실시간 병목 자동 분석
병목 분석 방법 비교
구분 Other Coconut
도구 Java Core Dumtpt File + IBM JCA 분석기 코코넛 자체 기능
병목 인지 경로 관리자의 수작업에 의존 자동인식
병목 분석 방법 연속된 몇 개의 Dump File을 획득하여 동일한 스택이 존재하는지 상호 비교 병목을 탐지하여 Alert 발생
정확도 매우 낮음 매우 높음
탐지 수준 최소 수 초 이상의 병목만 분석 가능 0.1초 이상의 모든 병목 자동 탐지
병목 시간 검출 알 수 없음 병목 시간 기록됨
Overhead Dump 발생을 위해 해당 시간 동안 서비스 지연 운영 단계에서 충분히 적용 가능한 수준으로 미미함
기타 기존 어플리케이션에 감춰진 병목이 얼마나 되는지 알수 없음 0.1초의 감춰진 병목까지도 존재 여부 자동 검출
병목 분석을 위해 성능 전문가 필요 솔루션 자동화 기능으로 별도의 전문가 필요 없음
N/A 현재 실행이 종료되지 않은 서비스에 대해서도 실시간으로 병목 여부 표출
N/A HangServiceCount KPI 제공 설정 값 보다 크면 Alert 발생
EndUser E2E Trace
  • 1. 웹 페이지 성능
  • 웹페이지 성능 모니터링
  • 페이지 단위 거래 추적
  • Page Script 오류 수집
  • Any Device, Any Browser
  • On the fly – No Page Edit
  • 2. 페이지 성능 통계 목록
  • 페이지 응답시간 및 오류 발생 여부
  • 구간별 성능 요약 – N/W, Disk, CPU, SQL
  • 3. E2E Call Tree
  • Client Page 응답 시간
    • Server Page 처리 응답 시간
    • Client Ajax (Menu List) 응답 시간
      • Server (MenuList) 처리 응답 시간
        • SQL 처리 응답 시간
  • 4. 웹 페이지 성능 상세
  • 페이지 처리 구간별 요약 및 상세 소요 시간
SQL E2E Trace
Developer :
APM에서 SQL이 느리다고 나오는데 무슨 문제 있나요?
DBA :
평균 0.1초 미만으로 별 문제 없는데요…
Developer :
음… 그럼 뭐가 문제지???
WAS와 DB 사이에는 많은 Gap이 존재합니다.
네트워크, DNS 서버, 방화벽, DB접근통제 등
그리고 DBA는 SQL 실행 통계에 기반한 평균값만 볼 수 있습니다.
평균은 빠르지만, 특정 순간에 튀는 SQL은 발생할 수 있습니다.
  • 1. 실시간 SQL Hang 검출
  • 2. WAS 영역 실행 정보
  • Sql ID, 시작시간
  • 3. DBMS 영역 실행 정보
  • 현재 실행 정보 - 마지막 실행시간, 현재실행여부, 현재 수행시간
  • 이벤트 대기 시간 – IO Wait, HA Cluster, 동기화
  • 실행 통계 정보 – 평균수행시간, 평균조회건수,논리R/W 블럭수, 물리 R/W블럭수
Ticket 발행을 통한 유량제어
접속 순번 도래시해당 페이지로 이동

  • 1. 예약 기능 (ex, 9월 2째주)
  • 2. 대상 페이지 지정 가능
  • 3. 다양한 유량제어 기준
  • CPU사용율
  • 문자수
  • 동시접속자수
  • 로그인사용자수 등
다양한 모니터링
직관적인 지연 구간 식별
WAS, DB, 연계 3개의 구간 시간 비중 시각화
  • 전체 평균 응답시간
  • SQL 평균 응답시간
  • 연계 평균 응답시간
실시간 거래 실행 상태 표시
실행시간 따라 점 이동
  • 서비스 실행 중
  • Method Hang
  • SQL Hang
  • 외부연계 Hang
다양한 Filtering 모니터링
다양한 Filtering 조건
  • 정상종료, 에러, 실행중, Hang상태,
    EndUser,Jscript 오류, 서비스명,
    사용자ID, Client IP,응답시간 구간
대용량 Profiling (10,000,000 Steps +)
Spring 기반의 어플리케이션 실행 시
Overhead가 가장 큰 곳은 어디일까요?
Application Tuning
업무 흐름을 다양한 방식의 시각화로
손쉽게 구조를 파악하고 성능 지연 원인을 분석 가능
  • 1. 최상위 병목 호출 패스 탐색
  • 2. 현재 위치 이하의 업무 호출 경로 분석
  • 3. 'getToDoList' SQL을 11번 중복 호출하는 것이 원인(파라메터 분석으로 중복 식별)
  • 4. 다른 Method에서는 호출하는 곳이 없는지 Call Graph로 분석
  • 5. 해당 메소드를 Double Click하면 호출되는 곳의 소스를 보여줌