混部集群中基于二阶段干扰感知离线任务调度方法及系统

文档序号:37008548发布日期:2024-02-09 12:56阅读:19来源:国知局
混部集群中基于二阶段干扰感知离线任务调度方法及系统

本发明涉及大规模数据中心领域,具体地,涉及一种混部集群中基于二阶段干扰感知离线任务调度方法及系统。


背景技术:

1、在如今的大规模数据中心里,通常包含面向用户的延迟敏感型(latency-sensitive,ls)的在线服务和大量批处理的尽最大努力(best-effort,be)的离线任务。在线服务通常是与用户进行交互的,包括即时的软件消息、实时搜索或者购买预定等实时信息,在线服务一般对时延要求比较高,并以响应时间作为衡量服务性能的指标。离线任务通常指的是进行大量计算的批处理任务,这类任务往往一次性执行,并对时间要求不高,通常包含数据库sql执行语句、进行合并或复制的任务和机器学习训练任务等。为了提高机器的资源利用率,通常将这两类应用部署在同一集群中,并使用分布式系统进行调度。但是部署在同一主机,甚至在同一socket的在线服务与离线任务之间难免会产生干扰问题,这会导致在线服务的服务质量下降。

2、在主机整体资源利用率较低时,干扰问题一般不太严重,不会对在线服务产生显著的影响;但是随着任务变多,主机资源利用率升高时,干扰问题就会比较明显。这是因为处于同一socket的任务会共享主机的llc,处于同一cpu物理核的任务会共享l1、l2 cache,cache的内容查找和缺页替换问题会带来很高的性能开销。与在线服务相比,离线任务的优先级通常较低,因此在干扰问题较为严重时,需要暂停甚至杀死离线任务来保证在线服务的服务质量,直到干扰问题得到缓解,再恢复离线任务的运行。这样的做法虽然可以减少干扰问题的发生,但是不断地杀死离线任务同样带来很大的性能开销和浪费。

3、为了缓解或者避免干扰问题的发生,主要研究的问题可以分为两类:基于性能剖析的干扰避免和基于反馈式的干扰缓解。基于性能剖析的干扰避免问题通常会采取预训练特征分析的方法,例如对比单独部署的服务和不断增加压力下的服务的性能的变化,来量化干扰以及避免干扰的发生。但是这类问题通常难以泛化,或者在服务扩展时还需要进行模型的重新构建。基于反馈式的干扰缓解问题通常要基于性能指标的实时采集,通过响应时间或者cpi(cycle per instruction)的变化来采取不同的策略,这类方法无需在服务启动之前做过多的模型训练,但是对服务运行时的采集性能有很高的要求,往往不适用于大规模集群中的部署,因为需要在所有的主机上都进行采集工具的部署。此外,如何在主机发生sla违反时快速地将主机服务恢复至正常也是一个巨大的挑战。

4、专利文献cn116880980a公开了一种多资源感知的gup共享动态资源调度方法及系统,涉及计算机技术领域,包括:离线获取每个深度学习任务在不同gpu数量上的平均单次迭代时间;离线记录每次迭代中的数据加载、数据预处理、前向和反向传播、参数同步四个阶段的平均持续时间作为每种资源类型的占用时间;根据集群空闲资源和任务的不同资源需求决定任务合并共享gpu的最优分组策略和在集群中的最优放置策略,将任务下发至计算节点执行。但该发明没有进一步考虑离线任务间自身的干扰问题,在混合部署的场景下更好的避免干扰的发生。


技术实现思路

1、针对现有技术中的缺陷,本发明的目的是提供一种混部集群中基于二阶段干扰感知离线任务调度方法及系统。

2、根据本发明提供的一种混部集群中基于二阶段干扰感知离线任务调度方法,包括:

3、步骤s1:基于历史任务资源数据分析,建立基于高斯混合模型的离线任务特征聚类预测模型;

4、步骤s2:根据不同任务对资源的敏感程度不同的分析,构建基于因果推断的任务特征分析,推断出任务是否为cpu敏感型或内存敏感型;

