
SLA 사수를 위한 CPU 우선순위 설계부터 물리 코어 격리까지, OLAP 운영의 정수를 담다
토스 Data Online Processing 팀이 실시간 OLAP 엔진인 StarRocks를 운영하며 겪은 리소스 격리 최적화 과정을 상세히 다룹니다. 서비스 쿼리와 배치 작업이 충돌하는 멀티테넌트 환경에서 Resource Group을 통해 시스템 안정성을 확보한 실무 노하우를 공유합니다.
멀티테넌트 환경에서 쿼리 간섭으로 고통받는 데이터 엔지니어나, StarRocks의 리소스 제어 메커니즘을 깊이 있게 이해하고 싶은 운영자에게 추천합니다.
하나의 StarRocks 클러스터에서 실시간 서비스 조회, 대규모 배치 작업, 모니터링 등 성격이 다른 워크로드가 공존하면서 리소스 경합이 발생하고 서비스 SLA 준수가 어려워지는 문제가 있었습니다.
Resource Group 기능을 도입하여 워크로드별로 CPU 우선순위(cpu_weight)를 지정하고, 엄격한 레이턴시 보장이 필요한 서비스에는 전용 물리 코어를 할당하는 exclusive_cpu_cores 방식을 단계적으로 적용했습니다.
헤비 배치 워크로드와 서비스 조회가 겹치는 상황에서도 서비스 쿼리의 응답 시간이 튀는 현상을 해결하고 안정적인 레이턴시 성능을 확보하는 데 성공했습니다.
Trade-off
exclusive_cpu_cores는 강력한 격리를 제공하지만 유휴 리소스의 유연한 공유를 제한하며, Classifier 설정 시 DB 기반 조건이 다른 조건보다 가중치가 매우 높아 의도치 않은 그룹 배정이 발생할 수 있는 운영상 주의점이 있습니다.
DB 엔진 내부에서 컴퓨팅 리소스를 논리적으로 분할하여 특정 워크로드나 사용자에게 할당하는 관리 단위입니다.
물리적 CPU 코어를 특정 리소스 그룹에 전용으로 예약하고, 스레드 어피니티를 통해 하드웨어 수준의 격리를 제공하는 설정입니다.
사용자, 역할, 쿼리 타입 등 쿼리의 속성을 기반으로 해당 쿼리를 어떤 Resource Group에서 실행할지 결정하는 매칭 규칙입니다.


