본문으로 건너뛰기

4단원: 성능 분석과 병목 진단

학습 목표

이 단원을 마치면 다음을 할 수 있습니다.

  • 성능 분석의 3단계(현상 파악 → 원인 특정 → 해결)를 설명할 수 있습니다
  • 트랜잭션 통계에서 느린 URL과 SQL을 식별할 수 있습니다
  • 성능 조회에서 시계열 메트릭을 조회하고 비교할 수 있습니다

1. 성능 분석 방법론

1.1 성능 분석 3단계

성능 문제를 체계적으로 해결하려면 3단계 접근법을 사용합니다.

단계질문FlowKat 도구
1. 현상 파악"무엇이 느린가?"트랜잭션 통계 (URL 통계, 에러 통계)
2. 원인 특정"왜 느린가?"XLOG 프로파일, SQL 통계
3. 해결 확인"개선되었는가?"성능 조회 (시계열 비교)
현상 파악 원인 특정 해결 확인
┌─────────┐ ┌─────────┐ ┌─────────┐
│ URL 통계 │────▶│ 프로파일 │────▶│ 성능 조회 │
│ 에러 통계 │ │ SQL 통계 │ │ 전후 비교 │
└─────────┘ └─────────┘ └─────────┘

1.2 병목 유형 3가지

성능 병목은 대부분 아래 세 가지 유형에 해당합니다.

유형특징진단 도구
DB 쿼리 병목SQL 실행 시간이 긴 경우SQL 통계, 프로파일 SQL 스텝
외부 호출 병목외부 API 응답이 느린 경우HTTP 호출 통계, 프로파일 외부 호출 스텝
코드 병목애플리케이션 로직 자체가 느린 경우프로파일 Gap Time, 메서드 스텝

2. 트랜잭션 통계

2.1 URL 통계

URL 통계는 서비스의 각 URL별 호출 수, 평균 응답시간, 에러율을 집계한 표입니다. "어떤 URL이 가장 느린가?"를 한눈에 파악할 수 있습니다.

접근 경로:

메뉴: 대시보드 > 트랜잭션 통계 > URL 통계
URL: /workgroup/[workgroupId]/tx-stats/url
컬럼의미활용법
URL요청 경로느린 URL 식별
호출 수해당 URL의 총 요청 건수트래픽이 많은 URL 우선 개선
평균 응답시간요청당 평균 처리 시간높은 값부터 확인
에러 수에러가 발생한 건수에러가 많은 URL 원인 분석
우선순위 결정

호출 수가 많고 응답시간이 긴 URL을 먼저 개선하면 가장 큰 효과를 얻을 수 있습니다.

2.2 SQL 통계

SQL 통계는 실행된 SQL 쿼리별 실행 횟수와 수행 시간을 집계합니다.

접근 경로:

메뉴: 대시보드 > 트랜잭션 통계 > SQL 통계
URL: /workgroup/[workgroupId]/tx-stats/sql
컬럼의미
SQL 해시쿼리 식별자
실행 횟수해당 쿼리가 실행된 총 횟수
평균 수행시간쿼리당 평균 실행 시간
최대 수행시간가장 오래 걸린 실행 시간

2.3 에러 통계

에러 통계는 에러 유형별 발생 건수를 집계합니다. 반복되는 에러 패턴을 빠르게 식별할 수 있습니다.

접근 경로:

메뉴: 대시보드 > 트랜잭션 통계 > 에러 통계
URL: /workgroup/[workgroupId]/tx-stats/error

3. 성능 조회

3.1 성능 조회란?

성능 조회 페이지에서는 수집된 메트릭 데이터를 시계열 라인 차트로 시각화합니다. "시간에 따라 어떻게 변했는가?"를 확인할 때 사용합니다.

접근 경로:

메뉴: 대시보드 > 분석 > 성능 조회
URL: /workgroup/[workgroupId]/analysis/performance

3.2 조회 3단계

성능 조회는 다음 3단계로 데이터를 조회합니다.

단계선택 항목설명
1Family 선택오브젝트 유형 선택 (JAVA, HOST 등)
2오브젝트 선택조회할 서버/인스턴스 선택
3메트릭 선택확인할 지표 선택 (CPU, TPS, 응답시간 등)

3.3 주요 기능

기능설명
다중 조건 비교여러 메트릭을 동시에 차트에 표시하여 비교
개별/집계 모드서버별 개별 조회 또는 여러 서버 집계 조회
박스 줌차트 영역을 드래그하여 특정 시간대를 확대
CSV 내보내기차트 데이터를 CSV 파일로 저장
활용 예시

개선 작업 전후를 비교할 때 유용합니다.

  • 개선 전 날짜 범위로 응답시간 차트 조회
  • 개선 후 날짜 범위로 같은 메트릭 조회
  • 두 차트를 비교하여 실제 개선 효과 확인