5、步骤s3:根据推断出的任务资源特征,建立基于强化学习的在线干扰量化模型,对任务的调度进行打分,选择一批不发生sla违反的容器作为候选容器;

6、步骤s4:对不同任务的组合关系进行分析预测,从候选容器中选择一个最佳容器作为调度的策略。

7、优选地,在所述步骤s1中:

8、基于数据中心的真实生产集群中的数据进行分析,集群中的在线服务运行于特定主机之上,采用负载均衡的思想,在线服务有实例部署在不同的主机上,用户的请求被平均地转发到各个实例上进行处理;在线服务采集的性能指标包括主机cpu利用率、主机mem利用率、每秒查询率qps、以及响应时间rt;随着时间的变化,qps呈现周期性的波动,并且cpu利用率通常处于相对较低的水平;

9、与在线服务相反,离线任务占用较高的cpu利用率,每个离线任务的实例消耗资源较少,离线任务的数量较多,并且每个离线任务以job、task、instance的层次结构划分出多个实例;task级别描述的是不同离线任务下子任务的类型,一个sql任务包含多个map、join和reduce子任务,由于子任务之间为上下游的关系,形成一条链路,离线任务表示成一个有向无环图dag;业务生产环境中存在着任务重复运行的特点,若有两个离线任务的dag图相同,则这两个任务执行了相同的代码逻辑,但是所运行的代码片断不同;

10、不同类型的离线任务有不同的资源消耗特征;负责数据复制和迁移的duplicate任务cpu用量相对较低,运行时间随着数据量的增加而变长;查询任务sql和sqlrt进行数据的处理、合并、排序操作,sqlrt任务要求在预设时间内完成,占用资源量通常较多;机器学习类任务algorithm随着具体任务的不同有不同的资源消耗量,机器学习类任务运行时间比其他任务的时间更长,根据不同任务的调用链关系和任务类型对任务进行进一步资源画像;

11、基于高斯混合模型的预测框架:

12、同一个cpu核上,或同一个socket上的进程存在资源竞争的问题,不同任务的实例的cpu用量处于不同的范围内,呈现出不同的均值和方差,多个任务的组合有特定的均值及方差,采用高斯混合模型对实例的资源消耗情况进行预测,待预测的指标有实例的每秒cpu用量、每秒内存用量和运行时间。

13、优选地,在所述步骤s2中:

14、基于因果推断的特征分析:

15、基于预测模型,得到离线任务实例的资源使用情况,cpu敏感型任务指的是当离线容器内的资源利用率波动剧烈情况符合预设标准时,离线任务实例本身的资源用量也会受到影响程度符合预设标准的一批实例;cpu不敏感型指的就是实例资源用量不会受到容器资源利用率的影响的实例;

16、对于同一类离线任务,运行时间和每秒cpu用量呈现反比例趋势,实例的运行时间越长,每秒的cpu用量就越少,运行时间越短,每秒的cpu用量越多;实例与主机cpu用量之间的关系为:主机容器的cpu用量越高,实例的cpu用量越低;这样的实例符合cpu敏感型任务,设计因果推断模型进行特征分析;

17、通过随机化实验确定只有离线容器利用率对实例产生影响;使用多因素之间的因果推断研究,构建贝叶斯网络模型,计算公式如下:

18、ate= e[y|treatment]-e[y|control]     (1)

19、其中treatment为要控制的变量,在实验中为较高的离线容器cpu利用率,control为对照组,ate为平均对待影响;e为实验组和对照组分别的影响结果effect,y为有概率受到影响的因素,在实验中是离线实例的每秒cpu用量;

20、公式计算出的值越大,treatment对最终结果的影响越大,离线容器cpu利用率的波动分对实例cpu用量有影响,实例为cpu敏感型;采取同样的方式对内存敏感型任务进行分析。

21、优选地,在所述步骤s3中:

22、基于强化学习的在线干扰量化模型:

23、在在线服务干扰量化模型中,环境是主机当前的资源利用状态,包括cpu利用率和内存利用率,动作是新加入离线实例的资源使用情况,是基于混合高斯模型中预测得到的,奖励是主机在加入离线实例之后的在线服务响应时间的变化;

