すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ACKクラスターのGPUモニタリングを有効にする

最終更新日:Dec 13, 2024

GPUモニタリング2.0は、NVIDIA Data Center GPU Manager (DCGM) に基づいて開発された高度なGPUモニタリングシステムです。 このトピックでは、Container Service for Kubernetes (ACK) クラスターのGPUモニタリングを有効にする方法について説明します。

前提条件

背景情報

Kubernetesで多数のGPUデバイスを監視することは、O&Mエンジニアにとって重要です。 クラスターからGPUメトリックを収集することで、GPUの使用状況、正常性ステータス、ワークロード、およびクラスターのパフォーマンスに関する洞察を得ることができます。 モニタリングデータは、問題の迅速な診断、GPUリソース割り当ての最適化、リソース使用率の向上に役立ちます。 GPUモニタリングは、データサイエンティストとAIアルゴリズムエンジニアがGPUリソース割り当てとタスクスケジューリングを最適化するのにも役立ちます。

GPUモニタリング1.0は、NVML (NVIDIA Management Library) を使用してGPUメトリックを収集し、PrometheusとGrafanaを使用して収集したメトリックを視覚化します。 GPUモニタリング1.0を使用して、クラスター内のGPUリソースの使用状況をモニタリングできます。 新世代のNVIDIA GPUは、より複雑なアーキテクチャを使用して、さまざまなシナリオでユーザーの要件を満たします。 GPUモニタリング1.0によって提供されるGPUメトリックは、増大する需要を満たすことができなくなりました。

新世代のNVIDIA GPUは、多数のGPUを管理するために使用できるデータセンターGPUマネージャー (DCGM) をサポートしています。 GPUモニタリング2.0は、強力なNVIDIA DCGMに基づいて開発されています。DCGMはさまざまなGPUメトリックを提供し、次の機能をサポートします。

  • GPUの動作モニタリング

  • GPU設定管理

  • GPUポリシー管理

  • GPUヘルス診断

  • GPU統計とスレッド統計

  • NVSwitchの設定とモニタリング

制限事項

  • NVIDIA GPUドライバーのバージョンは418.87.01以降である必要があります。 GPUプロファイリング機能を使用する場合は、NVIDIA GPUドライバー450.80.02以降がインストールされていることを確認してください。 GPUプロファイリングの詳細については、「機能の概要」をご参照ください。

    説明
  • GPUモニタリング2.0を使用してNVIDIAマルチインスタンスGPU (MIG) 機能をモニタリングすることはできません。

使用上の注意

DCGM 2.3.6にはメモリリークの問題があります。 ACKは、この問題を回避するために、エクスポータのポッドのresources.limitsパラメーターを設定します。 メモリ使用量が指定されたメモリ制限に達すると、エクスポータが再起動されます。 エクスポータは、再起動後、通常どおりメトリックをGrafanaにシンクできます。 ただし、Grafanaの特定のメトリックは、エクスポータの再起動後に異常な値を表示する場合があります。 例えば、ノードの数は、エクスポータが再起動された後に増加し得る。 これらのメトリックの値は、数分後に正常に復元されます。 ほとんどの場合、輸出業者は毎月1回再開されます。 詳細については、「」をご参照ください。DCGMにメモリリークがありますか?

課金ルール

デフォルトでは、ackクラスター内のACK-gpu-exporterコンポーネントによって収集されたManaged Service for Prometheusメトリクスは基本的なメトリクスと見なされ、無料です。 ただし、Alibaba Cloudが基本モニタリングサービスに対して定義したモニタリングデータのデフォルトの保持期間を延長した場合、追加料金が発生する可能性があります。 Managed Service For Prometheusでのカスタムメトリクスの課金の詳細については、「課金の概要」をご参照ください。

手順

  1. 手順1: Prometheusのマネージドサービスの有効化

    ack-arms-prometheusのバージョンが1.1.7以降で、GPUダッシュボードのバージョンがV2以降であることを確認します。

    説明
    • ack-arms-prometheusバージョンの確認と更新: ACKコンソールにログインし、クラスターの詳細ページに移動します。 左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。 [アドオン] ページで、検索ボックスにarmsと入力し、検索アイコンをクリックします。 検索結果が表示されたら、ack-arms-prometheusバージョンを確認して更新できます。

    • GPUダッシュボードのバージョンを確認して更新する: ACKコンソールにログインし、クラスターの詳細ページに移動します。 左側のナビゲーションウィンドウで、[操作] > [Prometheusモニタリング] を選択します。 [Prometheus Monitoring] ページの右上隅にある [Prometheus Serviceに移動] をクリックします。 [ダッシュボード] ページで、GPUダッシュボードのバージョンを確認および更新できます。

  2. のGPUモニタリング機能を確認します。Prometheusのマネージドサービス.

    1. tensorflow-benchmarkという名前のアプリケーションをデプロイします。

      1. tensorflow-benchmark. YAMLという名前のyamlファイルを作成し、次の内容をファイルに追加します。

        apiVersion: batch/v1
        kind: Job
        metadata:
          name: tensorflow-benchmark
        spec:
          parallelism: 1
          template:
            metadata:
              labels:
                app: tensorflow-benchmark
            spec:
              containers:
              - name: tensorflow-benchmark
                image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:benchmark-tensorflow-2.2.3
                command:
                - bash
                - run.sh
                - --num_batches=50000
                - --batch_size=8
                resources:
                  limits:
                    nvidia.com/gpu: 1 #Apply for a GPU. 
                workingDir: /root
              restartPolicy: Never
      2. 次のコマンドを実行して、GPU高速化ノードにtensorflow-benchmarkアプリケーションをデプロイします。

        kubectl apply -f tensorflow-benchmark.yaml
      3. 次のコマンドを実行して、アプリケーションを実行するポッドのステータスを照会します。

        kubectl get po

        期待される出力:

        NAME                         READY   STATUS    RESTARTS   AGE
        tensorflow-benchmark-k***   1/1     Running   0          114s

        出力は、ポッドが実行中状態であることを示します。

    2. GPUダッシュボードを表示します。

      1. ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

      2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[操作] > [Prometheusモニタリング] を選択します。

      3. [Prometheusモニタリング] ページで、[GPUモニタリング] タブをクリックし、[GPU-クラスターディメンション] タブをクリックします。

        クラスターダッシュボードは、GPUポッドがcn-beijing.192.168.10.163ノードで実行されていることを示しています。

      4. [gpu-ノード] タブをクリックし、gpu_nodeドロップダウンリストから [cn-beijing.192.168.10.163] を選択して、ノードのGPU情報を表示します。