节省数千 GPU 卡资源,快手如何进行 FinOps 落地

简介: 节省数千 GPU 卡资源,快手如何进行 FinOps 落地

早期,企业在云服务上进行了大量投入,但并非所有资金都得到了有效利用。企业不仅没有享受到云带来的成本红利,反而要面对更高的云账单。在控制云成本需求的促进下,FinOps 理念在国内快速发展,不少企业已经开始落地探索,其中就包括快手。

 

随着业务的快速发展,如何高效利用海量计算资源是摆在容器云编排调度引擎团队面前的重要问题。经过近期探索,该团队已经取得了初步进展:GPU 日均利用率提升 6~8 个百分点,为公司节省数千 GPU 卡资源。快手容器云编排调度引擎团队负责人张伟向 InfoQ 介绍了落地过程的具体实现。

内部实践

InfoQ:快手为什么要引入 FinOps 理念?内部成本问题体现在哪些方面?

 

张伟:快手整体的计算规模已达到数千万核,海量的计算资源要实现精细化的运营和高效的使用,已成为容器平台建设的重中之重。而 FinOps 理念从云成本管理角度,让技术团队更好的理解财务逻辑,感知技术成本,为公司级的降本增效提供了系统化的方法论,与我们的目标高度一致。快手希望能在 FinOps 的理论引导下,更有效的联合财务、平台技术研发和业务团队多方更快的实现提质增效的综合目标。


当前,我们在内部已建立了相对完善的容器资源 SKU 定价、货币化的预算与结算能力。目前内部成本问题仍体现在以下几方面:

 

  • 资源需求持续快速增长,尤其是流量峰值期间资源需求高,而资源日均利用效率仍存在提升空间;
  • 各类计算资源异构,且业务需求(如套餐)也呈多样化,使得资源管理的复杂度较高;
  • 针对已逐步落地的优化效果,如何长效巩固各类降本提效措施,杜绝运动式治理的阶段性生效。

 

InfoQ:快手在 FinOps 实践方面都经过了哪些阶段?每个阶段主要做了哪些事情?


张伟:早期平台启步阶段中,主要由业务提交资源预算,由平台完成交付和保障,资源多采用独占方式使用。


此后进入降本增效的发力时期,我们建立完善的资源抽象模型,如在线 CPU+内存,混部 CPU+混部内存等不同 SKU,通过单独的定价和定制化的计费机制,实现货币化拆分。为达到成本优化的共同目标,业务方重点关注使用量优化减少浪费,而平台及基础设施层则通过迭代硬件、降低损耗、提升任务密度等手段来优化降低 SKU 单价。

 

当前阶段进入深化优化方案时期,建立了明确的预算内、预算外优化目标,通过拆解到多团队,借助流程规模、以及各类平台级技术手段持续提交,实现资源利用率不断逼近理论目标。

InfoQ:实践中如何对各部门进行绩效考核?


张伟:我们在内部建立了资源定价、预算、结算及各指标的观测跟踪等运营机制,落地实践中,针对各业务部门主要是通过资源用量、配额以及容器资源的实际使用率如峰均及日均数据来进行考核。而对于平台则重点会通过收支数据、资源日均等指标进行考核。

InfoQ:成本可视化方面,快手具体做了哪些工作?面向 FinOps 的利用率监控和传统的运维监控有什么区别?


张伟:快手内部针对成本建立了较为完善的度量和跟踪能力,会按月生成各业务线及各类平台的的收支帐单。同时针对资源在容器、宿主机多个维度跟踪了峰均、日均、时均及闲置、低利用率数据。

 

相比传统的利用率监控,我们关注的更多维度,首先是容器维度,代表业务层对已分配资源的使用效率,如业务容器内的峰均和日均使用率是核心项,它们衡量了业务实际利用水平。与此同时,宿主机维度的峰均和日均分布受配额执行率和平台资源超发能力的影响。此外,容器及主机维度的空闲率和低利用率也会是我们的关注和考核项。

InfoQ:成本优化方面,快手是从哪些方面着手的?具体是怎么做的?


张伟:快手内部的优化从预算内和预算外同时着手并行推进。引导业务及平台层推进各项治理活动。

 

对于业务侧,重点是从业务的结算成本维度进行顶层驱动,引导业务合理规划容量,压缩非必须的资源配额和用量。而对于各类平台,则通过整体的资源利用率等核心指标建立详细的规划,让平台自己围绕指标展开实施各类成优化的技术方案,包括如平台损耗、资源超发、在离线混部类措施。

 

