写点什么

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

  • 2023-08-30
    北京
  • 本文字数:3075 字

    阅读完需:约 10 分钟

节省数千 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 未来的发展会是怎样的?


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

 

对于快手在 GPU 资源效率持续提升上的系统性建设,张伟将在 9 月 3 日-5 日的 Qcon 全球软件开发大会上,带来《云原生时代下大规模 GPU 资源利用率优化最佳实践》的主题演讲,对此进行详细介绍,大家可以从中获取 AI 在线服务和离线训练分时复用算力资源的一些新思路。

2023-08-30 15:208534

评论

发布
暂无评论
发现更多内容

FlyFishV2.1更新,更好用的数据可视化编排平台

云智慧AIOps社区

开源 前端 数据可视化 大屏可视化

2021最新Java面试标准,26个技术点一千多道面试题全曝光,赶紧学

爱好编程进阶

Java 面试 后端开发

2021最新一次Java面试,快手三面一轮游,如今已拿意向书

爱好编程进阶

Java 面试 后端开发

如何为数据库选择最佳加密方法

郑州埃文科技

数据库 加密算法

线程和进程有什么区别?

InfoQ IT百科

ScheduleMaster分布式任务调度中心基本使用和原理

神农写代码

如何使用堆栈算出两个链表的总和?

InfoQ IT百科

在没有递归的情况下如何反转单链表?

InfoQ IT百科

在不使用任何库的情况下,如何反转给定句子中的单词?

InfoQ IT百科

2021年阿里、腾讯、百度

爱好编程进阶

Java 面试 后端开发

WEB PC 管理端打包详细教程

CRMEB

一个完整的计算机系统是由什么组成的?

InfoQ IT百科

分享15款免费好用的中文字体

源字节1号

网站开发

给定一个乱序数组,如何搜索最大和最小元素?

InfoQ IT百科

1000道阿里巴巴初级~高级Java工程师面试题(含答案

爱好编程进阶

Java 面试 后端开发

为什么计算机启动最开始的时候执行的是BIOS代码而不是操作系统自身的 代码?

InfoQ IT百科

线程的定义是什么?

InfoQ IT百科

java培训Redis的库存扣减操作

@零度

redis JAVA开发

未来十年,什么开发工程师最火爆?

TinTinLand

区块链

1000页神仙文档,连阿里P8面试官都说太详细了,面面俱到!搞懂这些直接P6+

爱好编程进阶

Java 面试 后端开发

web前端培训react面试题分享

@零度

前端开发 React

从IPv4到IPv6为什么这么久?IPv5哪里去了?

郑州埃文科技

ipv6 ipv4 ipv5

什么是127.0.0.1,如何使用这个IP地址

郑州埃文科技

IP地址 localhost

IP 地理定位:通过地理围栏改善虚拟环境中的数据丢失防护

郑州埃文科技

数据安全 地理围栏 ip地理定位

Authing 正式加入 W3C 组织,将参与相关国际标准制定

Authing

开发者 云原生 API Idaas W3C

大数据培训flink中核心设计、抽象和线程模型

@零度

flink Netty 大数据开发

在一个元素为 1 到 100 的整数数组中,如何搜索缺失元素?

InfoQ IT百科

将博客搬至CSDN

爱好编程进阶

10 个使用 SQL 的 AWS 服务

郑州埃文科技

AWS sql

乙巳篇 天、地、人三才立 《「內元宇宙」聯載》

因田木

中庸

162基于springboot宠物管理系统

爱好编程进阶

Java 面试 后端开发

节省数千 GPU 卡资源,快手如何进行FinOps落地_云原生_褚杏娟_InfoQ精选文章