Aggressive Recommendations
기본 Smart Sizing은 두 가지 목표를 이 순서로 추구합니다: 먼저 워크로드를 안정적으로 유지하고, 그다음 비용 효율적으로 만듭니다. 7일 이상의 사용량과 다른 SLI 지표를 분석하는 이유가 여기에 있습니다. 워크로드가 오랫동안 피크보다 훨씬 낮게 유휴 상태에 머물러도, 추천 값은 가장 바쁜 시기를 버틸 만큼 충분히 높게 유지됩니다. 그래서 추천 값이 유휴 상태의 사용량에 비해 높아 보일 수 있습니다. 이 차이는 오류가 아니라 신뢰성 목표가 작동하는 것입니다.
일부 팀은 비용을 최우선으로 둡니다. Aggressive Recommendations는 이 우선순위를 뒤집습니다. CPU와 메모리 데이터의 최근 1시간만 분석해 그 값을 기준으로 추천합니다:
- Request = 최근 1시간의 평균 사용량
- Limit = 최근 1시간의 최고 사용량
Container Settings의 버퍼와 min/max 범위는 aggressive 값 위에도 그대로 적용됩니다.
Default와 Aggressive 비교
default 추천 값은 여러 날에 걸친 패턴 변화에 따라 아주 천천히 움직이며, 워크로드가 가장 바쁜 시간을 버틸 수 있도록 장기 피크 근처에 머무릅니다. aggressive 추천 값은 최근 사용량을 따라갑니다. 클러스터 전체의 request 총합이 실제 사용량 곡선을 훨씬 촘촘하게 따라가며, 여기서 추가 절감이 나옵니다.
켜는 방법
워크로드의 Smart Sizing 탭에서 Info 카드의 Settings를 클릭하고 Aggressive recommendations를 활성화합니다. 이 설정은 워크로드 단위입니다.
Realtime Resizing과 함께 사용하면, request가 10분 주기마다 자동으로 사용량을 따라갑니다. aggressive 모드에서는 곡선을 촘촘히 따라갈 수 있도록 두 가지 제한도 완화됩니다:
- 더 낮은 추천 하한: CPU 추천 값은 표준 하한인 0.1 core 대신 0.01 core까지 내려갈 수 있습니다. 메모리 하한은 컨테이너 런타임의 최소값인 12 MiB로 그대로 유지됩니다.
- 더 가벼운 스킵 임계값: priority 비율 검사가 비활성화되고, (50 mCPU / 64 MiB 대신) 10 mCPU 또는 10 MiB부터 변경 사항이 적용됩니다.
언제 사용하고, 언제 사용하지 말아야 하는지
| 적합한 경우 | 적합하지 않은 경우 |
|---|---|
| 비용 절감이 주된 목표인 경우 | 갑작스러운 스파이크를 반드시 흡수해야 하는, 신뢰성이 중요한 워크로드 |
| 안정적이고 예측 가능한 부하 곡선 | 트래픽이 튀는 경우: 1시간 창은 직전 스파이크를 금방 잊어버립니다 |
| Dev / staging 환경 | 시작 시점에 높은 리소스가 필요한 앱 (예: JVM warm-up): 조용한 시간대에는 편안하게 부팅하기엔 너무 작은 추천 값이 나옵니다 |
| 짧은 스로틀링 정도는 감수할 수 있는 워크로드 | OOMKill이 곧 장애인 워크로드 |
모든 워크로드에 Aggressive Recommendations를 적용하는 것은 권장하지 않습니다. 최근 부하에 더 빠르게 반응하지만, 기본 7일 이상 분석보다 태생적으로 덜 안정적입니다. 필요한 워크로드에는 보호용 버퍼와 최소 범위를 유지하세요.
HPA와 Autopilot 워크로드를 위한 권장 패턴
HPA와 Autopilot 워크로드는 Realtime Resizing을 사용할 수 없지만, Aggressive Recommendations를 이용하면 Pod당 기준값을 깔끔하게 찾을 수 있습니다:
- HPA / Autopilot을 끈 상태에서 Aggressive Recommendations를 활성화하고 최소로 추천되는 request/limit을 관찰합니다.
- 그 기준값으로 CPU와 메모리 request(필요하면 limit도)를 수동으로 설정합니다.
- HPA나 Autopilot을 다시 켜서, 트래픽에 맞춰 Pod 개수를 스케일링하도록 맡깁니다.
수직 사이징은 Smart Sizing이 한 번에 처리하고, 부하 변화는 수평 스케일링이 담당합니다. 같은 워크로드에 realtime resizing과 오토스케일러를 동시에 돌리는 대신 이렇게 역할을 나눕니다.