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

워크로드 관리 개요: 리소스 격리, 스로틀링 및 서킷 브레이킹

Doris의 워크로드 관리 기능은 여러 테넌트나 비즈니스 부문이 하나의 클러스터를 공유할 때 발생하는 리소스 경합을 해결합니다. 워크로드 관리 정책을 적절히 구성하면 리소스를 격리하고, 쿼리가 클러스터에 과부하를 일으키는 것을 방지하며, 비즈니스 SLA를 보장할 수 있습니다.

핵심 기능은 다음 세 가지 영역을 다룹니다.

  • 리소스 격리: 클러스터 리소스(CPU, 메모리, IO)를 여러 그룹으로 나누어 서로 다른 사용자와 비즈니스 부문이 서로 영향을 주지 않도록 합니다.
  • 동시성 제어 및 큐잉: 클러스터에서 동시에 실행하는 작업 수를 제한합니다. 임계값을 초과하면 새 작업을 자동으로 큐에 넣어 동시 실행 작업이 갑자기 늘어나 시스템에 과부하가 발생하는 것을 방지합니다.
  • 서킷 브레이킹: 쿼리 계획 수립 단계나 실행 중에 스캔한 데이터 양, 할당된 메모리, 실행 시간 등의 조건에 따라 비정상 작업을 자동으로 취소하여 단일 쿼리가 지나치게 많은 리소스를 소비하지 않도록 합니다.

리소스 분할 방식​

Doris는 배포 모드와 격리 요구 사항에 따라 세 가지 리소스 그룹화 방식을 제공합니다.

리소스 격리 방식격리 단위소프트/하드 제한그룹 간 쿼리적용 시나리오
Resource Group서버 노드 단위로 리소스를 완전히 격리하며, BE 장애의 영향도 격리 가능하드 제한만 지원지원하지 않음. 리소스 그룹 내에 하나 이상의 복제본이 저장되어 있어야 함스토리지·컴퓨팅 통합 모드에서의 강력한 격리
Workload GroupBE 프로세스 내부에서 격리하며, BE 장애의 영향은 격리할 수 없음소프트 제한 + 하드 제한지원세밀한 리소스 할당, 급증하는 트래픽 제어
Compute Group서버 노드 단위로 리소스를 완전히 격리하며, BE 장애의 영향도 격리 가능하드 제한만 지원지원하지 않음스토리지·컴퓨팅 분리 모드에서의 강력한 격리

각 방식에 대한 자세한 설명은 다음과 같습니다.

  • Resource Group: BE 노드를 최소 단위로 사용하며, 태그를 설정하여 클러스터를 여러 리소스 그룹으로 나눕니다. 스토리지·컴퓨팅 통합 모드에 적용됩니다.
  • Workload Group: Cgroups를 통해 단일 BE 내부의 리소스를 더 세분화하여 프로세스 내에서 세밀하게 리소스를 할당할 수 있습니다.
  • Compute Group: 스토리지·컴퓨팅 분리 모드의 리소스 그룹화 방식입니다. Resource Group과 마찬가지로 BE 노드를 최소 단위로 사용합니다.

소프트 제한과 하드 제한​

하드 제한은 어떤 테넌트도 초과할 수 없는 리소스 사용량의 절대 상한입니다. 하드 제한에 도달하면 이를 초과하는 리소스 요청은 즉시 거부됩니다. 하드 제한은 클러스터 리소스 고갈이나 비즈니스 부문 간 리소스 경합을 방지하고 클러스터의 전반적인 안정성을 보장합니다.

소프트 제한은 일시적으로 초과할 수 있는 리소스 사용 상한입니다. 시스템에 여유가 있을 때는 테넌트가 다른 리소스 그룹의 유휴 리소스를 빌려 쓸 수 있습니다. 시스템이 바쁘고 리소스 경합이 발생하면 소프트 제한을 초과하는 요청은 추가 리소스를 확보할 수 없습니다. 소프트 제한은 일시적인 쿼리 급증이나 단기적인 데이터 수집량 증가처럼 트래픽이 급증하는 상황에 적합합니다.

리소스 분할 방식별로 지원하는 제한 모드는 다음과 같습니다.

분할 방식소프트 제한 지원하드 제한 지원
Resource Group아니요예
Workload Group예예
Compute Group아니요예