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

Container Service for Kubernetes:GPUモニタリングの問題のトラブルシューティング

最終更新日:Dec 13, 2024

例外が発生した場合、またはGPUモニタリングダッシュボードでレコードが見つからない場合は、このトピックの手順を実行して問題のトラブルシューティングを行うことができます。

手順

手順1: クラスターにGPUノードが存在するかどうかの確認

  1. ACKコンソールにログインします。

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

  3. [クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。

  4. 詳細ページの左側のナビゲーションウィンドウで、[ノード] > [ノード] を選択します。

  5. [ノード] ページで、GPUノードがクラスターに存在するかどうかを確認します。

    説明

    [ノード] ページで、[設定] 列の値に **** ecs.gn **** が含まれている場合、クラスターにはGPUノードがあります。

ステップ2: 確認するack-arms-prometheusがインストールされている

  1. ack-arms-prometheusがクラスターにインストールされているかどうかを確認します。 詳細については、「Prometheus Serviceの有効化」をご参照ください。

  2. ack-arms-prometheusがインストールされている場合は、次のコマンドを実行してack-arms-prometheusのポッドを照会します。

    kubectl get pods -n arms-prom

    期待される出力:

    NAME                                             READY   STATUS    RESTARTS   AGE
    arms-prom-ack-arms-prometheus-866cfd9f8f-x8jxl   1/1     Running   0          26d

    ポッドが [実行中] 状態の場合、ポッドは期待どおりに実行されます。 ポッドが実行中でない場合は、kubectl describe podコマンドを実行して、ポッドが実行されていない理由を照会します。

ステップ3: ack-prometheus-gpu-exporterがデプロイされているかどうかを確認する

次のコマンドを実行して、ポッドのステータスと数量を照会します。

kubectl get pods -n arms-prom

期待される出力:

NAME                                                  READY   STATUS    RESTARTS   AGE
ack-prometheus-gpu-exporter-6kpj7                     1/1     Running   0          7d19h
ack-prometheus-gpu-exporter-bkbf8                     1/1     Running   0          18h
ack-prometheus-gpu-exporter-blbnq                     1/1     Running   0          18h

上記の出力は、ポッドの数がGPUノードの数と同じであり、ポッドが実行中状態であることを示しています。 これは、ack-prometheus-gpu-exporterがGPUノードにデプロイされていることを意味します。 ポッドが実行中でない場合は、kubectl describe podコマンドを実行して、ポッドが実行されていない理由を照会します。

ステップ4: データがack-prometheus-gpu-exporterによって収集されたかどうかを確認

  1. 次のコマンドを実行して、SSHを使用してクラスター内のノードにログインします。

    sudo ssh root@198.51.XX.XX
    • root: カスタムアカウント名。

    • 198.51.XX.XX: ノードのパブリックIPアドレス。

  2. 次のコマンドを実行して、ポッドの内部IPアドレスを照会します。

    kubectl get pods -n arms-prom -o wide

    期待される出力:

    NAME                                                   READY   STATUS    RESTARTS   AGE     IP             NODE                      NOMINATED NODE   READINESS GATES
    ack-prometheus-gpu-exporter-4rdtl                      1/1     Running   0          7h6m    172.21.XX.XX   cn-beijing.192.168.0.22   <none>           <none>
    ack-prometheus-gpu-exporter-vdkqf                      1/1     Running   0          6d16h   172.21.XX.XX   cn-beijing.192.168.94.7   <none>           <none>
    ack-prometheus-gpu-exporter-x7v48                      1/1     Running   0          7h6m    172.21.XX.XX   cn-beijing.192.168.0.23   <none>           <none>
  3. 次のコマンドを実行してgpu exporterサービスを呼び出し、GPUメトリクスを取得します。

    説明

    デフォルトでは、ack-prometheus-gpu-exporterはポート9445を使用します。

    curl 172.21.XX.XX:9445 | grep "nvidia_gpu"

    期待される出力:

     % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  7518  100  7518    0     0   101k      0 --:--:-- --:--:-- --:--:--  101k
    # HELP nvidia_gpu_duty_cycle Percent of time over the past sample period during which one or more kernels were executing on the GPU device
    # TYPE nvidia_gpu_duty_cycle gauge
    nvidia_gpu_duty_cycle{allocate_mode="exclusive",container_name="tfserving-gpu",minor_number="0",name="Tesla T4",namespace_name="default",node_name="cn-beijing.192.168.0.22",pod_name="fashion-mnist-eci-2-predictor-0-tfserving-proxy-tfserving-v789b",uuid="GPU-293f6608-281a-cc66-fcb3-0d366f32a31d"} 0
    # HELP nvidia_gpu_memory_total_bytes Total memory of the GPU device
    # TYPE nvidia_gpu_memory_total_bytes gauge
    nvidia_gpu_memory_total_bytes{allocate_mode="exclusive",container_name="tfserving-gpu",minor_number="0",name="Tesla T4",namespace_name="default",node_name="cn-beijing.192.168.0.22",pod_name="fashion-mnist-eci-2-predictor-0-tfserving-proxy-tfserving-v789b",uuid="GPU-293f6608-281a-cc66-fcb3-0d366f32a31d"} 1.5811477504e+10
    # HELP nvidia_gpu_memory_used_bytes Memory used by the GPU device
    # TYPE nvidia_gpu_memory_used_bytes gauge
    nvidia_gpu_memory_used_bytes{allocate_mode="exclusive",container_name="tfserving-gpu",minor_number="0",name="Tesla T4",namespace_name="default",node_name="cn-beijing.192.168.0.22",pod_name="fashion-mnist-eci-2-predictor-0-tfserving-proxy-tfserving-v789b",uuid="GPU-293f6608-281a-cc66-fcb3-0d366f32a31d"} 1.488453632e+10
    # HELP nvidia_gpu_num_devices Number of GPU devices
    # TYPE nvidia_gpu_num_devices gauge
    nvidia_gpu_num_devices{node_name="cn-beijing.192.168.0.22"} 1
    # HELP nvidia_gpu_power_usage_milliwatts Power usage of the GPU device in watts
    # TYPE nvidia_gpu_power_usage_milliwatts gauge
    nvidia_gpu_power_usage_milliwatts{allocate_mode="exclusive",container_name="tfserving-gpu",minor_number="0",name="Tesla T4",namespace_name="default",node_name="cn-beijing.192.168.0.22",pod_name="fashion-mnist-eci-2-predictor-0-tfserving-proxy-tfserving-v789b",uuid="GPU-293f6608-281a-cc66-fcb3-0d366f32a31d"} 27000
    # HELP nvidia_gpu_temperature_celsius Temperature of the GPU device in celsius
    # TYPE nvidia_gpu_temperature_celsius gauge
    nvidia_gpu_temperature_celsius{allocate_mode="exclusive",container_name="tfserving-gpu",minor_number="0",name="Tesla T4",namespace_name="default",node_name="cn-beijing.192.168.0.22",pod_name="fashion-mnist-eci-2-predictor-0-tfserving-proxy-tfserving-v789b",uuid="GPU-293f6608-281a-cc66-fcb3-0d366f32a31d"} 44

    出力にnvidia_gpuで始まるメトリックレコードが含まれている場合、データはack-prometheus-gpu-exporterによって収集されます。