全部產品
Search
文件中心

Container Service for Kubernetes:使用雲原生AI監控大盤

更新時間:Jun 19, 2024

雲原生AI的監控組件能夠協助您從不同的維度(比如:叢集、節點、訓練任務等)監控叢集的GPU資源使用方式,以及叢集的各命名空間下的資源配額使用。本文分別從叢集、節點、訓練任務和資源配額維度介紹監控大盤,以及介紹如何安裝和使用雲原生AI監控大盤。

前提條件

  • 本文僅支援ACK Pro版叢集,且Kubernetes叢集版本大於等於1.18.8。

  • Arena組件版本大於等於0.7.0。具體操作,請參見:配置Arena用戶端

  • 安裝阿里雲Prometheus監控組件,具體操作,請參見arms-prometheus

  • 安裝AI營運控制台組件。具體操作,請參見安裝雲原生AI套件

背景資訊

當使用Arena提交訓練任務後,您可能需要從叢集、節點、訓練任務或資源配額的維度去查看GPU的使用率、GPU顯存的使用方式。傳統的ACK叢集只能從節點的維度監控該節點的GPU使用方式(使用率、顯存使用方式、功率等)或者從Pod維度監控該Pod使用GPU的情況。

基於以上存在的問題,阿里雲Container Service研發了雲原生AI監控大盤,該大盤相比傳統的ACK叢集GPU監控大盤,有如下特點:

  • 整個監控大盤由四個部分組成:叢集、節點、訓練任務、資源配額。

  • 叢集監控大盤主要展示叢集總的GPU節點數、不健康GPU節點數、GPU平均利用率、各個狀態的訓練任務數等。

  • 節點監控大盤主要展示每個節點的總GPU卡數、已指派GPU卡數、GPU的使用率、節點GPU顯存使用方式等。

  • 訓練任務監控大盤主要展示每個訓練任務的狀態、已運行時間長度、申請GPU數、GPU的平均利用率、GPU顯存使用方式等。

  • 資源配額監控大盤主要展示每種資源配額在某個Namespace下的分配和使用方式,比如:Max Quota、Min Quota和Used Quota等。

安裝雲原生AI監控組件

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > 雲原生AI套件

  3. 安裝監控組件。

    • 如果您之前已經部署過雲原生AI套件:

      雲原生AI套件頁面,找到雲原生AI監控組件ack-arena-exporter,然後單擊右側操作列的部署

    • 如果您之前未部署過雲原生AI套件:

      雲原生AI套件頁面,單擊一鍵部署,然後在監控地區選中監控組件,單擊部署雲原生AI套件

監控大盤介紹

進入雲原生AI營運控制台後,預設顯示叢集監控大盤頁面。單擊頁面左上方image.png可以切換監控大盤。

  • Cluster:叢集監控大盤

  • Nodes:節點監控大盤

  • TrainingJobs:訓練任務監控大盤

  • Quota:資源配額監控大盤

叢集監控大盤

具體操作,請參見方式一:使用公網Ingress訪問AI營運控制台

叢集監控大盤有以下可供您查看的指標:

  • GPU Summary Of Cluster:展示叢集中總的GPU節點數、已指派的GPU節點數、不健康的GPU節點數。

  • Total GPU Nodes:叢集中總的GPU節點數。

  • Unhealthy GPU Nodes:不健康的GPU節點數。

  • GPU Memory(Used/Total):叢集已使用GPU顯存與總的GPU顯存的百分比。

  • GPU Memory(Allocated/Total):叢集已指派GPU顯存與總的GPU顯存百分比。

  • GPU Utilization:叢集GPU的平均利用率。

  • GPUs(Allocated/Total):叢集已指派GPU卡的個數與總的GPU卡數的百分比。

  • Training Job Summary Of Cluster:叢集中各種狀態(Running、Pending、Succeeded、Failed)的訓練任務數。

jk1

節點監控大盤

在叢集監控大盤頁面,單擊右上方的Nodes,進入節點監控大盤。

節點監控大盤有以下可供您查看的指標:

  • GPU Node Details:以表格的形式展示叢集節點的相關資訊,包括:

    • 節點名稱(Name)

    • 節點在叢集中的IP(IP)

    • 節點在叢集中的角色(Role)

    • 節點的狀態(Status)

    • GPU模式:獨佔或共用(GPU Mode)

    • 節點擁有GPU卡的個數(Total GPUs)

    • 節點擁有總的GPU顯存(Total GPU Memory)

    • 節點已指派GPU卡數(Allocated GPUs)

    • 節點已指派GPU顯存(Allocated GPU Memory)

    • 節點已使用GPU顯存(Used GPU Memory)

    • 節點GPU平均使用率(GPU Utilization)

  • GPU Duty Cycle:每個節點的每個GPU的使用率。

  • GPU Memory Usage:每個節點的每個GPU的顯存使用量。

  • GPU Memory Usage Percentage:每個節點的每個GPU的顯存使用百分比。

  • Allocated GPUs Per Node:每個節點已指派的GPU卡數。

  • GPU Number Per Node:每個節點的總GPU卡數。

  • Total GPU Memory Per Node:每個節點的總GPU顯存。

