本文介绍通过阿里云Prometheus对GPU资源进行监控,查看GPU各项指标。

前提条件

您已完成以下操作:

使用阿里云Prometheus进行GPU监控

  1. 登录容器服务管理控制台
  2. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  3. 在集群管理页左侧导航栏中,选择运维管理 > Prometheus监控
  4. Prometheus监控大盘列表页面,单击GPU APPGPU Node页签,您分别可以看到GPU APPGPU Node两个监控大盘。
    • GPU APP用于监控Pod的GPU使用情况。
    • GPU Node用于监控集群节点的GPU使用情况。
  5. 使用以下YAML文件在GPU节点上部署一个服务,测试监控效果。
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: bert-intent-detection
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: bert-intent-detection
      template:
        metadata:
          labels:
            app: bert-intent-detection
        spec:
          containers:
          - name: bert-container
            image: registry.cn-beijing.aliyuncs.com/ai-samples/bert-intent-detection:1.0.1
            ports:
            - containerPort: 80
            resources:
              limits:
                nvidia.com/gpu: 1
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        run: bert-intent-detection
      name: bert-intent-detection-svc
    spec:
      ports:
      - port: 8500
        targetPort: 80
      selector:
        app: bert-intent-detection
      type: LoadBalancer
  6. Prometheus监控大盘列表页面,单击GPU APP页签。
    GPU APP监控页面,您可以看到GPU显存、使用率、电量、稳定性几项指标,以及部署在GPU节点上的应用。GPU
  7. 压测部署在GPU节点上的应用,查看监控状态的变化。
    1. 执行以下命令查看推理服务并获取IP地址。
      kubectl get svc bert-intent-detection-svc
      预期输出:
      NAME                        TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)          AGE
      bert-intent-detection-svc   LoadBalancer   172.23.5.253   123.56.XX.XX   8500:32451/TCP   14m
    2. 执行以下命令进行压测。
      hey -z 10m -c 100 "http://123.56.XX.XX:8500/predict?query=music"
      下图可以看出压测时,GPU利用率有了明显的变化。GPU2