Hướng dẫnAI Translated Content

Bảng điều khiển Giám sát GPU

Đội ngũ Float16
4 min read
Bảng điều khiển Giám sát GPU

Trong bài viết này, tôi sẽ hướng dẫn mọi người tạo bảng điều khiển giám sát GPU với Grafana, bắt đầu từ cách cài đặt Grafana cho đến cấu hình nó để nhận các chỉ số hiệu suất GPU bằng cách sử dụng dcgm-exporter thông qua Prometheus cho đến khi chúng ta có thể tạo bảng điều khiển để xem các hoạt động GPU khác nhau. Chúng ta sẽ demo mọi thứ với Docker.

Nếu mọi người đã chuẩn bị máy của mình, hãy bắt đầu thôi!

Tạo Docker Network

Chúng ta sẽ để mỗi container được tạo trong ví dụ này nằm trên cùng một mạng để chúng có thể gọi nhau thông qua tên container.

docker network create monitor

Cài đặt Grafana

Tạo một thư mục để lưu trữ dữ liệu Grafana và đặt quyền

mkdir grafana-data
chown -R 472:472 grafana-data

Chạy Grafana với Docker

docker run -d -p 3000:3000 --name=grafana --network monitor \
      -v "./grafana-data:/var/lib/grafana" \
      --user 472 \
      grafana/grafana-enterprise

Chúng ta có thể truy cập nó qua http://localhost:3000 với user: admin và password: admin. Sau đó, đặt mật khẩu mới.

Cài đặt DCGM Exporter

DCGM Exporter (viết tắt của Data Center GPU Manager Exporter) là một công cụ từ NVIDIA được sử dụng để trích xuất thông tin trạng thái GPU và xuất nó ở định dạng có thể dễ dàng sử dụng với các hệ thống giám sát như Prometheus.

Cài đặt có thể được thực hiện bằng cách chạy qua Docker.

docker run -itd --name dcgm-exporter \
--gpus all \
--runtime=nvidia \
--cap-add SYS_ADMIN \
--network monitor \
-p 9400:9400 nvcr.io/nvidia/k8s/dcgm-exporter:4.2.3-4.1.1-ubuntu22.04

Dịch vụ là một API trả về dữ liệu GPU. Kiểm tra với:

curl http://localhost:9400/metrics

phản hồi dcgm-exporter

Cài đặt Prometheus

Tạo một thư mục để lưu trữ tệp cấu hình

mkdir prometheus

Tạo prometheus.yml trong thư mục vừa tạo

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s
    static_configs:
      - targets: ['dcgm-exporter:9400']

Tạo Prometheus với Docker

docker run -itd \
--name=prometheus \
--network monitor \
-p 9090:9090 \
-v ./prometheus:/etc/prometheus \
--user root \
prom/prometheus

Cấu hình Grafana Datasource

Trong giao diện Grafana, đi đến Connections > Add new connection và chọn Data source là Prometheus

Sau đó chọn Add new data source

Khi vào trang cài đặt, trong Connection, nhập URL máy chủ Prometheus là http://prometheus:9090 sau đó nhấp save & test để tạo data source.

Tạo Grafana Dashboard

Trong bước này, chúng ta sẽ không tự tạo Dashboard mà sẽ sử dụng template mà Nvidia đã tạo từ https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/

Trong Grafana, đi đến Dashboard, chọn Create Dashboard, sau đó chọn Import dashboard

Trong trường dashboard URL or ID, nhập 12239 là id của dashboard nvidia, sau đó nhấp load và bạn sẽ đến trang Import dashboard

Trong trường Prometheus ở dưới cùng, chọn prometheus data source chúng ta đã tạo, sau đó nhấp Import

GPU Dashboard

Và đó là nó! Bây giờ chúng ta có GPU Dashboard để giám sát các chỉ số khác nhau.

Tóm tắt

Bài viết này dành cho những người đã sử dụng các công cụ này - tôi tin rằng bạn có thể dễ dàng điều chỉnh nó để nhận dữ liệu từ DCGM-Exporter. Nhưng đối với người mới bắt đầu, tôi tin rằng bạn có thể làm theo các ví dụ này và sử dụng chúng thành công. Chủ yếu, tôi chỉ muốn giới thiệu công cụ DCGM-Exporter giúp trích xuất các GPU Metrics khác nhau khá toàn diện, vì vậy đây là dịch vụ tôi muốn giới thiệu cho mục đích này.