AI 异常计算点的监控调度

作者:胡俊彬

一、背景

互联网产业拥抱AI成为了当下的热潮:无人驾驶、医疗AI和智能推荐从实验室走出,融入到工程实业中;腾讯自主研发的王者荣耀等游戏AI给人们带去了快乐,“绝艺”更是获得了UEC杯冠军;而AI和海量计算力分不开,绝艺每天的盘数计算量都在亿级,王者每天计算结果均在百T,这些业务源源不断的计算力均来自腾讯架平TCS-弹性计算平台。该平台是根置于架平存储设备搭建而成,建设中最突出的问题是如何发现并调度异常计算点,本文从cpi的角度来介绍弹性平台的解决之道。

二、CPI

弹性平台中的设备都是在线业务与计算业务混部,尤其是AI计算,cpu时间片可完全吃满,利用率持续100%,但利用率反映的是当前机器在某个时间点的运行情况,并不能用于度量程序指令的cpu消耗,因此弹性平台需量化一个指标反映每条程序指令的执行耗时,CPI技术便被引入了弹性平台。

CPI的全称:Clock cycles Per Instruction,表示执行某个程序或者程序片段时每条指令所需的时钟周期数。从cpi角度计算程序执行的cpu周期,参考如下公式:

C表示指令数,假设程序的指令数一定,程序耗费在cpu上的周期数,取决于cpi值,cpi值越大,时钟周期数越多,反映到业务层的耗时也就越久。下图为计算测试的cpi值与延时的趋势图(存在噪点):

三、业务建模

弹性平台采用异常CPI检测算法,使用cpi值监控业务运行状况,运营中捕获cpi异常点。cpi检测算法:监控正常运行的各种程序指标数据,将数据计算一个模型,通过模型的正常范围衡量实时运行的cpi值,超出范围,则为捕捉异常点。

模型定义

弹性平台复用的存储类母机上在线业务cpu使用率特点:稳定的分布在某个小范围内,针对这种情况,构建模型如下:

上图中每个圆代表一簇cpi值,由于映射到同一个cpu使用率区间而聚成簇。对于每一簇cpi值,计算其标准差,作为对应cpu使用率的cpi值所在的分布范围。0-n的cpu_usage计算所得cpi值分布范围组成模型。检测阶段,对于每个(cpu_usage,cpi)值对,首先根据cpu_usage映射到模型中某个簇中,通过cpi值比对标准差,判断该cpi是否在对应的正常范围内。

模型运营 模型训练的关键点:如何划分cpu_usage区段,划分过粗,模型中cpi值的区分度模糊;划分过细,模型中的cpi值失去统计意义。当前的实现中,结合存储业务的cpu特性,cpu_usage按照每0.001跨度划分,划分在目前看来有效。模型运营中简单的归纳为几个准则: a) 对于cpu利用率稳定的,宜细分cpu_usage;cpu跨度大的,宜粗分cpu_usage,且考虑同时映射到两个不同的簇。 b)考虑最近的簇所代表的cpu使用率,与当前cpu使用率值的差距,如果差距过大基本直接判定为异常分布。 c)现网运营中发现:cpu利用率低,但存在cpi值异常升高的情况,将其定义为噪点因素。而对于存储等cpu稳定的设备,当cpu利用率超过某个值(架平存储是25%),可以拟合出一条线性回归直线,采用训练和检验打分矫正有效性。

四、调度

运行中的AI运算,持续的吃cpu时间片,虽然Linux采用了CFS公平调度策略,但存储引擎与AI计算混部竞争,相比于单跑存储引擎,增加了调度和现场恢复等时延消耗。现网运营中还发现,AI计算火力全开时(如下图),存储引擎偶尔会出现获取cpu时间片不够的情况。综上,弹性平台监控存储引擎的cpi标准差,当偏差超过限定的范围,即为异常计算点,平台执行调整或调度操作。

冲突检测

存储引擎的实时cpi值与模型偏差差距N(可配置)倍的标准差,平台计为一次异常,考虑到毛刺的收敛,连续出现多次或者某段时间内出现N次,平台置为有效异常点并告警,根据异常的严重程度,平台做调整或者调度操作。

动态调整

监控到cpi异常,平台优先调低AI计算的quota值,调整采用“乘性减 加性增”策略,将quota值降一半,限制AI容器的cpu时间片分配,若一段时间内,cpi监控未检测到异常,平台加性恢复AI容器quota值。

跨机调度

平台统计的cpi异常调整次数超过N次,或者quota值小于period值,即可用的cpu能力小于一核,平台执行调度替换操作,并冻结被调度母机一段时间,此时间段内不会创建计算容器。下图为某业务调度月图。

五、总结

平台基于cpi构建的模型监控调度异常点,但由于在线业务的业务量、业务模型、网络环境的变化,会使cpi模型可用性降低。模型需动态更新,可持续性的描述现网业务的运行状态。对此,弹性平台正在做cpi异常告警数据的收集分析,并结合业务侧的时延不断的修正模型。

本文来自:腾讯架构师 公众号

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

StuQ 大数据工程师技能图谱

https://github.com/TeamStuQ/skill-map StuQ 程序员技能图谱 官网 Web 页面地址:http://skill-map...

36910
来自专栏机器之心

学界 | UC Berkeley提出新型分布式框架Ray:实时动态学习的开端

2674
来自专栏AI科技评论

学界 | 大规模分布式存储如何优化?Facebook说自己的方法能把CPU负载降一半

AI 科技评论按:Facebook今天在研究blog上发布了一篇文章,介绍了自己的超大规模图分区优化算法SHP。这是 Facebook 为了处理自己的规模过大的...

3175
来自专栏机器人网

基于嵌入式Linux的移动机器人控制系统

随着科学技术的发展和社会的需要,移动机器人技术得到了迅速发展,正在渗透到各行各业中,使人们的生活更加便利。现今以单片机为核心的移动机器人存在处理数据量有限、控制...

3535
来自专栏SDNLAB

社交概念与SDN模型有什么相似之处?

社交原则似乎与网络工程,设计和软件定义网络有着奇怪的联系,或许就像很多人说的一个看似无关的原则通常可以应用于其他场景。社会辅助性原则对网络控制平面的使用和SDN...

782
来自专栏顶级程序员

不多掏钱 让数据库快200倍,Really?!

这年头几乎每个人都在这样那样抱怨性能。数据库管理员和程序员不断发现自己处于这种情形:服务器遇到了瓶颈,或者查询起来没完没了,这种情况并不少见。这种郁闷对我们所...

35211
来自专栏企鹅号快讯

AI 时代下腾讯的海量业务智能监控实践

作者丨李春晓:腾讯高级工程师,目前为腾讯SNG社交网络运营部社交平台业务运维组员工。 海量业务的挑战 互联网业务讲究“极致、口碑、快”,经历过长时间的演进,腾讯...

42010
来自专栏大数据挖掘DT机器学习

大数据分析:机器学习算法实现的演化

下面将会对机器学习算法的不同的实现范式进行讲解,既有来自文献中的,也有来自开源社区里的。首先,这里列出了目前可用的三代机器学习工具。 传统的机器学习和数据分析的...

42410
来自专栏LET

谈谈3D Tiles(3):个人总结

37011
来自专栏大数据和云计算技术

智能调度:Stanford的Quasar

智能、自动化是对系统孜孜不倦的追求,尤其是在资源调度这块。传统的YARN/MESOS有各种资源分配算法,如DRF,capacity scheduler,fair...

2625

扫码关注云+社区