利用GPU性能指标进行弹性伸缩

简介: 随着人工智能大潮的风起云涌, 视频识别,语音识别,图像识别,自然语言翻译,AI画匠等基于GPU的在线预测也在遍地开花。而弹性伸缩对于人工智能服务来说尤为重要,一方面是业务压力峰值时巨大的计算力需求;另一方面当业务空闲时,GPU的空耗成本也是大家很难承受的。

随着人工智能大潮的风起云涌, 视频识别,语音识别,图像识别,自然语言翻译,AI画匠等基于GPU的在线预测也在遍地开花。而弹性伸缩对于人工智能服务来说尤为重要,一方面是业务压力峰值时巨大的计算力需求;另一方面当业务空闲时,GPU的空耗成本也是大家很难承受的。同时在与客户的交流中,我们也发现客户对于GPU资源的弹性伸缩也有很强的定制化需求,希望能自主控制触发条件,并在此基础上和自身业务指标相结合等等。

基于这种现实,我们提供了一套容器服务所扩容触发器结合第三方监控框架influxDB+Grafana的报警伸缩方案。 具体来说,分为4个部分:

  1. 创建容器服务节点扩缩容触发器
  2. 部署基于Grafana和InfluxDB的GPU监控应用
  3. 在Grafana中设置通知渠道,通过Webhook调用缩扩容触发器
  4. 定义触发条件

创建触发器

参考 利用阿里云容器服务实现自定义节点伸缩 创建触发器trigger_url, 请将这个触发器妥善保存。这里触发器的价值在于:

a) 预先指定扩容机器的配置,以及弹性伸缩的上下限;无需用户写复杂API调用扩容

b) 当缩容时,系统自动判断可以回收的机器;用户只需要触发,对于缩容细节无需了解

扩容触发器的URL通常为

https://cs.console.aliyun.com/hook/trigger?triggerUrl=<triggerUrl>=&secret=<secret>&type=scale_out&step=1

缩容触发器的URL通常为

https://cs.console.aliyun.com/hook/trigger?triggerUrl=<triggerUrl>=&secret=<secret>&type=scale_in

部署GPU监控应用

在容器服务里可以支持influxDB, 这里我们的方案是部署 influxDB+Grafana,利用Grafana的报警机制

  1. 登录 容器服务管理控制台

2. 单击左侧导航栏中的 节点

3. 选择您创建的GPU集群, 并且将鼠标挪动到任何一个节点信息附近感叹号图标。

4. 这时,可以看到当前节点的NODE_IP和NODE_ID。在本例子中,您的NODE_IP是 192.168.10.86 , NODE_ID是 1。请记住该信息。 我们在下一步中将使用该信息部署GPU监控应用。

5. 请将下面的应用模板部署到集群中, 单击左侧导航栏中的 应用, 并点击 创建应用 按钮。

version: '2'
services:
  # Define an InfluxDB service
  influxdb:
    container_name: influxdb
    image: influxdb:0.13
    volumes:
      - /var/lib/influxdb
    ports:
      - 8086:8086
      - 8083:8083
    labels:
      aliyun.monitoring.addon.influxdb: "http://${NODE_IP}:8086"
    environment:
      - constraint:aliyun.node_index==${NODE_ID}
  grafana:
    image: grafana/grafana:4.4.3
    container_name: grafana
    ports:
      - 3000:3000
    links:
      - influxdb
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD}
    labels: 
      aliyun.routing.port_3000: grafana
  config:
    image: registry.cn-beijing.aliyuncs.com/cheyang/grafana-config:egs-4.4.3
    links:
      - grafana:grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD}

6. 在部署应用时,需要填写模板参数: NODE_IP, NODE_ID以及后续登录Grafana需要的ADMIN_PASSWORD, 点击确定后,监控应用就开始创建了。

7. 等监控应用创建成功后,在应用列表页面,单击本示例所创建应用的名称 grafana

8. 在服务页面点击 grafana 的 访问端点, 就可以登录 grafana 的登录界面

9. 在Grafana登录界面输入用户名admin和您之前设置的密码(ADMIN_PASSWORD对应的值), 您就可以看到GPU的性能数据,其中包括集群级别的和节点级别的。

设置通知渠道, 这里使用 webhook

  1. 点击 admin-> Alerting-> Notification channels