24、采用基于value、based的强化学习方法,由于资源利用率的数值是连续的,使用连续的状态空间和动作空间,并且基于深度学习表征q函数;其中,主机下一时刻的环境包含到来的离线实例的资源使用情况,以及在下一时刻运行完成的离线任务的资源占用情况;每个主机需要维护一张完成时间表,奖励函数根据响应时间的值进一步计算,根据在一段时间内采集到的响应时间的p95分位数,设定一个响应时间阈值rtth,并进一步计算奖励值:

25、

26、其中,p是一个常数,设置为2,resptime为当前状态下得到的响应时间的指标;

27、对于离线任务,根据动作计算不同在线服务的奖励值,并选取奖励值较高的主机作为候选主机,在进行离线任务干扰量化后进行最终调度。

28、优选地,在所述步骤s4中:

29、基于注意力的离线任务干扰量化模型:

30、为每个类型的离线任务构建一组特征向量,在经过嵌入层表征之后,使用多头注意力机制刻画任务与任务之间的组合关系,经过编码解码器之后输出得到的特征矩阵,并用cpi表征离线容器的干扰情况,作为深度学习模型的目标值进行训练,得到离线任务干扰量化模型;在离线任务实例经过在线服务干扰模型的筛选之后,根据选择出的特定主机,进行离线容器的选择,基于训练好的模型进行干扰程度判断,选择最优的离线容器进行调度。

31、根据本发明提供的一种混部集群中基于二阶段干扰感知离线任务调度系统,包括:

32、模块m1:基于历史任务资源数据分析,建立基于高斯混合模型的离线任务特征聚类预测模型;

33、模块m2:根据不同任务对资源的敏感程度不同的分析,构建基于因果推断的任务特征分析,推断出任务是否为cpu敏感型或内存敏感型;

34、模块m3:根据推断出的任务资源特征,建立基于强化学习的在线干扰量化模型,对任务的调度进行打分,选择一批不发生sla违反的容器作为候选容器;

35、模块m4:对不同任务的组合关系进行分析预测,从候选容器中选择一个最佳容器作为调度的策略。

36、优选地,在所述模块m1中:

37、基于数据中心的真实生产集群中的数据进行分析,集群中的在线服务运行于特定主机之上,采用负载均衡的思想,在线服务有实例部署在不同的主机上,用户的请求被平均地转发到各个实例上进行处理;在线服务采集的性能指标包括主机cpu利用率、主机mem利用率、每秒查询率qps、以及响应时间rt;随着时间的变化,qps呈现周期性的波动,并且cpu利用率通常处于相对较低的水平;

38、与在线服务相反,离线任务占用较高的cpu利用率,每个离线任务的实例消耗资源较少,离线任务的数量较多,并且每个离线任务以job、task、instance的层次结构划分出多个实例;task级别描述的是不同离线任务下子任务的类型,一个sql任务包含多个map、join和reduce子任务,由于子任务之间为上下游的关系,形成一条链路,离线任务表示成一个有向无环图dag;业务生产环境中存在着任务重复运行的特点,若有两个离线任务的dag图相同,则这两个任务执行了相同的代码逻辑,但是所运行的代码片断不同;

39、不同类型的离线任务有不同的资源消耗特征;负责数据复制和迁移的duplicate任务cpu用量相对较低,运行时间随着数据量的增加而变长;查询任务sql和sqlrt进行数据的处理、合并、排序操作,sqlrt任务要求在预设时间内完成,占用资源量通常较多;机器学习类任务algorithm随着具体任务的不同有不同的资源消耗量,机器学习类任务运行时间比其他任务的时间更长,根据不同任务的调用链关系和任务类型对任务进行进一步资源画像;

40、基于高斯混合模型的预测框架:

41、同一个cpu核上,或同一个socket上的进程存在资源竞争的问题,不同任务的实例的cpu用量处于不同的范围内,呈现出不同的均值和方差,多个任务的组合有特定的均值及方差,采用高斯混合模型对实例的资源消耗情况进行预测,待预测的指标有实例的每秒cpu用量、每秒内存用量和运行时间。

