在阿裡雲容器服務中使用GPU資源運作進行AI模型訓練和預測時,經常需要了解應用負載的GPU的使用情況,比如每塊顯存使用情況、GPU使用率,GPU卡溫度等監控資訊,通過内置ARMS可以從應用的次元去觀測GPU的使用情況,了解資源水位,以及設定相應的報警,避免因為GPU資源的限制引發業務風險。
另外相比自建的Prometheus方案, ARMS的全面托管的 Prometheus 服務可以提供以下特性,更好的為您的業務應用保駕護航
- 高可用、可擴充的 Prometheus Server
- 與阿裡雲容器服務深度內建
- 監控資料無限存儲能力
前提
使用步驟
- 登入 ARMS控制台 , 選擇Kubernetes所在的叢集
- 在ARMS控制台中prometheus界面中,點選叢集清單中需要監控叢集的安裝按鈕。此過程需要2分鐘左右,請點選确認。
3. 在該叢集的已安裝插件中可以看到
GPU Node
和
GPU APP
,分别從節點次元和應用次元監控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
5.2 而第二部分是GPU的配置設定狀況,代表叢集中的GPU中有多少配置設定給了工作負載;而右側是每個節點的GPU數量。從本例子中看到部署Pod前GPU配置設定數目為0,而右側的值一直是固定的值。
5.3 第三部分則是以GPU卡的次元展示溫度,能耗和使用率
6. 如果想從應用的角度監控,則可以進入
GPU App
頁面
6.1 第一行的資料是應用
test-0
使用的顯存百分比和顯存量
6.2 第二行和第三行的資料是應用
test-0
的能耗,使用率和溫度
總結
通過使用托管Prometheus可以以Kubernetes原生的方式對于GPU資源進行監控, 可以幫助你更好的了解GPU基礎架構的性能,以及它和業務性能的關系。我們後續還會支援針對GPU共享的監控。