任务调度方法和装置、存储介质以及计算设备制造方法及图纸

技术编号:21140578 阅读:22 留言:0更新日期:2019-05-18 05:01
本发明专利技术公开了一种任务调度方法和装置、存储介质及计算设备,适于拥有两个逻辑核的物理核。分别为每个逻辑核维护任务队列。当需要为第一逻辑核分配任务的时候,判断第二逻辑核上正在运行的任务是否对延迟极度敏感的在线任务。如果是,则将第一逻辑核的任务队列中的离线任务删除。另一方面,在第一逻辑核即将或开始执行对延迟极度敏感的在线任务时,判断第二逻辑核是否正在执行离线任务。如果是,则中断第二逻辑核当前正在执行的离线任务,并对其重新进行任务调度。由此能够在避免显著降低资源利用率的情况下有效消除离线任务造成的超线程干扰。

Task scheduling methods and devices, storage media and computing devices

【技术实现步骤摘要】
任务调度方法和装置、存储介质以及计算设备
本公开涉及任务调度
,特别涉及消除超线程干扰的任务调度

技术介绍
在传统数据中心中,在线应用(在线任务)一般单独部署在一批物理机上。为了应对业务高峰期的突发流量(如“双十一”之类的促销),一般物理机都会预留出足够的硬件资源。而从另外一个层面来看,在业务低谷期,将会导致大量物理机资源的浪费。为了减少这种浪费,可以在业务低谷期调度一些离线任务在这些物理机上运行。这样可以提高物理机的资源利用率,达到节省成本的目的。这样,在同一台物理机上,有可能同时部署在线应用(在线任务)和离线应用(离线任务)。在线应用对延迟比较敏感,而离线应用则对延迟不敏感。在离线应用和在线应用混合部署的环境中,首先需要保证的是在线任务的服务质量(QoS),其次才是提高机器资源利用率。然而,离线应用会对在线应用造成干扰,降低在线任务的性能。离线任务干扰是多个维度的,如CPU(中央处理单元),LLC(逻辑链路控制),内存带宽,网络,存储等。从CPU层面上来看,离线应用会对在线应用的干扰可以细分为两类:(1)在同一个CPU上,离线任务抢占CPU资源,导致在线任务得不到及时调度,出现调度延迟,进而影响在线任务的性能;(2)在同一个核上,同时运行在线任务和离线任务,由于两个超线程(HT,HyperThread)之间共享很多硬件资源,超线程干扰会降低在线应用的性能。本公开则主要涉及上述第二类CPU干扰问题。在此,为了描述方便,将离线任务表示为“batch”,将在线任务表示为“LS(latencySensitive)”,而将其中对延迟极度敏感的在线任务表示为“L*”。对于L*任务,从CPU层面,需要最大力度地降低干扰,以保证QoS。针对上述第二类干扰,目前主要有三类解决方案,然而它们各自都存在缺陷。下面分别进行简要描述。第一类解决方案,关闭超线程功能,从根本上避免了超线程干扰。然而,超线程设计的目的是为了充分利用核内闲置的硬件资源,从整体上提升机器的性能。关闭超线程功能,虽然能够从根本避免了超线程干扰,但是导致机器资源利用率下降,完全不能实现“混合部署”的一个重要目的:提高资源利用率。第二类解决方案,通过cpuset机制,以核为最小粒度,将LS任务和batch任务隔离开来。这样,batch任务与LS任务将不会出现在同一个核中,从而消除了batch任务导致的超线程干扰。大部分情况下,不是所有的核都在运行L*任务,因此可以将batch任务调度到那些没有运行L*任务的核上去。相对第一类解决方案,该方案较为缓和一些,既可以消除batch任务导致的超线程干扰,又可以在一定程度上提高机器资源利用率。然而,在分配了L*任务的核上,由于cpuset的限制,即使L*任务当前并不处于运行状态,也不允许执行batch任务。这样,还是会在一定程度上造成CPU资源的浪费。第三类解决方案,通过合理的调度策略,寻找最适合的LS任务和batch任务,将之放在互为兄弟的HT上运行。由于两个任务对硬件资源的需求差异较大,所以对共享资源的竞争会降低,可以在一定程度上缓解超线程干扰。然而,该方案的难点在于动态分析每个运行线程的特征,从而选出最佳组合。首先,一般处于运行状态的线程数量不多,但存活的线程数却达到几百,甚至上千个,且线程的特征可以随运行时间而不断改变。其次,确定合适的指标以准确评价一个应用的特征是一件困难的事情。因此,该方案在实现上有很大困难,其实现的精确性与降低超线程干扰的效果息息相关。因此,依然期望一种任务调度方案,其相对于上述第一、二类解决方案,既可以有效消除离线任务造成的超线程干扰,又能避免显著降低资源利用率;相对于上述第三类解决方案,又不需要进行复杂的任务动态分析评价,实现更简单。
技术实现思路
本专利技术所要解决的技术问题是提供一种容易实现的任务调度策略和实现方法,其能够在避免显著降低资源利用率的情况下,有效消除离线任务造成的超线程干扰。根据本专利技术的一个方面,提供了一种任务调度方法,适用于拥有第一逻辑核和第二逻辑核的物理核,该方法包括:为第一逻辑核维护第一任务队列;响应于为第一逻辑核分配任务的需求,判断第二逻辑核上正在运行的第二当前任务是否第一类任务;以及在第二当前任务是第一类任务的情况下,将第一任务队列中的第二类任务从第一任务队列中删除。优选地,该方法还可以包括:将从第一任务队列中删除的第二类任务放入暂缓列表。优选地,该方法还可以包括:在第二当前任务不是第一类任务的情况下,将暂缓列表中的第二类任务放回到第一任务队列中。优选地,仅将暂缓列表中来自第一任务队列的第二类任务放回到第一任务队列中。优选地,暂缓列表是对应于第一任务队列的第一暂缓列表;或者在暂缓列表中与每个任务关联地记录了其来源。优选地,该方法还可以包括:从第一任务队列中选择将由第一逻辑核执行的任务;以及将所选择的任务的类型记录在对应于第一逻辑核的当前任务类型字段中。优选地,第一类任务是延迟敏感度高的在线任务,第二类任务是离线任务。根据本专利技术的另一个方面,还提供了一种任务调度方法,适用于拥有第一逻辑核和第二逻辑核的物理核,该方法包括:响应于第一逻辑核即将或开始执行第一类任务,判断第二逻辑核是否正在执行第二类任务;以及在判定第二逻辑核正在执行第二类任务的情况下,中断当前正在执行的第二类任务,并对第二逻辑核重新进行任务调度。优选地,该方法还可以包括:响应于第一逻辑核即将或开始执行的任务不是第一类任务,判断第二逻辑核是否正在执行空闲任务;以及在判定第二逻辑核正在执行空闲任务的情况下,中断当前正在执行的空闲任务,并对第二逻辑核重新进行任务调度。优选地,第一类任务是延迟敏感度高的在线任务,第二类任务是离线任务。根据本专利技术的另一个方面,还提供了一种任务调度装置,适用于拥有第一逻辑核和第二逻辑核的物理核,该装置包括:队列维护装置,用于为第一逻辑核维护第一任务队列;第一判断装置,用于响应于为第一逻辑核分配任务的需求,判断第二逻辑核上正在运行的第二当前任务是否第一类任务;以及任务删除装置,用于在第二当前任务是第一类任务的情况下,将第一任务队列中的第二类任务从第一任务队列中删除。优选地,该装置还可以包括:任务暂缓装置,用于将从第一任务队列中删除的第二类任务放入暂缓列表。优选地,该装置还可以包括:任务放回装置,用于在第二当前任务不是第一类任务的情况下,将暂缓列表中的第二类任务放回到第一任务队列中。优选地,任务放回装置仅将暂缓列表中来自第一任务队列的第二类任务放回到第一任务队列中。优选地,暂缓列表是对应于第一任务队列的第一暂缓列表;或者在暂缓列表中与每个任务关联地记录了其来源。优选地,该装置还可以包括:任务选择装置,用于从第一任务队列中选择将由第一逻辑核执行的任务;以及类型记录装置,用于将所选择的任务的类型记录在对应于第一逻辑核的当前任务类型字段中。根据本专利技术的另一个方面,还提供了一种任务调度装置,适用于拥有第一逻辑核和第二逻辑核的物理核,该装置包括:第二判断装置,用于响应于第一逻辑核即将或开始执行第一类任务,判断第二逻辑核是否正在执行第二类任务;以及第一重新调度装置,用于在判定第二逻辑核正在执行第二类任务的情况下,中断当前正在执行的第二类任务,并对第二逻辑核重新进行任务本文档来自技高网
...

