※ 이전 글: On-Prem AI 서비스-(1) dcgm-exporter 구성

개인 장비에서 다양한 AI 모델을 시험하다 보니 GPU 자원을 얼마나 사용하는지 소비 전력이나 온도 상승은 어느 정도인지 GPU 모니터링 필요성이 느껴졌습니다. 이에 간단히 구성 가능한 방식으로 NVIDIA 공식 + 오픈소스 기반으로 GPU 사용량 모니터링을 하는 시스템을 구성해 보았습니다. nvidia의 DCGM(DataCenter GPU Manager), Prometheus (GPU Metric 수집), Grafana (Dashboard) 구성입니다. ChatGPT 이용하여 시험/설정한 내용을 기술하였습니다.

AD

모니터링 서버 설정

작업 폴더 생성

$ sudo mkdir -p /opt/gpu-monitoring/prometheus
$ sudo mkdir -p /opt/gpu-monitoring/grafana
$ cd /opt/gpu-monitoring

prometheus/prometheus.yml 생성

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  # Prometheus 자기 자신
  - job_name: 'prometheus'
    static_configs:
      - targets: ['prometheus:9090']

  # GPU 서버의 DCGM Exporter
  - job_name: 'gpu-dcgm'
    metrics_path: /metrics
    static_configs:
      - targets:
          - '<GPU_SERVER_IP>:9400'   # <-- 여기 GPU 서버 IP로 변경

prometheus data와 grafana data를 위한 docker volume 생성

$ docker volume create prometheus_data
$ docker volume create grafana_data

docker-compose.yml (Prometheus + Grafana) 작성

  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: unless-stopped
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
      - prometheus_data:/prometheus
    command:
      - "--config.file=/etc/prometheus/prometheus.yml"
      - "--storage.tsdb.path=/prometheus"
      - "--web.enable-lifecycle"
    ports:
      - "9090:9090"
    networks:
      - monitoring

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
    volumes:
      - grafana_data:/var/lib/grafana
    ports:
      - "3000:3000"
    depends_on:
      - prometheus
    networks:
      - monitoring

networks:
  monitoring:
    driver: bridge

volumes:
  prometheus_data:
  grafana_data:

Prometheus에서 GPU metric 데이터가 보이는지 확인하기 위해 browser에서 localhost:9090 접속해 봅니다. DCGM_FI_DEV_GPU_UTIL 을 검색했을 때, GPU 장비 목록이 보이면 성공입니다.

Grafana GPU 대시보드 구성

Prometheus data source 추가

  1. Data sources > Add data source > Prometheus 선택
  2. URL 에 http://prometheus:9090 입력
  3. Safe & test

NVIDIA DCGM Exporter용 Grafana dashboard import

  1. 좌측 Dashboards+ Import
  2. “Import via grafana.com”에 ID 입력 (예: 12239 또는 15117)
  3. Prometheus 데이터소스 선택
  4. Import

AD

LEAVE A REPLY

Please enter your comment!
Please enter your name here