본문으로 건너뛰기
최종 수정: 에

성능 튜닝 절차 가이드

Doris의 성능 튜닝은 방법론적 지침에 따라 체계적으로 진행해야 하는 작업입니다. Doris는 체계적인 진단을 지원하는 진단 도구와 분석 도구를 제공하므로, 성능 문제를 효율적으로 식별하고 분석하며 해결할 수 있습니다.

튜닝 전 자가 점검 목록:

  • 느린 SQL이나 성능 저하가 발생했음을 확인했습니다.
  • FE 노드 로그 또는 Doris Manager에 접근할 수 있습니다.
  • 업무 테이블의 스키마 설계와 쿼리 패턴을 잘 알고 있습니다.
  • EXPLAIN, Profile과 같은 기본 분석 도구를 이해하고 있습니다.

전체 튜닝 절차는 다음 네 단계로 구성됩니다.

성능 튜닝 절차

단계작업핵심 목표주요 도구
1단계느린 쿼리 식별튜닝이 필요한 SQL 문 식별Doris Manager, fe.audit.log, audit_log 테이블
2단계스키마 튜닝설계 수준의 병목 제거파티셔닝 및 버킷팅, 인덱스, Colocate Group
3단계실행 계획 튜닝실행 계획 최적화EXPLAIN, 구체화된 뷰, Hint
4단계실행 튜닝실행 시 성능 최적화Profile, Runtime Filter, 병렬 처리 매개변수

1단계: 느린 쿼리 식별​

목표: 업무 시스템에서 튜닝이 필요한 느린 SQL 문을 추려냅니다.

접근 방법:

시나리오권장 방법설명
Doris Manager가 배포된 경우Manager 로그 페이지 사용필터링과 정렬이 편리한 시각적 인터페이스 제공
Doris Manager가 배포되지 않은 경우FE 노드의 fe.audit.log 또는 audit_log 시스템 테이블 조회느린 SQL 목록을 확보한 후 우선순위를 정해 순서대로 튜닝

도구 사용법에 대한 자세한 내용은 진단 도구를 참조하세요.

2단계: 스키마 설계 및 튜닝​

느린 SQL을 식별한 후에는 먼저 업무 스키마 설계를 점검하여 설계 수준에서 발생하는 성능 문제를 배제합니다. 스키마 튜닝은 다음 세 가지 영역을 다룹니다.

튜닝 방향주요 내용참고 문서
테이블 수준의 스키마 튜닝파티션 및 버킷 수, 필드 타입테이블 스키마 최적화
인덱스 설계 튜닝Prefix index, Bloom filter, inverted index 등테이블 인덱스 최적화
특수 최적화 기법Colocate Group 등Colocate Group을 사용한 Join 최적화

자세한 사례는 실행 계획 튜닝을 참조하세요.

3단계: 실행 계획 튜닝​

스키마 점검을 마치면 본격적인 튜닝 단계에 들어갑니다. 이 단계에서는 Doris의 각 계층에서 EXPLAIN 도구를 충분히 활용하여 느린 SQL의 실행 계획을 체계적으로 분석하고 핵심 최적화 지점을 찾습니다.

시나리오별 튜닝 기법:

자세한 사례는 실행 계획 튜닝을 참조하세요.

4단계: 실행 튜닝​

실행 튜닝 단계에서는 SQL의 실제 실행 동작을 바탕으로 실행 계획 튜닝의 효과를 검증하고, 실행 단계별 소요 시간 분포나 병렬 처리 부족과 같은 실행 측 병목을 계속 분석해야 합니다.

다중 테이블 분석 쿼리를 예로 들면, Profile을 통해 다음 사항을 확인할 수 있습니다.

  • 플래너가 선택한 Join 순서가 적절한지 여부.
  • Runtime Filter가 적용되는지 여부.
  • 병렬 처리 수준이 기대에 부합하는지 여부.
  • 시스템 부하(예: 느린 IO 또는 기대에 미치지 못하는 네트워크 전송 성능).

시스템 부하 문제는 시스템 수준의 도구를 함께 사용하여 진단해야 합니다. 자세한 사례는 실행 튜닝을 참조하세요.

팁

특정 성능 문제를 분석할 때는 먼저 실행 계획을 점검하고 그다음 실행을 튜닝하는 순서를 권장합니다. 먼저 EXPLAIN으로 실행 계획을 확인한 후, Profile로 실행 성능 문제를 찾으세요. 순서를 바꾸면 작업 효율이 떨어지고 문제를 신속하게 파악하기 어려워질 수 있습니다.

자주 묻는 질문​

Q1: 스키마 튜닝과 실행 계획 튜닝 중 무엇을 먼저 해야 하나요?

스키마 튜닝을 먼저 해야 합니다. 잘못된 파티셔닝/버킷팅 필드나 필요한 인덱스 누락과 같은 부적절한 스키마 설계는 실행 계획 자체의 최적화를 가로막습니다. 스키마 문제를 먼저 해결하면 결함이 있는 기반 위에서 튜닝을 반복하는 일을 피할 수 있습니다.

Q2: EXPLAIN과 Profile의 차이점은 무엇인가요?

도구출력사용 단계
EXPLAIN정적 실행 계획(실제로 실행하지 않음)실행 계획 튜닝
Profile실제 실행 시 측정한 소요 시간과 리소스 지표실행 튜닝

Q3: Join Order가 적절하지 않을 때는 어떻게 해야 하나요?

EXPLAIN 출력을 검토하고 Leading Hint를 사용하여 Join 순서를 수동으로 지정하세요.

Q4: IO나 네트워크가 느린 문제는 어떻게 해결하나요?

Profile로 시스템 부하를 파악할 수 있지만, 근본 원인을 찾으려면 iostat, sar, netstat과 같은 운영체제 수준의 도구를 함께 사용하여 하드웨어나 네트워크 병목을 조사해야 합니다.

요약​

Doris는 느린 쿼리 식별, 스키마 설계, 실행 계획부터 실행 시 성능까지 전 과정의 진단을 지원하는 다양한 튜닝 도구를 제공합니다. 업무 사용자와 DBA는 "식별 -> 스키마 -> 실행 계획 -> 실행"의 네 단계 절차에 따라 체계적으로 튜닝하여 Doris의 성능상 이점을 충분히 활용하는 것이 좋습니다.