附註:

使用 NVIDIA 資料中心 GPU Manager、Grafana 和 Prometheus 在 Oracle Cloud Infrastructure 監控 GPU 超級叢集

簡介

今年稍早,Oracle Cloud Infrastructure (OCI) NVIDIA GPU 超級叢集上的人工智慧 (AI) 和機器學習 (ML)。對許多大規模執行這些 GPU 工作負載類型的客戶來說,監控是一項挑戰。OCI 具備優異的監控解決方案 (包括部分 GPU 執行處理度量),但與 OCI Superclusters 的 GPU 度量更緊密整合,是我們客戶感興趣的主題。

設定 GPU 監督功能是直線的程序。如果您是客戶已使用 HPC 市集堆疊,則該部署映像檔中已包含大部分工具。

目標

必要條件

請確定每個 GPU 執行處理都已安裝這些先決條件。監控解決方案接著需要安裝和執行 NVIDIA Data Center GPU Manager (DCGM) 匯出器 Docker 容器、使用 Prometheus 擷取輸出度量,最後才在 Grafana 中顯示資料。

作業 1:安裝並執行 NVIDIA DCGM 匯出器 Docker 容器

使用 docker 命令完成 NVIDIA DCGM 容器的安裝和執行。

這兩種方法都需要 GPU 節點具備網際網路存取權限 (NAT 閘道最常見),才能下載和執行 DCGM 匯出器容器。此容器必須在受監督的每個 GPU 節點上執行。執行之後,下一步是在個別的運算節點上設定 Prometheus,理想是從邊緣網路直接存取。

作業 2:安裝 Prometheus

Prometheus 的安裝是透過下載和解壓縮最新版本來完成。若要在有更新版本可用時更新此語法,請視需要變更版本編號。

  1. 擷取套裝程式。

    wget https://github.com/prometheus/prometheus/releases/download/v2.37.9/prometheus-2.37.9.linux-amd64.tar.gz -O /opt/prometheus-2.37.9.linux-amd64.tar.gz

  2. 變更目錄。

    cd /opt

  3. 擷取套件。

    tar -zxvf prometheus-2.37.9.linux-amd64.tar.gz

  4. 解壓縮後,必須產生 Prometheus 組態 YAML,才能從 GPU 節點擷取 DCGM 資料。從標準標頭開始 - 在這種情況下,我們正在部署至 /etc/prometheus/prometheus.yaml

    sudo mkdir -p /etc/prometheus

  5. 使用您選擇的編輯器編輯 YAML 檔 。標頭區段包括標準全域組態。

    # my global config
    global:
      scrape_interval: 5s # Set the scrape interval to every 5 seconds. Default is every 1 minute.
      evaluation_interval: 30s # Evaluate rules every 30 seconds. The default is every 1 minute.
      # scrape_timeout is set to the global default (10s).
    # Alertmanager configuration
    alerting:
      alertmanagers:
      - static_configs:
        - targets:
        # - alertmanager:9093
    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - "first_rules.yml"
      # - "second_rules.yml"
    # A scrape configuration containing exactly one endpoint to scrape:
    
  6. 現在若要擷取目標,必須插入每個 GPU 主機的項目。這可以透過程式設計方式產生,且必須使用主機 IP 或可解析的 DNS 主機名稱。

    scrape_configs:
      - job_name: 'gpu'
        scrape_interval: 5s
        static_configs:
          - targets: ['host1_ip:9400','host2_ip:9400', … ,'host64_ip:9400']
    

    注意:此文章的目標區段縮寫,此處使用的 "host1_ip" 應該是每個 GPU 主機的可解析 IP 或主機名稱。

  7. 放置此檔案之後,需要建立 SystemD 程序檔,如此才能啟動、管理和保存 Prometheus 服務。使用您的選擇編輯器 (root 或 sudo) 編輯 /lib/systemd/system/prometheus.service

    [Unit]
    Description=Prometheus daemon
    After=network.target
    [Service]
    User=root
    Group=root
    Type=simple
    ExecStart=/opt/prometheus-2.37.9.linux-amd64/prometheus
    --config.file=/etc/prometheus/prometheus.yml \
      --storage.tsdb.path=/data \
      --storage.tsdb.max-block-duration=2h \
      --storage.tsdb.min-block-duration=2h \
      --web.enable-lifec
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
    
  8. 最後,必須建立資料目錄。此處應使用區塊儲存磁碟區,為 Prometheus 資料提供專屬的彈性儲存。在上述範例中,目標是在運算節點上掛載至 /data 的區塊磁碟區,就像 storage.tsdb.path 指令一樣。

  9. 所有 Prometheus 片段現在都已就緒,且可啟動服務。

    sudo systemctl start prometheus

  10. 請檢查狀態,確定使用下列命令執行。

    systemctl status prometheus

  11. 檢查資料是否存在。

    ls /data/

作業 3:設定 Grafana 儀表板

此設定的最後一個部分是 Grafana 儀表板。安裝 Grafana 需要啟用 Grafana 軟體儲存庫。如需詳細資訊,請參閱 Grafana 文件

  1. 若為 Oracle Enterprise Linux,請安裝 GPG 金鑰、設定軟體儲存庫,然後為 Grafana 伺服器執行 yum 安裝。

  2. 啟動 Grafana 伺服器並確定 VCN 具有可存取 GUI 的開放連接埠。如果禁止存取邊緣,則可以使用 SSH 通道。在 TCP 連接埠 3000 上存取伺服器的方式。

    sudo systemctl start grafana-server

  3. 登入 Grafana GUI,在該時間點,管理密碼需要在第一次登入步驟時變更。完成後,瀏覽至資料來源,以將 Prometheus 設定為資料來源。

    image1

  4. Prometheus 來源項目使用此 localhost:9090 ,此時請選取 [ + 新增資料來源 ]、選取 Prometheus,然後填入 HTTP URL 區段。

    image2

  5. 完成之後,請向下捲動並按一下儲存並測試,然後驗證連線。最後,可以匯入 NVIDIA 的 DCGM 儀表板。瀏覽至儀表板功能表。

    image3

  6. 選擇新建匯入

    image4

  7. 輸入 NVIDIA DCGM 匯出器儀表板 ID "12239",按一下載入 (Load) ,從下拉式清單中選取 Prometheus 作為資料來源,然後按一下匯入 (Import)

    image5

    image6

匯入 NVIDIA DCGM 儀表板之後,將會顯示 Prometheus 目標的叢集主機 GPU 資訊。立即可用的儀表板包含指定日期 / 時間範圍的寶貴資訊。

範例:

對於希望在 OCI GPU 超級叢集上執行 AI/ML 工作負載時更深入洞察基礎架構的客戶而言,這項監控資料非常寶貴。如果您有需要超快速叢集網路的 AI/ML GPU 工作負載,請以比其他雲端提供者更實惠的價格,考慮採用 OCI 作為業界頂尖的擴展性。

確認

作者 - Zachary Smith (OCI IaaS - 產品與客戶互動技術人員主要成員)

其他學習資源

探索 docs.oracle.com/learn 的其他實驗室,或者存取更多 Oracle Learning YouTube 頻道上的免費學習內容。此外,請瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning 檔案總管。

如需產品文件,請造訪 Oracle Help Center