4. 실습: 병목 진단 워크플로우

아래 순서로 성능 병목을 찾고 분석하는 과정을 실습합니다.

단계 1: URL 통계에서 느린 URL을 식별합니다

  • 트랜잭션 통계 > URL 통계로 이동합니다
  • 조회 시간 범위를 설정하고 검색합니다
  • 평균 응답시간 기준으로 내림차순 정렬합니다
  • 가장 느린 URL 2~3개를 메모합니다

단계 2: 해당 트랜잭션의 프로파일을 분석합니다

  • XLOG > XLOG 검색/분석으로 이동합니다
  • 같은 시간 범위를 설정합니다
  • 느린 URL에 해당하는 트랜잭션을 찾아 프로파일을 엽니다
  • 어떤 스텝(SQL, 외부 호출, 메서드)에서 시간이 소요되는지 확인합니다

단계 3: SQL 통계에서 느린 쿼리를 확인합니다

  • 트랜잭션 통계 > SQL 통계로 이동합니다
  • 평균 수행시간 기준으로 정렬합니다
  • 느린 쿼리의 SQL 문장을 확인합니다
  • 프로파일에서 본 SQL과 일치하는지 대조합니다

단계 4: 성능 조회에서 추이를 확인합니다

  • 분석 > 성능 조회로 이동합니다
  • Family를 선택하고 (예: JAVA) 대상 서버를 선택합니다
  • 응답시간 관련 메트릭을 선택하여 시계열 차트를 확인합니다
  • 문제가 발생한 시간대에 응답시간이 증가했는지 확인합니다
분석 순서가 중요합니다

반드시 현상 파악(통계) → 원인 특정(프로파일) → 추이 확인(성능 조회) 순서로 진행합니다. 처음부터 프로파일을 하나씩 열어보면 시간이 오래 걸립니다. 통계에서 문제 범위를 좁힌 뒤 프로파일로 정밀 분석하는 것이 효율적입니다.


5. 분석 결과 정리 템플릿

성능 분석 결과를 정리할 때 아래 템플릿을 활용하면 팀 내 공유가 수월합니다.

항목내용
증상어떤 URL에서 응답 지연이 발생했는가?
발생 시각언제부터 언제까지 발생했는가?
영향 범위전체 서비스인가, 특정 URL만인가?
원인프로파일에서 확인한 병목 구간 (SQL / 외부 호출 / 코드)
근거 데이터관련 통계 수치, 프로파일 스크린샷
조치 방안어떻게 개선할 것인가?
개선 확인성능 조회에서 전후 비교 결과
이슈 추적과 연동

분석 결과를 FlowKat의 이슈 추적 기능에 이슈로 등록하면, 해결 과정을 체계적으로 기록하고 공유할 수 있습니다. 3단원에서 배운 이슈 추적 기능을 활용하세요.


학습 완료 체크리스트

이 단원을 마쳤다면 아래 항목을 확인해 보세요.

  • 성능 분석 3단계(현상 파악 → 원인 특정 → 해결 확인)를 설명할 수 있다
  • URL 통계에서 느린 URL을 찾고 정렬할 수 있다
  • SQL 통계에서 느린 쿼리를 확인할 수 있다
  • 성능 조회에서 메트릭을 선택하고 시계열 차트를 조회할 수 있다
  • 통계 → 프로파일 → 성능 조회 순서로 분석하는 워크플로우를 이해했다
확인 문제

모든 학습을 완료하기 전에 확인해 보세요.

  1. 성능 병목의 3가지 유형은 무엇인가요?
  2. URL 통계에서 개선 우선순위를 정할 때 어떤 기준을 사용하나요?
  3. 성능 조회 페이지에서 데이터를 조회하는 3단계는 무엇인가요?
정답 확인
  1. DB 쿼리 병목(SQL 실행 시간 과다), 외부 호출 병목(외부 API 응답 지연), 코드 병목(애플리케이션 로직 자체 느림)입니다.
  2. 호출 수가 많고 응답시간이 긴 URL을 우선적으로 개선합니다. 트래픽이 많은 URL을 개선하면 전체 서비스 성능에 가장 큰 효과가 있습니다.
  3. Family 선택(오브젝트 유형) → 오브젝트 선택(서버/인스턴스) → 메트릭 선택(CPU, TPS, 응답시간 등) 3단계입니다.

학습을 마치며

4개 단원을 모두 완료했습니다. 이제 FlowKat의 핵심 기능을 활용하여 시스템 성능을 모니터링하고 문제를 진단할 수 있습니다.

더 자세한 기능 설명은 사용자 가이드를 참고하세요.