VictoriaMetrics 운영기 2편 — 장비 증설 없이 리소스 위기를 해결한 3단계 최적화 전략
데브옵스
VictoriaMetrics 운영기 2편 — 장비 증설 없이 리소스 위기를 해결한 3단계 최적화 전략
두줄요약
쿠버네티스 전환으로 커진 VictoriaMetrics 리소스 문제를 조회·저장·수집 세 레이어로 나눠 최적화했습니다. 쿼리 분할, 보관 기간 축소, 수집 대상 축소로 장비 증설 없이 안정화했습니다.
문제 상황
- 쿠버네티스 전환과 컨테이너 급증으로 VictoriaMetrics 클러스터의 카디널리티가 폭증한 상황
- 조회 레이어 vmselect OOM, 저장 레이어 디스크 고갈, 수집 레이어 과도한 메트릭 유입이 동시에 발생
원인 분석
- 단일 쿼리가 수백만 시계열을 병합하며 vmselect 한 대의 메모리에 결과셋이 집중되는 구조
- RetentionPeriod와 IndexDB 로테이션 구조를 고려하지 않은 보관 정책으로 디스크 압박이 누적된 상태
- 모든 컨테이너를 수집하는 정책 때문에 비서비스 컨테이너 메트릭이 대량 유입되는 상황
해결 방법
- container 레이블 접두사를 기준으로 쿼리를 36개로 분할해 조회 부하를 분산
- Hot Tier RetentionPeriod를 12개월에서 6개월로 축소해 Data 영역과 IndexDB 점유를 완화
- 비서비스 컨테이너를 수집 대상에서 제외해 앞단 유입량 자체를 감소
