

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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/ja_jp/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 アイデンティティセンターによる認証と認可も必要であり、モニタリングインフラストラクチャへの安全なユーザーアクセスと管理が保証されます。

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 を正常に有効にしたら、以下の設定の優先順位に従って管理者ユーザーとして機能するユーザーアカウントを設定します。

## SageMaker HyperPod オブザーバビリティ用の CloudFormation スタックを作成してデプロイする
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-cloudformation-stack"></a>

Amazon Managed Service for Prometheus と Amazon Managed Grafana を使用して、SageMaker HyperPod オブザーバビリティ用の CloudFormation スタックを作成してデプロイし、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 Data Center GPU Management (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 Data Center GPU Management (DCGM) エクスポーターと Elastic Fabric Adapter (EFA) ノードエクスポーターをインストールします。DCGM エクスポーターは Prometheus 用のエクスポーターであり、NVIDIA GPU、GPU の使用状況、パフォーマンス、ヘルスのモニタリングを可能にします。一方、EFA ノードエクスポーターは、HPC クラスターの低レイテンシーおよび高帯域幅通信に不可欠な、EFA ネットワークインターフェイスに関連するメトリクスを収集します。

ヘッドノードで、スクリプトは Prometheus 用の Slurm エクスポーターと [Prometheus オープンソースソフトウェア](https://prometheus.io/docs/introduction/overview/)をインストールします。Slurm エクスポーターは、Slurm ジョブ、パーティション、ノード状態に関連するメトリクスを Prometheus に提供します。

ライフサイクルスクリプトはすべてのエクスポーターパッケージを Docker コンテナとしてインストールするよう設計されているため、Docker パッケージはヘッドノードとコンピューティングノードの両方にもインストールする必要があります。これらのコンポーネントのスクリプトは、*Awsome Distributed Training 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 設定ファイルを検証します。出力は、次のようになります。3 つのエクスポーターが適切なコンピューティングノード 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 Workspace にエクスポートしたら、次のトピックに進み、メトリクスが表示されるよう Amazon Managed Grafana ダッシュボードを設定できます。

# Amazon Managed Grafana ワークスペースを設定する
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws"></a>

Amazon Managed Service for Prometheus をデータソースとして使用し、新しい Amazon Managed Grafana ワークスペースを作成するか、既存の 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. Amazon Managed Service for Prometheus ワークスペースを作成するには、「*Amazon Managed Service for Prometheus ユーザーガイド*」の「[Creating a workspace](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 ユーザーガイド*」の「[Set up Amazon Managed Grafana for use with Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-amg.html)」
+ [AWS データソース設定を使用して、Amazon Managed Grafana ユーザーガイドのデータソースとして 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. [Node Exporter フルダッシュボード](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 使用率などのパーティション固有のメトリクスをモニタリングします。
+ **ジョブ効率:** 使用するリソースに基づいてジョブ効率を計算します。

**メトリクスのリスト**


| メトリクス名 | 説明 | 
| --- | --- | 
| 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>

HyperPod クラスターノードから [Prometheus ノードエクスポーター](https://github.com/prometheus/node_exporter)によって収集されたシステムメトリクスの可視化された情報を提供します。

**メトリクスの種類**
+ **システムの概要:** CPU 負荷平均とメモリ使用量を表示します。
+ **メモリメトリクス:** 合計メモリ、空きメモリ、スワップ領域を含むメモリ使用率を可視化します。
+ **ディスク使用量:** ディスク容量の使用率と可用性をモニタリングします。
+ **ネットワークトラフィック:** 時間の経過とともに送受信されたネットワークバイト数を表示します。
+ **ファイルシステムメトリクス:** ファイルシステムの使用状況と可用性を分析します。
+ **ディスク I/O メトリクス:** ディスクの読み取りおよび書き込みアクティビティを可視化します。

**メトリクスのリスト**

エクスポートされたメトリクスの詳細なリストについては、[Node Exporter](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 負荷、メモリ使用量、ディスク容量、ネットワークアクティビティなどのシステムリソースの使用率に関するインサイトを提供するメトリクスのサブセットを示しています。


| メトリクス名 | 説明 | 
| --- | --- | 
|  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 のヘルスおよびパフォーマンスに関するインサイトを提供するメトリクスのリストを示しています。


| メトリクス名 | 説明 | 
| --- | --- | 
|  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  | 消費電力 (W) | 
|  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>

[EFA ノードエクスポーター](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md)によって収集された P インスタンスに搭載された [Amazon Elastic Fabric Adapter (EFA)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) からのメトリクスの可視化された情報を提供します。

**メトリクスの種類**
+ **EFA エラーメトリクス:** 割り当てエラー、コマンドエラー、メモリマップエラーなどのエラーを可視化します。
+ **EFA ネットワークトラフィック:** 送受信されたバイト、パケット、および作業リクエストをモニタリングします。
+ **EFA RDMA パフォーマンス:** 転送されたバイト数やエラー率など、RDMA の読み取りおよび書き込みオペレーションを分析します。
+ **EFA ポートの有効期間:** 時間の経過とともに EFA ポートの有効期間を表示します。
+ **EFA キープアライブパケット:** 受信したキープアライブパケットの数を追跡します。

**メトリクスのリスト**

次の表は、エラー、完了したコマンド、ネットワークトラフィック、リソース使用率など、EFA オペレーションのさまざまな側面に関するインサイトを提供するメトリクスのリストを示しています。


| メトリクス名 | 説明 | 
| --- | --- | 
|  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  | wrs RDMA で書き込まれたバイト数 | 
|  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 CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html) によって収集された [Amazon FSx for Lustre ファイルシステムからのメトリクス](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 ファイルシステムに関連するメトリクスを正確にモニタリングおよび可視化するには、データソースとして Amazon CloudWatch FSx を使用するように FSx for Lustre ダッシュボードを設定し、FSx for Lustre ファイルシステムがデプロイ AWS リージョン される場所と同じ を指定します。

**メトリクスの種類**
+ **DataReadBytes:** ファイルシステムの読み取りオペレーションのバイト数。
+ **DataWriteBytes:** ファイルシステムの書き込みオペレーションのバイト数。
+ **DataReadOperations:** 読み取りオペレーションの数。
+ **DataWriteOperations:** 書き込みオペレーションの数。
+ **MetadataOperations:** メタデータオペレーションの数。
+ **FreeDataStorageCapacity:** 使用可能なストレージ容量。

# Amazon SageMaker HyperPod Slurm のメトリクス
<a name="smcluster-slurm-metrics"></a>

Amazon SageMaker HyperPod には、HyperPod クラスターのヘルスとパフォーマンスをモニタリングするために使用できる一連の Amazon CloudWatch メトリクスが提供されています。これらのメトリクスは、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 | クラスター内のアイドルノード数 | 該当なし | 
| cluster\$1failed\$1node\$1count | クラスター内の失敗ノードの数 | cluster\$1failed\$1node\$1count | 
| cluster\$1cpu\$1count | クラスター内の CPU コア合計数 | node\$1cpu\$1limit | 
| cluster\$1idle\$1cpu\$1count | クラスター内のアイドル CPU 数 | 該当なし | 
| cluster\$1gpu\$1count | クラスター内の GPU 合計数 | node\$1gpu\$1limit | 
| cluster\$1idle\$1gpu\$1count | クラスター内のアイドル GPU 数 | 該当なし | 
| cluster\$1running\$1task\$1count | クラスター内の実行中の Slurm ジョブ数 | 該当なし | 
| cluster\$1pending\$1task\$1count | クラスター内の保留中の Slurm ジョブ数 | 該当なし | 
| cluster\$1preempted\$1task\$1count | クラスター内のプリエンプト Slurm ジョブ数 | 該当なし | 
| cluster\$1avg\$1task\$1wait\$1time | クラスター内の Slurm ジョブの平均待機時間 | 該当なし | 
| cluster\$1max\$1task\$1wait\$1time | クラスター内の Slurm ジョブの最大待機時間 | 該当なし | 

## クラスターレベルのメトリクス
<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 | 