而各类优化项均会在资源的定价或使用量上有所体现,并最终反馈到业务的结算成本上,我们会从对定价还是配额用量的影响来量化各自的贡献。

InfoQ:众多的云基础设施中,哪部分成本占比最多?针对这部分设施做了哪些优化工作?


张伟:我们所重点参与的主要还是快手内部的计算领域,相应部分 CPU 和 GPU 相应的成本整体最高。主要的优化工作还是围绕在业务高峰期以尽可能少的资源满足业务峰值场景下的资源需求,同时通过系列能力来削峰填谷,实现日均维度的利用率提升。

 

针对 CPU 资源,我们多角度出发分别落地了大量措施。在线场景下,我们建设了服务画像能力,基于实际利用率数据建立平台级的套餐推荐和动态超卖等能力,压缩业务侧使用浪费的情况。同时通过 CPU 在离线混部机制,基于存量进行资源的超发混部,实现二次售卖。

 

而对于 GPU 场景,则重点建设了 GPU 虚拟化分配能力,打破整卡分配限制,同样规模化应用了 GPU 的在离线混部,而支持近离线任务,从而实现整体成本的降低。此外针对低利用率场景的运营治理活动及限制也是重要的补充手段。

InfoQ:快手如何在 FinOps 商业产品和开源产品选择的?使用云厂商产品会不会产生“锁定”问题?


张伟:快手的 FinOps 相应的机制,目前还是以开源基础上进行自研定制为主。目前对于云厂商的产品使用,会综合成本和性能选择多个云厂商,目前并不局限在单一云厂商上。

经验分享

InfoQ:目前的 FinOps 落地处于哪个阶段?为什么? 阻碍落地的因素有哪些?企业又该如何解决?


张伟:在 FinOps 落地过程中,可以理解主要有成本分析量化、执行成本优化和持续运营治理三个主要阶段。快手目前还第二、三阶段之间,已经通过包括套餐标准化及推荐、调度机制优化、在离线混部、GPU 虚拟化等系列平台级能力取得了一定的优化成果,将 CPU 及 GPU 日均利用率提升到了业界前列的水平,但基于总体量出发,仍有进一步收益空间。

 

我们现在主要重心投入的是包括在离线计算资源的统一调度和自由流转的相应能力。这个过程包括混合部署的业务稳定性提升、资源的精细化运营都是挑战。我们当前重点从长期主义出发,在资源抽象、调度框架上完成一致化的建设,再逐步由财务成本驱动实现最终的目标。

InfoQ: 您认为,企业确保 FinOps 实践成功的关键是什么?有哪些经验可以分享?

 

张伟:要实现 FinOps 实践落地,首先需要建立一个合理的量化模型,并尽可能大的范围内取得相应的共识,尤其是让大家都有效的感知成本及目标。其次,持续优化迭代跟踪会是落地的重要保证。快手在执行 FinOps 实践时,首先从组织上,自上而下推动了各平台拉齐成本优化的目标设定。此外,在落地过程中,定期进行复盘对齐,保证整体收益和机制会成为长期有效的沉淀也会是关键所在。

 

在快手内的经验,我们会持续完善过程中的指标,如利用率维度,主机、逻辑核、基准核等各类维度的数据都会被关注。落地过程中,组织从上到下达成共识,会对预设的年度目标拆解到各个月,并在每月月末进行定期复盘和同步相应核心指标数据,从而来保障组织上的切实落地。

InfoQ:当下技术热点转变很快(如大模型落地),FinOps 降本增效实践还在持续进行中吗?您认为,FinOps 未来的发展会是怎样的?


