본문으로 건너뛰기

NVIDIA GPU 지원

와탭 쿠버네티스 에이전트의 GPU 메트릭스 수집 방법

와탭 쿠버네티스 노드 에이전트는 데이터 센터 GPU 관리자(DCGM) Exporter를 사용하여 NVIDIA GPU의 성능 메트릭을 수집하고 모니터링합니다. 해당 과정은 사이드카(Sidecar) 패턴을 활용하여 구성됩니다.

  • 사이드카 패턴

    DCGM Exporter는 주 애플리케이션 컨테이너와 함께 동일한 Pod 내에서 실행되는 보조 컨테이너로 설정됩니다. 이 사이드카 패턴은 DCGM Exporter가 GPU 상태 정보를 효율적으로 수집할 수 있도록 돕습니다.

  • DCGM Exporter

    dcgm-exporter 컨테이너는 NVIDIA의 데이터 센터 GPU 관리자(DCGM)를 통해 GPU의 상태와 성능 관련 지표를 수집합니다.

  • 메트릭 수집 및 전송

    whatap-node-agent 컨테이너는 dcgm-exporter의 HTTP 엔드포인트를 통해 GPU 메트릭을 요청하고 이를 수집합니다.

    노트

    dcgm-exporter의 HTTP 엔드포인트는 보통 포트 9400을 사용합니다.

수집 범위

와탭 쿠버네티스 에이전트는 노드에 배포된 각 컨테이너의 GPU 사용량을 효율적으로 모니터링하고 관리하는데 중점을 두고 있습니다.

  • 컨테이너

    와탭 노드 에이전트는 각 컨테이너의 GPU 메트릭을 수집하여 각 컨테이너가 GPU 자원을 얼마나 사용하는지를 명확히 파악할 수 있도록 합니다. 이 데이터는 리소스 할당을 최적화하는 데 유용합니다.

  • 노드

    노드 전체의 GPU 사용량을 모니터링하여 노드 전반의 GPU 리소스 활용도를 평가할 수 있습니다. 이 정보는 클러스터의 전반적인 성능 분석에 유용하지만, 개별 프로세스 수준의 세부 정보는 제공되지 않습니다.

수집 메트릭스

다음은 DCGM Exporter를 통해 수집되는 주요 GPU 메트릭스 항목들입니다.

노드 수준 메트릭스

쿠버네티스 노드 전체에서 GPU 상태 모니터링에 중점을 두고 있습니다. 이 메트릭스는 클러스터의 전반적인 GPU 활용도를 평가하는 데 유용합니다.

  • DCGM_FI_DEV_GPU_UTIL Gauge

    • GPU 사용률을 나타내는 메트릭으로, 현재 GPU의 사용량을 백분율로 표시합니다.

    • 노드 전체에서 GPU의 사용 현황을 실시간으로 모니터링하여 리소스의 적절한 배분과 부하 분산을 돕습니다.

  • DCGM_FI_DEV_MEM_COPY_UTIL Gauge

    • 메모리 사용률을 나타내는 메트릭으로, GPU 메모리 대역폭 사용량을 백분율로 제공합니다.

    • GPU 메모리 자원의 사용량을 모니터링하여 메모리 대역폭 병목 현상을 감지하고 해결하는 데 도움이 됩니다.

  • DCGM_FI_DEV_POWER_USAGE Gauge

    • 현재 GPU의 전력 소비량을 와트(W) 단위로 표시하는 메트릭입니다.

    • GPU 전력 사용 현황을 모니터링하여 전력 효율성을 개선하고 운영 비용을 최적화할 수 있습니다.

  • DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION Counter

    • 시스템 부팅 이후 누적된 GPU의 총 에너지 소비량을 밀리줄(mJ) 단위로 측정합니다.

    • 노드 전체의 에너지 사용량을 추적하여 장기적인 에너지 효율성 개선 및 운영 전략을 수립할 수 있습니다.

컨테이너 수준 메트릭스

개별 컨테이너 내에서 GPU 자원 사용 상태 모니터링에 중점을 두고 있습니다. 각 컨테이너가 할당된 리소스를 효과적으로 사용하는지를 평가합니다.

  • DCGM_FI_DEV_FB_FREE 및 DCGM_FI_DEV_FB_USED Gauge

    • 사용 가능한 프레임버퍼(Frame Buffer) 메모리 용량과 현재 사용 중인 프레임버퍼 메모리 용량을 미비(MiB) 단위로 나타냅니다.

    • 각 컨테이너의 GPU 메모리 사용 상태를 모니터링하여, 메모리 자원 할당을 최적화하고 자원 부족으로 인한 성능 저하를 방지할 수 있습니다.

  • DCGM_FI_DEV_SM_CLOCK 및 DCGM_FI_DEV_MEM_CLOCK Gauge

    • 각 GPU의 스트리밍 멀티프로세서(SM) 클럭 주파수와 메모리 클럭 주파수를 MHz 단위로 나타냅니다.

    • 각 컨테이너의 GPU 클럭 속도를 모니터링하여 성능 최적화 및 적절한 주파수 설정을 지원합니다. 이를 통해 각 애플리케이션의 요구에 맞는 성능을 제공할 수 있습니다.

  • DCGM_FI_DEV_GPU_TEMP 및 DCGM_FI_DEV_MEMORY_TEMP Gauge

    • 각 GPU의 온도와 메모리 온도를 섭씨(C) 단위로 측정합니다.

    • 각 컨테이너의 GPU 온도를 모니터링하여 과열을 방지하고, 안정적인 운영을 보장할 수 있습니다. 이를 통해 시스템의 수명을 연장하고 다운타임을 줄일 수 있습니다.