본문으로 건너뛰기

[Loki] Helm 차트 Memcached CPU 리소스 오버라이드 지원 추가

PR 링크: grafana/loki#20767 상태: Merged | 변경: +35 / -1

들어가며

Grafana Loki Helm 차트에는 allocatedMemory 값을 설정하면 Memcached 애플리케이션 설정과 Pod 메모리 request를 자동으로 계산해주는 모드가 있습니다. 그런데 이 모드에서 CPU request는 항상 500m으로 하드코딩되어 있어, 환경에 맞게 조절할 수 없었습니다. resources 블록 전체를 오버라이드하면 가능하지만, 메모리에 대한 1.2배 헤드룸 계산 로직까지 잃게 됩니다.

핵심 코드 분석

allocatedCPU 설정 추가

Before (memcached-statefulset.tpl):

resources:
  limits:
    memory: {{ $requestMemory }}Mi
  requests:
    cpu: 500m
    memory: {{ $requestMemory }}Mi

After:

resources:
  limits:
    memory: {{ $requestMemory }}Mi
  requests:
    cpu: {{ .allocatedCPU }}
    memory: {{ $requestMemory }}Mi

values.yaml 기본값:

chunksCache:
  allocatedMemory: 8192
  allocatedCPU: 500m  # 신규 추가

resultsCache:
  allocatedMemory: 1024
  allocatedCPU: 500m  # 신규 추가

왜 이게 좋은가

  1. 세밀한 리소스 제어: 메모리 자동 계산의 이점을 유지하면서 CPU만 별도로 조절할 수 있습니다.
  2. 하위 호환성 유지: 기본값이 기존과 동일한 500m이므로, 업그레이드 시 동작 변경이 없습니다.
  3. 비용 최적화: Memcached는 주로 메모리 바운드이므로, CPU를 낮추면 노드 패킹 효율을 높여 인프라 비용을 절감할 수 있습니다.
  4. 3개 캐시 모두 지원: chunksCache, chunksCache.l2, resultsCache 모두 allocatedCPU를 지원합니다.

참고 자료

댓글

관련 포스트

PR Analysis 의 다른글