【技术保护点】
1.一种任务调度方法,适用于拥有第一逻辑核和第二逻辑核的物理核,其特征在于,该方法包括:为所述第一逻辑核维护第一任务队列;响应于为所述第一逻辑核分配任务的需求,判断所述第二逻辑核上正在运行的第二当前任务是否第一类任务;以及在所述第二当前任务是第一类任务的情况下,将所述第一任务队列中的第二类任务从所述第一任务队列中删除。

【技术特征摘要】
1.一种任务调度方法,适用于拥有第一逻辑核和第二逻辑核的物理核,其特征在于,该方法包括:为所述第一逻辑核维护第一任务队列;响应于为所述第一逻辑核分配任务的需求,判断所述第二逻辑核上正在运行的第二当前任务是否第一类任务;以及在所述第二当前任务是第一类任务的情况下,将所述第一任务队列中的第二类任务从所述第一任务队列中删除。2.根据权利要求1所述的任务调度方法,其特征在于,还包括:将从第一任务队列中删除的所述第二类任务放入暂缓列表。3.根据权利要求2所述的任务调度方法,其特征在于,还包括:在所述第二当前任务不是第一类任务的情况下,将所述暂缓列表中的第二类任务放回到所述第一任务队列中。4.根据权利要求3所述的任务调度方法,其特征在于,仅将所述暂缓列表中来自所述第一任务队列的第二类任务放回到所述第一任务队列中。5.根据权利要求4所述的任务调度方法,其特征在于,所述暂缓列表是对应于所述第一任务队列的第一暂缓列表;或者在所述暂缓列表中与每个任务关联地记录了其来源。6.根据权利要求1至5中任何一项所述的任务调度方法,其特征在于,还包括:从所述第一任务队列中选择将由第一逻辑核执行的任务;以及将所选择的任务的类型记录在对应于所述第一逻辑核的当前任务类型字段中。7.根据权利要求1至5中任何一项所述的任务调度方法,其特征在于,所述第一类任务是延迟敏感度高的在线任务,所述第二类任务是离线任务。8.一种任务调度方法,适用于拥有第一逻辑核和第二逻辑核的物理核,其特征在于,该方法包括:响应于所述第一逻辑核即将或开始执行第一类任务,判断所述第二逻辑核是否正在执行第二类任务;以及在判定所述第二逻辑核正在执行第二类任务的情况下,中断当前正在执行的第二类任务,并对所述第二逻辑核重新进行任务调度。9.根据权利要求8所述的任务调度方法,其特征在于,还包括:响应于所述第一逻辑核即将或开始执行的任务不是第一类任务,判断所述第二逻辑核是否正在执行空闲任务;以及在判定所述第二逻辑核正在执行空闲任务的情况下,中断当前正在执行的空闲任务,并对所述第二逻辑核重新进行任务调度。10.根据权利要求8或9所述的任务调度方法,其特征在于,所述第一类任务是延迟敏感度高的在线任务,所述第二类任务是离线任务。11.一种任务调度装置,适用于拥有第一逻辑核和第二逻辑核的物理核,其特征在于,该装置包括:队列维护装置,用于为所述第一逻辑核维护第一任务队列;第一判断装置,...

【专利技术属性】
技术研发人员:朱延海陈善佩
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1