jk21jk22

您可以根據節點監控大盤左上方的gpu_nodeGPU篩選項,對節點和GPU卡進行篩選,以便您查看到目標節點上的GPU使用方式。

jk23

訓練任務監控大盤

在節點監控大盤頁面,單擊右上方TrainingJobs,進入訓練任務的監控大盤。

訓練任務監控大盤有以下可供您查看的指標:

  • Training Jobs:通過表格的形式展示各個訓練任務的情況,包括:

    • 訓練任務所在命名空間(Namespace)

    • 訓練任務名稱(Job Name)

    • 訓練任務類型(Job Type)

    • 訓練任務狀態(Job Status)

    • 訓練任務期間(Duration)

    • 訓練工作要求GPU卡數(Request GPUs)

    • 訓練工作要求的GPU顯存(Allocated GPU Memory)

    • 訓練任務當前使用的GPU顯存(Used GPU Memory)

    • 訓練任務的GPU平均利用率(GPU Utilization)

  • Job Instance Used GPU Memory:訓練任務中的各個執行個體的已使用GPU顯存。

  • Job Instance Used GPU Memory Percentage:訓練任務中各個執行個體使用GPU顯存的百分比。

  • Job Instance GPU Duty Cycle:訓練任務中各個執行個體的GPU利用率。

jk31

您可以根據訓練任務監控大盤左上方的job_namespacejob_typejob_name等篩選項,對訓練任務從不同維度進行篩選,以便您查看到目標訓練任務的具體情況。

jk32

資源配額監控大盤

在訓練任務監控大盤頁面,單擊右上方的Quota,進入資源配額監控大盤。

資源配額監控大盤有以下可供您查看的指標:

  • Quota(cpu)

  • Quota(memory)

  • Quota(nvidia.com/gpu)

  • Quota(aliyun.com/gpu-mem)

  • Quota(aliyun.com/gpu)

以上枚舉的每一個指標都以表格的形式展示資源配額的相關資訊,包括:

  • Elastic Quota Name:資源配額的名稱。

  • Namespace:資源所屬的Namespace。

  • Resource Name:資源類型的名稱。

  • Max Quota:您在某個Namespace下某種資源所使用的上限。

  • Min Quota:當整個叢集資源緊張時,您在某個Namespace下可以使用的保障資源。

  • Used Quota: 您在某個Namespace下,某種資源的已使用值。

jk41

使用雲原生AI監控大盤樣本

本文以使用Arena提交一個mpijob任務,然後查看監控大盤的變化為例,說明如何使用雲原生AI監控大盤。

  1. 進入雲原生AI營運控制台,預設進入的是叢集監控大盤頁面。

    當叢集沒有任何訓練任務時,叢集監控大盤如下。

    jk51

    由上圖可知,叢集總共有兩個GPU節點,總共有2張GPU卡。

  2. 執行以下命令,提交一個mpijob

    arena submit mpijob \
        --name=mpi-test \
        --gpus=1 \
        --workers=1 \
        --working-dir=/perseus-demo/tensorflow-demo/ \
        --image=registry.cn-beijing.aliyuncs.com/ai-samples/horovod:0.13.11-tf1.10.0-torch0.4.0-py3.5 \
        'mpirun python /benchmarks/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py --model resnet101 --batch_size 64 --num_batches 5000 --variable_update horovod --train_dir=/training_logs --summary_verbosity=3 --save_summaries_steps=10'
  3. 再次查看叢集監控大盤。

    jk52

    由上圖可知,叢集的GPU的平均利用率、已指派GPU個數與總的GPU數的百分比等指標發生了變化。

  4. 執行以下命令,查看任務所在的節點。

    arena list

    預期輸出:

    NAME      STATUS   TRAINER  DURATION  GPU(Requested)  GPU(Allocated)  NODE
    mpi-test  RUNNING  MPIJOB   8s        1               1               192.168.1.151
  5. 在叢集監控大盤頁面,單擊右上方的Nodes,進入節點監控大盤。由步驟4中得出任務所在的節點IP為192.168.1.151,在節點監控大盤上,您可以看到該節點上GPU的相關指標發生的變化如下。

    jk53

  6. 在節點監控大盤頁面,單擊右上方TrainingJobs,進入訓練任務監控大盤,您可以查看訓練任務的相關資訊(任務名、任務狀態等)。

    jk54