

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# SageMaker HyperPod 叢集資源監控
<a name="sagemaker-hyperpod-cluster-observability-slurm"></a>

若要在 SageMaker HyperPod 叢集資源和軟體元件中實現全面的可觀測性，請將叢集與 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) 和 [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) 整合。與 Amazon Managed Service for Prometheus 的整合可讓您匯出與 HyperPod 叢集資源相關的指標，進而洞悉其效能、使用率和運作狀態。與 Amazon Managed Grafana 的整合可透過各種 Grafana 儀表板啟用這些指標的視覺化，這些儀表板提供直覺式界面，用於監控和分析叢集的行為。透過利用這些服務，您可以集中且統一地檢視 HyperPod 叢集，促進分散式訓練工作負載的主動監控、故障診斷和最佳化。

**提示**  
若要尋找實際範例和解決方案，另請參閱 [SageMaker HyperPod 工作坊](https://catalog.workshops.aws/sagemaker-hyperpod)。

![\[使用 Amazon Managed Service for Prometheus 和 Amazon Managed Grafana 設定 SageMaker HyperPod 的概觀。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/hyperpod-observability-architecture.png)


圖：此架構圖顯示使用 Amazon Managed Service for Prometheus 和 Amazon Managed Grafana 設定 SageMaker HyperPod 的概觀。

繼續下列主題，以設定 SageMaker HyperPod 叢集可觀測性。

**Topics**
+ [SageMaker HyperPod 叢集可觀測性的先決條件](sagemaker-hyperpod-cluster-observability-slurm-prerequisites.md)
+ [在您的 HyperPod 叢集上安裝指標匯出工具套件](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md)
+ [在 HyperPod 叢集主節點上驗證 Prometheus 設定](sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup.md)
+ [設定 Amazon Managed Grafana 工作區](sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws.md)
+ [匯出的指標參考](sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference.md)
+ [Amazon SageMaker HyperPod Slurm 指標](smcluster-slurm-metrics.md)

# SageMaker HyperPod 叢集可觀測性的先決條件
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites"></a>

在繼續執行[在您的 HyperPod 叢集上安裝指標匯出工具套件](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md)的步驟之前，請確定符合下列先決條件。

## 啟用 IAM Identity Center
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-iam-id-center"></a>

若要啟用 SageMaker HyperPod 叢集的可觀測性，您必須先啟用 IAM Identity Center。這是部署設定 Amazon Managed Grafana 工作區和 Amazon Managed Service for Prometheus CloudFormation 的堆疊的先決條件。這兩種服務也需要 IAM Identity Center 進行驗證和授權，以確保使用者可以安全存取和管理監控基礎設施。

如需啟用 IAM Identity Center 的詳細指引，請參閱《AWS IAM Identity Center 使用者指南》**中的[啟用 IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) 一節。

成功啟用 IAM Identity Center 後，請設定一個使用者帳戶，其將在下列整個組態程序中擔任管理使用者。

## 建立和部署 CloudFormation 堆疊以實現 SageMaker HyperPod 可觀測性
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-cloudformation-stack"></a>

為 SageMaker HyperPod 可觀測性建立和部署 CloudFormation 堆疊，以使用 Amazon Managed Service for Prometheus 和 Amazon Managed Grafana 即時監控 HyperPod 叢集指標。若要部署堆疊，請注意，您也應該事先啟用 [IAM Identity Center](https://console.aws.amazon.com/singlesignon)。

使用範例 CloudFormation 指令碼 [https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/4.prometheus-grafana/cluster-observability.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/4.prometheus-grafana/cluster-observability.yaml)，協助您設定建立 HyperPod 叢集可觀測性堆疊所需的 Amazon VPC 子網路、Amazon FSx for Lustre 檔案系統、Amazon S3 儲存貯體和 IAM 角色。

# 在您的 HyperPod 叢集上安裝指標匯出工具套件
<a name="sagemaker-hyperpod-cluster-observability-slurm-install-exporters"></a>

在 SageMaker HyperPod 團隊提供的[基本組態生命週期指令碼](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md)中，也包含安裝各種指標匯出工具套件。若要啟用安裝步驟，您唯一需要做的就是在 [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py) 檔案中設定參數 `enable_observability=True`。生命週期指令碼旨在使用下列開放原始碼指標匯出工具套件來引導您的叢集。


|  |  |  | 
| --- |--- |--- |
| 名稱 | 指令碼部署目標節點 | 匯出工具描述 | 
| [適用於 Prometheus 的 Slurm 匯出工具](https://github.com/vpenso/prometheus-slurm-exporter) | 主 (控制器) 節點 |  匯出 Slurm 會計指標。  | 
|  [Elastic Fabric Adapter (EFA) 節點匯出工具](https://github.com/aws-samples/awsome-distributed-training/tree/main/4.validation_and_observability/3.efa-node-exporter)  |  運算節點  |  從叢集節點和 EFA 匯出指標。套件是 [Prometheus 節點匯出工具](https://github.com/prometheus/node_exporter)的分支。  | 
|  [NVIDIA 資料中心 GPU 管理 (DCGM) 匯出工具](https://github.com/NVIDIA/dcgm-exporter)  | 運算節點 |  匯出有關 NVIDIA GPU 運作狀態和效能的 NVIDIA DCGM 指標。  | 

使用 [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py) 檔案中的 `enable_observability=True`，可在 [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py) 指令碼中啟用下列安裝步驟。

```
# Install metric exporting software and Prometheus for observability
if Config.enable_observability:
    if node_type == SlurmNodeType.COMPUTE_NODE:
        ExecuteBashScript("./utils/install_docker.sh").run()
        ExecuteBashScript("./utils/install_dcgm_exporter.sh").run()
        ExecuteBashScript("./utils/install_efa_node_exporter.sh").run()

    if node_type == SlurmNodeType.HEAD_NODE:
        wait_for_scontrol()
        ExecuteBashScript("./utils/install_docker.sh").run()
        ExecuteBashScript("./utils/install_slurm_exporter.sh").run()
        ExecuteBashScript("./utils/install_prometheus.sh").run()
```

在運算節點上，此指令碼會安裝 NVIDIA 資料中心 GPU 管理 (DCGM) 匯出工具和 Elastic Fabric Adapter (EFA) 節點匯出工具。DCGM 匯出工具是 Prometheus 的匯出工具，可從 NVIDIA GPU 收集指標，進而監控 GPU 用量、效能和運作狀態。另一方面，EFA 節點匯出工具會收集與 EFA 網路介面相關的指標，這對於 HPC 叢集中的低延遲和高頻寬通訊至關重要。

在主節點上，指令碼會安裝適用於 Prometheus 的 Slurm 匯出工具和 [Prometheus 開放原始碼軟體](https://prometheus.io/docs/introduction/overview/)。Slurm 匯出工具會提供 Prometheus，其中具有與 Slurm 任務、分割區和節點狀態相關的指標。

請注意，生命週期指令碼旨在將所有匯出工具套件安裝為 Docker 容器，因此 Docker 套件也應該同時安裝在主節點和運算節點上。這些元件的指令碼可方便地在 *Awsome 分散式訓練 GitHub 儲存庫*的 [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils) 資料夾中提供。

在您成功設定了與匯出工具套件一起安裝的 HyperPod 叢集之後，請繼續下一個主題以完成設定 Amazon Managed Service for Prometheus 和 Amazon Managed Grafana。

# 在 HyperPod 叢集主節點上驗證 Prometheus 設定
<a name="sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup"></a>

在您成功設定了與匯出工具套件一起安裝的 HyperPod 叢集之後，請檢查是否已在 HyperPod 叢集主節點上正確設定 Prometheus。

1. 連接至您的叢集主節點。如需存取節點的指示，請參閱[存取您的 SageMaker HyperPod 叢集節點](sagemaker-hyperpod-run-jobs-slurm-access-nodes.md)。

1. 執行下列命令，以驗證生命週期指令碼 `install_prometheus.sh` 建立的 Prometheus 組態和服務檔案是否正在控制器節點上執行。輸出應將作用中狀態顯示為 **active (running)**。

   ```
   $ sudo systemctl status prometheus
   • prometheus service - Prometheus Exporter
   Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; preset:disabled)
   Active: active (running) since DAY YYYY-MM-DD HH:MM:SS UTC; Ss ago
   Main PID: 12345 (prometheus)
   Tasks: 7 (limit: 9281)
   Memory: 35M
   CPU: 234ms
   CGroup: /system.slice/prometheus.service
           -12345 /usr/bin/prometheus--config.file=/etc/prometheus/prometheus.yml
   ```

1. 驗證 Prometheus 組態檔案，如下所示。輸出必須類似於以下內容，其中三個匯出工具已設定有正確的運算節點 IP 位址。

   ```
   $ cat /etc/prometheus/prometheus.yml
   global:
     scrape_interval: 15s
     evaluation_interval: 15s
     scrape_timeout: 15s
   
   scrape_configs:
     - job_name: 'slurm_exporter'
       static_configs:
         - targets:
             - 'localhost:8080'
     - job_name: 'dcgm_exporter'
       static_configs:
         - targets:
             - '<ComputeNodeIP>:9400'
             - '<ComputeNodeIP>:9400'
     - job_name: 'efa_node_exporter'
       static_configs:
         - targets:
             - '<ComputeNodeIP>:9100'
             - '<ComputeNodeIP>:9100'
   
   remote_write:
     - url: <AMPReoteWriteURL>
       queue_config:
         max_samples_per_send: 1000
         max_shards: 200
         capacity: 2500
       sigv4:
         region: <Region>
   ```

1. 若要測試 Prometheus 是否正確匯出 Slurm、DCGM 和 EFA 指標，請在主節點的連接埠 `:9090` 上針對 Prometheus 執行下列 `curl` 命令。

   ```
   $ curl -s http://localhost:9090/metrics | grep -E 'slurm|dcgm|efa'
   ```

   使用透過 Prometheus 遠端寫入組態從控制器節點匯出至 Amazon Managed Service for Prometheus 工作區的指標，您可以繼續進行下一個主題，設定 Amazon Managed Grafana 儀表板以顯示指標。

# 設定 Amazon Managed Grafana 工作區
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws"></a>

建立新的 Amazon Managed Grafana 工作區，或使用 Amazon Managed Service for Prometheus 做為資料來源更新現有的 Amazon Managed Grafana 工作區。

**Topics**
+ [建立 Grafana 工作區並將 Amazon Managed Service for Prometheus 設定為資料來源](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create)
+ [開啟 Grafana 工作區並完成資料來源的設定](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source)
+ [匯入開放原始碼 Grafana 儀表板](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards)

## 建立 Grafana 工作區並將 Amazon Managed Service for Prometheus 設定為資料來源
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create"></a>

若要從 Amazon Managed Service for Prometheus 視覺化指標，請建立 Amazon Managed Grafana 工作區，並將其設定為使用 Amazon Managed Service for Prometheus 作為資料來源。

1. 若要建立 Grafana 工作區，請遵循《Amazon Managed Service for Prometheus 使用者指南》**中的[建立工作區](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html#creating-workspace)中的指示。

   1. 在步驟 13 中，選取 Amazon Managed Service for Prometheus 作為資料來源。

   1. 在步驟 17 中，您可以在 IAM Identity Center 中新增管理員使用者以及其他使用者。

如需詳細資訊，另請參閱下列資源。
+ 《Amazon Managed Service for Prometheus 使用者指南》**中的[設定 Amazon Managed Grafana 以與 Amazon Managed Service for Prometheus 搭配使用](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-amg.html)
+ 《[Amazon Managed Grafana 使用者指南》中的使用 AWS 資料來源組態將 Amazon Managed Service for Prometheus 新增為資料來源](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html) **

## 開啟 Grafana 工作區並完成資料來源的設定
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source"></a>

在您成功建立或更新了 Amazon Managed Grafana 工作區之後，請選取工作區 URL 以開啟工作區。這會提示您輸入您在 IAM Identity Center 中設定的使用者名稱和密碼。您應該使用管理員使用者登入，以完成工作區的設定。

1. 在工作區**首頁**中，選擇**應用程式**、**AWS 資料來源**和**資料來源**。

1. 在**資料來源**頁面中，選擇**資料來源**索引標籤。

1. 針對**服務**，選擇 Amazon Managed Service for Prometheus。

1. 在**瀏覽和佈建資料來源**區段中，選擇您佈建 Amazon Managed Service for Prometheus 工作區 AWS 的區域。

1. 從所選區域中的資料來源清單中，為 Amazon Managed Service for Prometheus 的資料來源選擇資料來源。確定您檢查已為 HyperPod 可觀測性堆疊設定的 Amazon Managed Service for Prometheus 工作區的資源 ID 和資源別名。

## 匯入開放原始碼 Grafana 儀表板
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards"></a>

成功使用了 Amazon Managed Service for Prometheus 作為資料來源來設定 Amazon Managed Grafana 工作區後，您將開始將指標收集至 Prometheus，然後應該開始查看顯示圖表、資訊等的各種儀表板。Grafana 開放原始碼軟體提供各種儀表板，您可以將其匯入至 Amazon Managed Grafana。

**將開放原始碼 Grafana 儀表板匯入至 Amazon Managed Grafana**

1. 在 Amazon Managed Grafana 工作區的**首頁**中，選擇**儀表板**。

1. 選擇 UI 文字為**新增**的下拉式功能表按鈕，然後選取**匯入**。

1. 將 URL 貼至 [Slurm 儀表板](https://grafana.com/grafana/dashboards/4323-slurm-dashboard/)。

   ```
   https://grafana.com/grafana/dashboards/4323-slurm-dashboard/
   ```

1. 選取**載入**。

1. 重複上述步驟以匯入下列儀表板。

   1. [節點匯出工具完整儀表板](https://grafana.com/grafana/dashboards/1860-node-exporter-full/)

      ```
      https://grafana.com/grafana/dashboards/1860-node-exporter-full/
      ```

   1. [NVIDIA DCGM 匯出工具儀表板](https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/)

      ```
      https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/
      ```

   1. [EFA 指標儀表板](https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/)

      ```
      https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/
      ```

   1. [FSx for Lustre 指標儀表板](https://grafana.com/grafana/dashboards/20906-fsx-lustre/)

      ```
      https://grafana.com/grafana/dashboards/20906-fsx-lustre/
      ```

# 匯出的指標參考
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference"></a>

下列各節針對 SageMaker HyperPod 可觀測性成功設定 CloudFormation 堆疊後，提供從 SageMaker HyperPod 匯出至 Amazon Managed Service for Prometheus 的指標完整清單。您可以開始監控 Amazon Managed Grafana 儀表板中視覺化的這些指標。

## Slurm 匯出工具儀表板
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-slurm-exporter"></a>

提供 SageMaker HyperPod 上 Slurm 叢集的視覺化資訊。

**指標類型**
+ **叢集概觀：**顯示節點任務總數及其狀態。
+ **任務指標：**隨時間視覺化任務計數和狀態。
+ **節點指標：**顯示節點狀態、配置和可用資源。
+ **分割區指標：**監控分割區特定的指標，例如 CPU、記憶體和 GPU 使用率。
+ **任務效率：**根據使用的資源計算任務效率。

**指標清單**


| 指標名稱 | Description | 
| --- | --- | 
| slurm\$1job\$1count | Slurm 叢集中的任務總數 | 
| slurm\$1job\$1state\$1count | 每個狀態的任務計數 (例如，執行中、待定、已完成) | 
| slurm\$1node\$1count  | Slurm 叢集中的節點總數 | 
| slurm\$1node\$1state\$1count  | 每個狀態的節點計數 (例如閒置、配置、混合) | 
| slurm\$1partition\$1node\$1count  | 每個分割區中的節點計數 | 
| slurm\$1partition\$1job\$1count  | 每個分割區中的任務計數 | 
| slurm\$1partition\$1alloc\$1cpus  | 每個分割區中配置的 CPU 總數 | 
| slurm\$1partition\$1free\$1cpus  | 每個分割區中可用的 CPU 總數 | 
| slurm\$1partition\$1alloc\$1memory  | 每個分割區中配置的記憶體總數 | 
| slurm\$1partition\$1free\$1memory  | 每個分割區中可用的記憶體總數 | 
| slurm\$1partition\$1alloc\$1gpus  | 每個分割區中配置的 GPU 總數 | 
| slurm\$1partition\$1free\$1gpus  | 每個分割區中可用的 GPU 總數 | 

## 節點匯出工具儀表板
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-node-exporter"></a>

提供 [Prometheus 節點匯出工具](https://github.com/prometheus/node_exporter)從 HyperPod 叢集節點收集的系統指標視覺化資訊。

**指標類型**
+ **系統概觀：**顯示 CPU 負載平均值和記憶體用量。
+ **記憶體指標：**視覺化記憶體使用率，包括總記憶體、可用記憶體和交換空間。
+ **磁碟用量：**監控磁碟空間使用率和可用性。
+ **網路流量：**顯示隨時間接收和傳輸的網路位元組。
+ **檔案系統指標：**分析檔案系統的使用情況和可用性。
+ **磁碟 I/O 指標：**視覺化磁碟讀取和寫入活動。

**指標清單**

如需匯出的指標完整清單，請參閱[節點匯出工具](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default)和 [procfs](https://github.com/prometheus/procfs?tab=readme-ov-file) GitHub 儲存庫。下表顯示指標的子集，這些指標提供系統資源使用率的洞見，例如 CPU 負載、記憶體用量、磁碟空間和網路活動。


| 指標名稱 | Description | 
| --- | --- | 
|  node\$1load1  | 1 分鐘負載平均值 | 
|  node\$1load5  | 5 分鐘負載平均值 | 
|  node\$1load15  | 15 分鐘負載平均值 | 
|  node\$1memory\$1MemTotal  | 總系統記憶體 | 
|  node\$1memory\$1MemFree  | 可用系統記憶體 | 
|  node\$1memory\$1MemAvailable  | 配置至程序的可用記憶體 | 
|  node\$1memory\$1Buffers  | 核心用於緩衝的記憶體 | 
|  node\$1memory\$1Cached  | 核心用於快取檔案系統資料的記憶體 | 
|  node\$1memory\$1SwapTotal  | 可用的交換空間總數 | 
|  node\$1memory\$1SwapFree  | 可用交換空間 | 
|  node\$1memory\$1SwapCached  | 曾經換出的記憶體會被換回，但仍在交換中 | 
|  node\$1filesystem\$1avail\$1bytes  | 可用磁碟空間，以位元組為單位 | 
|  node\$1filesystem\$1size\$1bytes  | 總磁碟空間，以位元組為單位 | 
|  node\$1filesystem\$1free\$1bytes  | 可用磁碟空間，以位元組為單位 | 
|  node\$1network\$1receive\$1bytes  | 收到的網路位元組 | 
|  node\$1network\$1transmit\$1bytes  | 傳輸的網路位元組 | 
|  node\$1disk\$1read\$1bytes  | 讀取的磁碟位元組 | 
|  node\$1disk\$1written\$1bytes  | 寫入的磁碟位元組 | 

## NVIDIA DCGM 匯出工具儀表板
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-nvidia-dcgm-exporter"></a>

提供 [NVIDIA DCGM 匯出工具](https://github.com/NVIDIA/dcgm-exporter)收集的 NVIDIA GPU 指標視覺化資訊。

**指標類型**
+ **GPU 概觀：**顯示 GPU 使用率、溫度、用電量和記憶體用量。
+ **溫度指標：**隨時間視覺化 GPU 溫度。
+ **用電量：**監控 GPU 功耗和用電量趨勢。
+ **記憶體使用率：**分析 GPU 記憶體使用率，包括已用記憶體、可用記憶體和總記憶體。
+ **風扇速度：**顯示 GPU 風扇速度和變化。
+ **ECC 錯誤：**追蹤 GPU 記憶體 ECC 錯誤和待定錯誤。

**指標清單**

下表顯示一個清單，列出提供 NVIDIA GPU 運作狀態和效能洞見的指標，包括時鐘頻率、溫度、用電量、記憶體使用率、風扇速度和錯誤指標。


| 指標名稱 | Description | 
| --- | --- | 
|  DCGM\$1FI\$1DEV\$1SM\$1CLOCK  | SM 時鐘頻率 (以 MHz 為單位) | 
|  DCGM\$1FI\$1DEV\$1MEM\$1CLOCK  | 記憶體時鐘頻率 (以 MHz 為單位) | 
|  DCGM\$1FI\$1DEV\$1MEMORY\$1TEMP  | 記憶體溫度 (以 C 為單位) | 
|  DCGM\$1FI\$1DEV\$1GPU\$1TEMP  | GPU 溫度 (以 C 為單位) | 
|  DCGM\$1FI\$1DEV\$1POWER\$1USAGE  | 功耗 (以瓦為單位) | 
|  DCGM\$1FI\$1DEV\$1TOTAL\$1ENERGY\$1CONSUMPTION  | 開機後的總能源消耗量 (以 mJ 為單位) | 
|  DCGM\$1FI\$1DEV\$1PCIE\$1REPLAY\$1COUNTER  | PCIe 重試總次數 | 
|  DCGM\$1FI\$1DEV\$1MEM\$1COPY\$1UTIL  | 記憶體使用率 (以 % 為單位) | 
|  DCGM\$1FI\$1DEV\$1ENC\$1UTIL  | 編碼器使用率 (以 % 為單位) | 
|  DCGM\$1FI\$1DEV\$1DEC\$1UTIL  | 解碼器使用率 (以 % 為單位) | 
|  DCGM\$1FI\$1DEV\$1XID\$1ERRORS  | 遇到的最後一個 XID 錯誤的值 | 
|  DCGM\$1FI\$1DEV\$1FB\$1FREE  | 可用的影格緩衝區記憶體 (以 MiB 為單位) | 
|  DCGM\$1FI\$1DEV\$1FB\$1USED  | 已用的影格緩衝區記憶體 (以 MiB 為單位) | 
|  DCGM\$1FI\$1DEV\$1NVLINK\$1BANDWIDTH\$1TOTAL  | 所有通道的 NVLink 頻寬計數器總數 | 
|  DCGM\$1FI\$1DEV\$1VGPU\$1LICENSE\$1STATUS  | vGPU 授權狀態 | 
|  DCGM\$1FI\$1DEV\$1UNCORRECTABLE\$1REMAPPED\$1ROWS  | 無法更正錯誤的重新對應資料列數量 | 
|  DCGM\$1FI\$1DEV\$1CORRECTABLE\$1REMAPPED\$1ROWS  | 可修正錯誤的重新對應資料列數量 | 
|  DCGM\$1FI\$1DEV\$1ROW\$1REMAP\$1FAILURE  | 資料列重新對應是否失敗 | 

## EFA 指標儀表板
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-efa-exporter"></a>

從 P 執行個體上配備的 [Amazon Elastic Fabric Adapter (EFA)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) 提供 [EFA 節點匯出工具](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md)收集的指標視覺化資訊。

**指標類型**
+ **EFA 錯誤指標：**視覺化錯誤，例如配置錯誤、命令錯誤和記憶體對應錯誤。
+ **EFA 網路流量：**監控接收和傳輸的位元組、封包和工作請求。
+ **EFA RDMA 效能：**分析 RDMA 讀取和寫入操作，包括傳輸的位元組和錯誤率。
+ **EFA 連接埠使用壽命：**隨時間顯示 EFA 連接埠的使用壽命。
+ **EFA 持續作用封包：**追蹤收到的保持連線封包數量。

**指標清單**

下表顯示一個清單，列出提供 EFA 操作各層面洞見的指標，包括錯誤、完成的命令、網路流量和資源使用率。


| 指標名稱 | Description | 
| --- | --- | 
|  node\$1amazonefa\$1info  | 來自 /sys/class/infiniband/ 的非數值資料，值一律為 1。 | 
|  node\$1amazonefa\$1lifespan  | 連接埠的使用壽命 | 
|  node\$1amazonefa\$1rdma\$1read\$1bytes  | RDMA 的讀取位元組數量 | 
|  node\$1amazonefa\$1rdma\$1read\$1resp\$1bytes  | RDMA 的讀取回應位元組數量 | 
|  node\$1amazonefa\$1rdma\$1read\$1wr\$1err  | RDMA 的讀取寫入錯誤數量 | 
|  node\$1amazonefa\$1rdma\$1read\$1wrs  | RDMA 的讀取 rs 數量 | 
|  node\$1amazonefa\$1rdma\$1write\$1bytes  | RDMA 的寫入位元組數量 | 
|  node\$1amazonefa\$1rdma\$1write\$1recv\$1bytes  | RDMA 的寫入和接收位元組數量 | 
|  node\$1amazonefa\$1rdma\$1write\$1wr\$1err  | RDMA 的寫入但有錯誤位元組數量 | 
|  node\$1amazonefa\$1rdma\$1write\$1wrs  | RDMA 的寫入 wrs 位元組數量 | 
|  node\$1amazonefa\$1recv\$1bytes  | 接收的位元組數量 | 
|  node\$1amazonefa\$1recv\$1wrs  | 接收的 wrs 位元組數量 | 
|  node\$1amazonefa\$1rx\$1bytes  | 接收的位元組數量 | 
|  node\$1amazonefa\$1rx\$1drops  | 捨棄的封包數量 | 
|  node\$1amazonefa\$1rx\$1pkts  | 接收的封包數量 | 
|  node\$1amazonefa\$1send\$1bytes  | 傳送的位元組數量 | 
|  node\$1amazonefa\$1send\$1wrs  | 傳送的 wrs 數量 | 
|  node\$1amazonefa\$1tx\$1bytes  | 傳輸的位元組數量 | 
|  node\$1amazonefa\$1tx\$1pkts  | 傳輸的封包數量 | 

## FSx for Lustre 指標儀表板
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-fsx-exporter"></a>

從 [Amazon FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html) 檔案系統提供 [Amazon CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html) 收集的指標視覺化資訊。

**注意**  
Grafana FSx for Lustre 儀表板使用 Amazon CloudWatch 作為其資料來源，這與您設定為使用 Amazon Managed Service for Prometheus 的其他儀表板不同。為了確保 FSx for Lustre 檔案系統相關指標的準確監控和視覺化，請將 FSx for Lustre 儀表板設定為使用 Amazon CloudWatch 作為資料來源，並指定部署 FSx for Lustre 檔案系統的相同 AWS 區域 位置。

**指標類型**
+ **DataReadBytes：**檔案系統讀取操作的位元組數量。
+ **DataWriteBytes：**檔案系統寫入操作的位元組數量。
+ **DataReadOperations：**讀取操作次數。
+ **DataWriteOperations：**寫入操作次數。
+ **MetadataOperations：**中繼資料操作次數。
+ **FreeDataStorageCapacity：**可用儲存容量的數量。

# Amazon SageMaker HyperPod Slurm 指標
<a name="smcluster-slurm-metrics"></a>

Amazon SageMaker HyperPod 提供一組 Amazon CloudWatch 指標，您可以用來監控 HyperPod 叢集的運作狀態和效能。這些指標是從 HyperPod 叢集上執行的 Slurm 工作負載管理員收集的，並可在 `/aws/sagemaker/Clusters` CloudWatch 命名空間中取得。

## 叢集層級指標
<a name="smcluster-slurm-metrics-cluster"></a>

下列叢集層級指標可供 HyperPod 使用。這些指標使用 `ClusterId` 維度來識別特定的 HyperPod 叢集。


| CloudWatch 指標名稱 | 備註 | Amazon EKS Container Insights 指標名稱 | 
| --- | --- | --- | 
| cluster\$1node\$1count | 叢集中的節點總數 | cluster\$1node\$1count | 
| cluster\$1idle\$1node\$1count | 叢集中的閒置節點數量 | N/A | 
| cluster\$1failed\$1node\$1count | 叢集中的失敗節點數量 | cluster\$1failed\$1node\$1count | 
| cluster\$1cpu\$1count | 叢集中的 CPU 核心總數 | node\$1cpu\$1limit | 
| cluster\$1idle\$1cpu\$1count | 叢集中的閒置 CPU 核心數量 | N/A | 
| cluster\$1gpu\$1count | 叢集中的 GPU 總數 | node\$1gpu\$1limit | 
| cluster\$1idle\$1gpu\$1count | 叢集中的閒置 GPU 數量 | N/A | 
| cluster\$1running\$1task\$1count | 叢集中的執行中 Slurm 任務數量 | N/A | 
| cluster\$1pending\$1task\$1count | 叢集中的待定 Slurm 任務數量 | N/A | 
| cluster\$1preempted\$1task\$1count | 叢集中的先佔 Slurm 任務數量 | N/A | 
| cluster\$1avg\$1task\$1wait\$1time | 叢集中 Slurm 任務的平均等待時間 | N/A | 
| cluster\$1max\$1task\$1wait\$1time | 叢集中 Slurm 任務的等待時間上限 | N/A | 

## 執行個體層級指標
<a name="smcluster-slurm-metrics-instance"></a>

以下執行個體層級指標可供 HyperPod 使用。這些指標也會使用 `ClusterId` 維度來識別特定的 HyperPod 叢集。


| CloudWatch 指標名稱 | 備註 | Amazon EKS Container Insights 指標名稱 | 
| --- | --- | --- | 
| node\$1gpu\$1utilization | 所有執行個體的平均 GPU 使用率 | node\$1gpu\$1utilization | 
| node\$1gpu\$1memory\$1utilization | 所有執行個體的平均 GPU 記憶體使用率 | node\$1gpu\$1memory\$1utilization | 
| node\$1cpu\$1utilization | 所有執行個體的平均 CPU 使用率 | node\$1cpu\$1utilization | 
| node\$1memory\$1utilization | 所有執行個體的平均記憶體使用率 | node\$1memory\$1utilization | 