张伟:快手降本增效实践仍在持续进行中,当前已迈入深水区,未来要实现收益还需要更为精细化的能力机制。考虑当前的整体算力体量,收益仍然是巨大的,我们从利用率等多维度设定了未来几年的建设目标,会持续迭代各类通用化的降本增效动作。

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
5天前
|
机器学习/深度学习 人工智能 资源调度
GPU计算资源智能调度:过去、现在和未来
随着AI和大数据技术发展,GPU成为关键计算组件。文章探讨了GPU计算资源调度从静态到动态再到智能调度的演变,现以机器学习优化资源利用率。未来趋势包括自适应调度、跨平台、集群级调度和能源效率优化,旨在提升GPU性能,推动人工智能和大数据领域进步。
|
5天前
|
Kubernetes 监控 调度
Kubernetes(K8s)与虚拟GPU(vGPU)协同:实现GPU资源的高效管理与利用
本文探讨了如何使用Kubernetes和虚拟GPU(vGPU)实现异构GPU的协同调度。Kubernetes是一个容器编排平台,通过设备插件、资源规格、调度器扩展和节点标签实现GPU资源管理。vGPU技术允许物理GPU资源在多个虚拟机或容器中共享。文章详细介绍了vGPU的部署配置步骤,并提出了GPU资源调度、负载均衡和监控调优的方法。强调虚拟GPU的性能取决于硬件和驱动支持,合理配置能提供高性能计算环境。参考文献包括Kubernetes和NVIDIA官方文档及相关研究论文。
|
5天前
|
编解码 监控 调度
GPU实例使用--vGPU资源利用率的提升、监控与告警的实现
随着AI计算及云游戏为代表的图形渲染业务的飞速发展,越来越多的企业和个人开始使用GPU实例。同时,由于GPU算力资源成本较高,对于负载相对较小的业务,客户会更倾向于选择使用1/2或者1/4甚至更小的vGPU实例来运行其业务,vGPU技术随之得以迅速发展。
|
9月前
|
弹性计算 人工智能 运维
基于ACK One注册集群实现IDC中K8s集群以Serverless方式使用云上CPU/GPU资源
在前一篇文章《基于ACK?One注册集群实现IDC中K8s集群添加云上CPU/GPU节点》中,我们介绍了如何为IDC中K8s集群添加云上节点,应对业务流量的增长,通过多级弹性调度,灵活使用云上资源,并通过自动弹性伸缩,提高使用率,降低云上成本。这种直接添加节点的方式,适合需要自定义配置节点(runtime,kubelet,NVIDIA等),需要特定ECS实例规格等场景。同时,这种方式意味您需要自行
|
缓存 Linux Shell
Docker资源(CPU/内存/磁盘IO/GPU)限制与分配指南
什么是cgroup? cgroups其名称源自控制组群(control groups)的简写,是Linux内核的一个功能,用来限制、控制与分离一个进程组(如CPU、内存、磁盘输入输出等)。 什么是Docker资源限制?
|
11月前
|
机器学习/深度学习 程序员 异构计算
【深度学习工具】Python代码查看GPU资源使用情况
在训练神经网络模型时候,有时候我们想查看GPU资源的使用情况,如果使用Ctrl+Shift+Esc不太符合我们程序员的风格?,如果可以使用代码查看GPU使用情况就比较Nice。话不多说,直接上代码。
583 0
|
机器学习/深度学习 Kubernetes 并行计算
如何通过ACK 纳管Nvidia A100 GPU实例,实现资源池化
### 介绍 在GTC 2020(5月14日)大会上英伟达新一代架构“Ampere”(安培)正式亮相。继数据中心Volta GPU推出三年后终于亮剑。Ampere以数据中心GPU A100的形式首次亮相,专为科学计算,云图形和数据分析而构建。 ![image.png](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/614630bc
1262 0
如何通过ACK 纳管Nvidia A100 GPU实例,实现资源池化
|
Prometheus 监控 并行计算
从监控到隔离,阿里云容器服务提升您的GPU资源使用体验
通过使用阿里云容器服务的GPU支持,可以提升GPU资源管理的可见性,了解到需要多少的GPU资源可以支撑图像识别,语音识别,在线翻译等业务,如何能用最少的成本满足业务需求;而可以在无需修改现有GPU程序的前提下,保障多个容器共享同一个GPU时,实现彼此互相隔离。
2521 0
|
Prometheus 监控 Kubernetes
体验托管Prometheus监控阿里云容器服务Kubernetes的GPU资源
通过ARMS管理Kubernetes集群GPU性能指标 在阿里云容器服务中使用GPU资源运行进行AI模型训练和预测时,经常需要了解应用负载的GPU的使用情况,比如每块显存使用情况、GPU利用率,GPU卡温度等监控信息,通过内置ARMS可以从应用的维度去观测GPU的使用情况,了解资源水位,以及设定相应的报警,避免因为GPU资源的约束引发业务风险。
1439 0
体验托管Prometheus监控阿里云容器服务Kubernetes的GPU资源
http://www.vxiaotou.com