使用阿里云Prometheus监控集群GPU资源

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

前提条件

您已完成以下操作:

费用说明

在ACK集群中使用ack-gpu-exporter组件时,默认情况下它产生的阿里云Prometheus监控指标被视为基础指标,并且是免费的。然而,如果您需要调整监控数据的存储时长,即保留监控数据的时间超过阿里云为基础监控服务设定的默认保留期限,这可能会产生额外的费用。关于阿里云Prometheus的自定义收费策略,请参见计费概述

使用阿里云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