天天看點

體驗托管Prometheus監控阿裡雲容器服務Kubernetes的GPU資源

在阿裡雲容器服務中使用GPU資源運作進行AI模型訓練和預測時,經常需要了解應用負載的GPU的使用情況,比如每塊顯存使用情況、GPU使用率,GPU卡溫度等監控資訊,通過内置ARMS可以從應用的次元去觀測GPU的使用情況,了解資源水位,以及設定相應的報警,避免因為GPU資源的限制引發業務風險。

另外相比自建的Prometheus方案, ARMS的全面托管的 Prometheus 服務可以提供以下特性,更好的為您的業務應用保駕護航

  • 高可用、可擴充的 Prometheus Server
  • 與阿裡雲容器服務深度內建
  • 監控資料無限存儲能力

前提

使用步驟

  1. 登入 ARMS控制台 , 選擇Kubernetes所在的叢集
  2. 在ARMS控制台中prometheus界面中,點選叢集清單中需要監控叢集的安裝按鈕。此過程需要2分鐘左右,請點選确認。

3. 在該叢集的已安裝插件中可以看到

GPU Node

GPU APP

,分别從節點次元和應用次元監控GPU資源

體驗托管Prometheus監控阿裡雲容器服務Kubernetes的GPU資源

4. 我們可以運作一個TensorFlow的測試程式驗證

apiVersion: apps/v1beta1
kind: StatefulSet

metadata:
  name: test
  labels:
    app: test

spec:
  replicas: 1
  serviceName: "test"
  podManagementPolicy: "Parallel"
  selector: # define how the deployment finds the pods it manages
    matchLabels:
      app: test

  template: # define the pods specifications
    metadata:
      labels:
        app: test

    spec:
      hostNetwork: true
      hostPID: true
      containers:
      - name: test
        image: registry.cn-shanghai.aliyuncs.com/tensorflow-samples/tensorflow-gpu-mem:10.0-runtime-centos7
        command:
          - python3
          - /app/main.py
        resources:
          limits:
            nvidia.com/gpu: 1           

部署成功後,檢視應用的狀态,可以知道應用的名稱是

test-0

# kubectl get po
NAME     READY   STATUS    RESTARTS   AGE
test-0   1/1     Running   0          63m           

5. 進入

GPU Node

從節點次元監控

5.1 可以看到總的監控名額分為三個部分,最上面的部分是GPU的平均溫度,總能耗和每個節點的顯存使用。可以看到當GPU應用部署之後,節點的GPU

體驗托管Prometheus監控阿裡雲容器服務Kubernetes的GPU資源

5.2 而第二部分是GPU的配置設定狀況,代表叢集中的GPU中有多少配置設定給了工作負載;而右側是每個節點的GPU數量。從本例子中看到部署Pod前GPU配置設定數目為0,而右側的值一直是固定的值。

體驗托管Prometheus監控阿裡雲容器服務Kubernetes的GPU資源

5.3 第三部分則是以GPU卡的次元展示溫度,能耗和使用率

體驗托管Prometheus監控阿裡雲容器服務Kubernetes的GPU資源

6. 如果想從應用的角度監控,則可以進入

GPU App

頁面

6.1 第一行的資料是應用

test-0

使用的顯存百分比和顯存量

體驗托管Prometheus監控阿裡雲容器服務Kubernetes的GPU資源

6.2 第二行和第三行的資料是應用

test-0

的能耗,使用率和溫度

體驗托管Prometheus監控阿裡雲容器服務Kubernetes的GPU資源

總結

通過使用托管Prometheus可以以Kubernetes原生的方式對于GPU資源進行監控, 可以幫助你更好的了解GPU基礎架構的性能,以及它和業務性能的關系。我們後續還會支援針對GPU共享的監控。