목록으로
'언젠가 읽기' 컨텐츠는 논문이나 영문 컨텐츠 등 언젠가 읽으려고 즐겨찾기 하고선 읽지 않고 계속 미룰만한 컨텐츠를 읽고 요약하거나 소개합니다.

엔진엑스 인그레스 컨트롤러의 프로메테우스 지표 병목 현상: 원인 분석과 해결 (1부) - tech.ka

언젠가 읽기
2025. 1. 31. PM 2:00:31

Ingress Nginx Controller의 Prometheus Metric 병목 현상: 원인 분석과 해결 (1부)

개요

  • Ingress Nginx Controller에서 Prometheus Metrics 수집 시 발생하는 병목 현상을 경험했다.
  • 이 문제는 서비스의 성능 저하와 응답 지연을 초래했다.
  • 문제의 원인을 분석하고 해결하기 위한 과정을 공유한다.

문제 상황

  • 타게팅 광고 서빙 시스템에서 Ingress Nginx Controller를 사용 중이었다.
  • 서비스 지표 수집을 위해 Prometheus Metrics를 활성화했다.
  • 트래픽 증가 시 Ingress의 응답 시간이 급격히 상승하는 문제가 발생했다.

원인 분석

Prometheus Metrics 엔드포인트의 과부하

  • /metrics 엔드포인트에 대한 과도한 스크래핑 요청이 있었다.
  • Prometheus 서버가 Metrics를 수집하기 위해 일정 주기로 요청을 보내는데, 대상이 되는 Ingress Nginx Controller 인스턴스가 많았다.
  • Metrics 수집에 필요한 리소스 소비로 인해 본래의 트래픽 처리가 지연되었다.

Nginx Worker 프로세스의 한계

  • Nginx는 기본적으로 이벤트 루프 기반의 단일 스레드 워커 프로세스를 사용한다.
  • Metrics 수집에 대한 처리도 동일한 워커 프로세스에서 수행되어 리소스 경쟁이 발생했다.

해결 방안

Metrics 수집 주기 조정

  • Prometheus의 스크래핑 주기를 늘려 Metrics 요청의 빈도를 낮췄다.

Metrics 전용 엔드포인트 분리

  • Metrics 수집을 위한 전용 Ingress 또는 서비스로 분리하여 본래 트래픽과 격리했다.

Nginx 설정 최적화

  • 워커 프로세스의 수를 증가시켜 병렬 처리가 가능하도록 설정했다.
  • Metrics 엔드포인트에 대한 제한을 설정하여 과도한 접근을 방지했다.

함께 읽으면 좋은 참고 자료

  • "Kubernetes에서의 Ingress Nginx 성능 최적화 방법"
  • "Prometheus Metrics 수집 시 발생하는 성능 이슈와 해결책"
  • "Nginx의 아키텍처와 워커 프로세스 관리"

푸딩캠프 뉴스레터를 구독하면 학습과 성장, 기술에 관해 요약된 컨텐츠를 매주 편하게 받아보실 수 있습니다.