2. 点击右上角 New Channel,就可以进行通知渠道的配置, 完成后点击保存

  • Name: 通知渠道名称,这里代表扩容,取名scale_out
  • Type: 通知类型,这里代选择 webhook
  • Url: webhook触发的Url, 这里前面获得的弹性扩容Trigger Url
  • Http Method: 这里指触发Trigger Url的Http Action,请选择 POST

3. 这样就可以在通知渠道的列表页面看到 scale_out这个通知渠道

设置报警条件

  1. 点击 admin->Dashboards->Home 回到Dashboard页面,直接点击指标图标题 GPU Usage, 然后选择 Edit

2. 查看 Metrics 标签页中三条sql语句, 其中c 对应的是集群级别的GPU平均使用率, 这也是我们使用的报警条件;当然这个完全可以根据业务需要进行定制

关于$timeFilter GROUP BY time(30s)的含义,请参考 https://github.com/grafana/grafana/issues/7967

3. 跳转到 Alert 标签页, 点击 Create Alert

4. 设置 Alert Config, 这里设置的指标是集群GPU平均使用率大于45%时报警

  • Query: 请设置为C,即集群级别的GPU使用率
  • IS ABOVE: 大于45, 代表使用率大于45%

5. 关联通知渠道, 单击左侧标题栏的 Notifications, 点击 Send to->+, 选择之前创建的 scale_out 通知渠道

6. 保存好后,图表的标题前会有一个灰色的心形标志, 这就代表设置完成,当对应指标达到配置的阈值就会出发报警,具体报警信息会触发通知渠道调用webhook

测试弹性扩容

  1. 对集群中的GPU施压,可以看到Grafana的视图中已经显示报警

2. 同时登陆容器服务管理的集群页面可以看到GPU集群的状态是伸缩中

3. 当扩容完成后,可以看到容器集群的节点数由2个增加到了3个.

4. 在Grafana的视图中也可以看到GPU使用率已经回到正常范围,集群状态恢复正常

总结

本文为您提供了一套可以拼装组合的GPU弹性伸缩方案,其中触发器与伸缩触发条件可以分离,触发条件也可以有更灵活的配置性。您可以根据峰值时间写一个crontab来触发,也可以写与您具体需求相符合的Alert条件, 满足应用运行的需要。阿里云容器服务希望为您提供元语,帮助您因地制宜的定义符合自身场景的弹性缩扩容方案。

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
3月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
381 1
|
3月前
|
人工智能 城市大脑 运维
喜讯!阿里云国产异构GPU云平台技术荣获“2025算力中国·年度重大成果”
2025年8月23日,在工业和信息化部新闻宣传中心、中国信息通信研究院主办的2025中国算力大会上,阿里云与浙江大学联合研发的“国产异构GPU云平台关键技术与系统”荣获「算力中国·年度重大成果」。该评选旨在选拔出算力产业具有全局性突破价值的重大成果,是业内公认的技术创新“风向标”。
473 0
|
8月前
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
1290 61
|
11月前
|
存储 机器学习/深度学习 人工智能
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
|
9月前
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
|
11月前
|
边缘计算 调度 对象存储
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
介绍如何使用ACK Edge与虚拟节点满足DeepSeek部署的弹性需求。
|
11月前
|
机器学习/深度学习 存储 人工智能
2025年阿里云GPU服务器的租赁价格与选型指南
随着AI、深度学习等领域的发展,GPU服务器成为企业及科研机构的核心算力选择。阿里云提供多种GPU实例类型(如NVIDIA V100、A100等),涵盖计算型、共享型和弹性裸金属等,满足不同场景需求。本文详解2025年阿里云GPU服务器的核心配置、价格策略及适用场景,帮助用户优化选型与成本控制,实现高效智能计算。
|
11月前
|
机器学习/深度学习 存储 弹性计算
阿里云gpu云服务器租用价格:最新收费标准及活动价格参考
阿里云gpu云服务器多少钱?A10卡GN7i GPU云服务器32核188G3213.99/1个月起,V100卡GN6v GPU云服务器8核32G3830.00/1个月起,阿里云GPU云服务器是基于GPU应用的计算服务,多适用于视频解码,图形渲染,深度学习,科学计算等应用场景,该产品具有超强计算能力、网络性能出色、购买方式灵活、高性能实例存储( GA1和GN5特有)等特点。下面小编来介绍下阿里云gpu云服务器最新的收费标准及活动价格。