腾讯陈东东:Caelus全场景在离线混部的思考与实践( 二 )


混部资源使用状态 , 包括节点资源、在线资源、离线资源等;业务运行健康度 , 在线是否受到影响、离线是否正常运行;预测 , 短/长周期预测的数据来源;干扰检测 , 在线干扰识别的对比依据 。
此外 , 指标也需满足多维度、周期长、可溯源等要求 , 该如何实现呢?
多维度指标来源:Cadvisor、Node、eBPF、Perf、RDT、自定义指标 。
集成TSDB事件序列存储
本地存储 , 占用空间少 , 重启不影响;
支持时间范围查询、效率高;
支持Prometheus查询接口 , 方便溯源;
支持表达式查询 , 数据统计更便捷 。
预测
在混部过程中 , 预测可以指导我们为离线服务预留资源量 , 否则就只能根据历史经验对离线可用资源量进行预估 。
离线资源配置过低 , 机器利用率提升有限;离线资源配置过高 , 与在线资源产生竞争 。 腾讯陈东东:Caelus全场景在离线混部的思考与实践
文章图片
为了更好地保护在线资源服务 , 大多时候我们只在波谷时期部署离线任务 , 而不是24小时混部 。 动态预测可以使离线资源随在线资源量的变化而变化 , 在不挤占在线资源的前提下 , 实现资源利用率最大化 。
预测有两种不同的方式 。集中预测
腾讯陈东东:Caelus全场景在离线混部的思考与实践】全局考虑应用下所有实例资源使用情况 , 进行统一预测;新扩容机器根据历史数据立即获取到预测资源 。
分布式预测
根据节点资源实际使用量预测 , 包括在线和系统进程;在线作业资源突变时 , 可以快速作出反应 。
一些常用的预测算法如下所示:长周期预测:Prophet、Longshort-termmemory(LSTM);短周期预测:VPA、Autopilot、AutoRegressiveIntegrated;机器学习:MultilayerPerceptorn(MLP) 。 干扰检测与处理腾讯陈东东:Caelus全场景在离线混部的思考与实践
文章图片
干扰检测与处理是混部的放大器 。 以CPU资源管理为例 , 为了更好地保护在线业务 , 我们可以采用CPUset隔离核的方式 , 让离线任务只能运行在共享池 , 不允许复用绑定池资源 。 这会带来绑定池空闲资源无法被利用 , 而共享池资源被离线作业严重挤压问题 。 腾讯陈东东:Caelus全场景在离线混部的思考与实践
文章图片
基于权重的共享CPU管理方式让离线应用可以复用所有空闲资源 , 同时调低离线任务的权重来降低对在线CPU资源的抢占 , 并采用quota与period结合的形式来限制离线业务对资源的使用 。
在这种模式下 , 在线是不是一定不会受到干扰呢?答案是否定的 。
腾讯陈东东:Caelus全场景在离线混部的思考与实践
文章图片
共享Cache和内存带宽等资源 , 在线应用仍会有影响;
资源隔离依赖某些硬件功能或系统配置 , 受场景限制;
内核版本低 , 隔离能力弱 。
为了更好地保证在线服务质量 , 需要干扰检测与处理机制 。 该机制全方位实时检测在线是否受到干扰 , 并采取措施 , 如压制离线资源或驱逐离线任务 , 及时消除干扰 。
腾讯陈东东:Caelus全场景在离线混部的思考与实践
文章图片
多维度指标收集:系统级别和业务级别;时序数据库存储:指标数据长时间存储 , 便于周期性和多维度对比;插件式干扰检测框架:灵活扩展 , 自定义检测插件 。
混部资源管理方式
腾讯陈东东:Caelus全场景在离线混部的思考与实践
文章图片
离线任务运行在在线机器上 , 复用在线机器的空闲资源 , 在云原生场景下应该如何管理离线资源呢?