카카오, Ingress Nginx Controller의 Prometheus Metric 병목 원인 분석
·2025.01.17 00:00
핵심 내용
Go의 handleMessages 함수 처리 지연으로 Goroutine이 누적되어 메모리 사용량이 급증하는 현상을 확인했다.
1 / 10
자세히 보기
카카오 광고 추천팀이 Ingress Nginx Controller에서 발생한 Prometheus 메트릭 수집 실패와 메모리 급증 문제를 분석했다. 트래픽이 높은 피크 시간대에 서버는 정상 작동했으나 메트릭 데이터는 수집되지 않는 '메트릭 유실' 현상이 발생했다. 분석 결과, Nginx에서 Controller로 메트릭을 전송하는 Unix Socket 경로에서 병목이 발생했으며, Go 언어로 구현된 Controller의 handleMessages 함수가 트래픽 증가에 따라 처리 속도가 느려져 Goroutine이 계속 누적되는 것이 메모리 급증의 주요 원인으로 지목되었다. 이는 1부 내용으로, 구체적인 해결 방법은 2부에서 다룬다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.