42、优选地,在所述模块m2中:

43、基于因果推断的特征分析:

44、基于预测模型,得到离线任务实例的资源使用情况,cpu敏感型任务指的是当离线容器内的资源利用率波动剧烈情况符合预设标准时,离线任务实例本身的资源用量也会受到影响程度符合预设标准的一批实例;cpu不敏感型指的就是实例资源用量不会受到容器资源利用率的影响的实例;

45、对于同一类离线任务,运行时间和每秒cpu用量呈现反比例趋势,实例的运行时间越长,每秒的cpu用量就越少,运行时间越短,每秒的cpu用量越多;实例与主机cpu用量之间的关系为:主机容器的cpu用量越高,实例的cpu用量越低;这样的实例符合cpu敏感型任务,设计因果推断模型进行特征分析;

46、通过随机化实验确定只有离线容器利用率对实例产生影响;使用多因素之间的因果推断研究,构建贝叶斯网络模型,计算公式如下:

47、ate= e[y|treatment]-e[y|control]     (1)

48、其中treatment为要控制的变量,在实验中为较高的离线容器cpu利用率,control为对照组,ate为平均对待影响;e为实验组和对照组分别的影响结果effect,y为有概率受到影响的因素,在实验中是离线实例的每秒cpu用量;

49、公式计算出的值越大,treatment对最终结果的影响越大,离线容器cpu利用率的波动分对实例cpu用量有影响,实例为cpu敏感型;采取同样的方式对内存敏感型任务进行分析。

50、优选地,在所述模块m3中:

51、基于强化学习的在线干扰量化模型:

52、在在线服务干扰量化模型中,环境是主机当前的资源利用状态,包括cpu利用率和内存利用率,动作是新加入离线实例的资源使用情况,是基于混合高斯模型中预测得到的,奖励是主机在加入离线实例之后的在线服务响应时间的变化;

53、采用基于value、based的强化学习方法,由于资源利用率的数值是连续的,使用连续的状态空间和动作空间,并且基于深度学习表征q函数;其中,主机下一时刻的环境包含到来的离线实例的资源使用情况,以及在下一时刻运行完成的离线任务的资源占用情况;每个主机需要维护一张完成时间表,奖励函数根据响应时间的值进一步计算,根据在一段时间内采集到的响应时间的p95分位数,设定一个响应时间阈值rtth,并进一步计算奖励值:

54、

55、其中,p是一个常数,设置为2,resptime为当前状态下得到的响应时间的指标;

56、对于离线任务,根据动作计算不同在线服务的奖励值,并选取奖励值较高的主机作为候选主机,在进行离线任务干扰量化后进行最终调度。

57、优选地,在所述模块m4中:

58、基于注意力的离线任务干扰量化模型:

59、为每个类型的离线任务构建一组特征向量,在经过嵌入层表征之后,使用多头注意力机制刻画任务与任务之间的组合关系,经过编码解码器之后输出得到的特征矩阵,并用cpi表征离线容器的干扰情况,作为深度学习模型的目标值进行训练,得到离线任务干扰量化模型;在离线任务实例经过在线服务干扰模型的筛选之后,根据选择出的特定主机,进行离线容器的选择,基于训练好的模型进行干扰程度判断,选择最优的离线容器进行调度。

60、与现有技术相比,本发明具有如下的有益效果:

61、1、本发明提出的干扰感知的调度框架是基于大规模数据中心的真实生产数据分析出的特征进行的模块设计,适合大规模集群的分布式混合部署的微服务框架;

62、2、本发明比较普遍适用于集群调度的干扰研究的场景,不需要复杂的集群服务隔离运行来采集数据的过程,从历史数据的用量特征便可以进行分析建模;

63、3、目前对于混合部署干扰问题的研究更多的偏向于在线服务和在线服务之间的干扰问题,也有一部分问题研究了离线任务对在线服务的干扰,本发明进一步考虑了离线任务间自身的干扰问题,在混合部署的场景下更好的避免干扰的发生,提高服务质量和整体的资源利用率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1