任务调度方法及调度装置制造方法及图纸

技术编号:21571002 阅读:39 留言:0更新日期:2019-07-10 15:17
本申请公开了一种任务调度方法及调度装置。其中,该方法包括:根据第一处理器核中运行的多个超线程使用的资源的标识对所述多个超线程进行分组,以得到至少一个超线程组,其中,所述至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同;根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,所述运行状态参数包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项。采用本申请,能够基于以资源共享关系分组得到的超线程组来实现任务调度,有助于减少因任务间资源竞争导致的任务无法被及时处理的问题,从而提升了系统性能。

Task Scheduling Method and Device

【技术实现步骤摘要】
任务调度方法及调度装置
本申请涉及计算机
,尤其涉及一种任务调度方法及调度装置。
技术介绍
随着计算机技术的不断发展,超线程(Hyper-Threading,缩写:HT)技术得到广泛应用,使得能够提升中央处理器(CentralProcessingUnit,缩写:CPU)的处理性能。该HT技术是利用特殊的硬件指令,把一个物理CPU模拟成多个逻辑CPU即超线程,该多个超线程运行于该物理CPU上,并可使用该物理CPU的资源去执行多个任务。从而在一个超线程上可以并行执行多个任务,使得在一个物理CPU上能够同时执行更多的任务,这就减少了CPU的闲置时间,提升了CPU效率。然而,多个超线程之间可能会共用CPU中的部分资源,比如共用某一cache资源和某一运算逻辑单元等等,当该多个超线程上的多个任务需要使用该cache资源或运算逻辑单元时,同一时间只能有一个任务可以使用该资源。也就是说,当两个及以上任务都同时需要某一个资源时,只有一个任务能够使用,其余的任务要让出资源,等待至该资源闲置后才能继续运行。此外,目前存在的各种各样的调度策略,用于管理任务在CPU上的运行,比如全局任务调度(GlobalTaskScheduler,缩写:GTS)策略、完全公平调度(CompletelyFairScheduler,缩写:CFS)策略、节能调度(EnergyAwareScheduler,缩写:EAS)策略等等。这些调度策略在进行任务调度时,都是独立的以物理CPU或者超线程的负载情况来进行调度的,比如将任务部署到负载小的CPU或超线程上。如果部署到使用相同资源的超线程上的任务很多,则导致任务间资源竞争加剧,导致任务无法被及时处理,使得系统性能降低。
技术实现思路
本专利技术实施例提供了一种任务调度方法及调度装置,能够基于以资源共享关系分组得到的超线程组来实现任务调度,有助于减少因任务间资源竞争导致的任务无法被及时处理的问题,从而提升了系统性能。第一方面,本申请提供了一种任务调度方法,该方法可应用于物理机,该物理机的处理电路中可包括第一处理器核,该第一处理器核中可运行有多个超线程,该多个超线程可共用该第一处理器核的多种资源,该方法包括:调度装置根据该多个超线程使用的资源的标识对该多个超线程进行分组,以得到至少一个超线程组,根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务。也就是说,本申请能够通过将使用相同的资源的超线程划分为一组,也即基于超线程之间的资源共享关系分组得到的超线程组,进而以超线程组的整体运行状态来实现物理机上的任务调度,有助于减少因任务间资源竞争导致的任务无法被及时处理的问题,提升了系统性能。其中,该至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同。该标识可用于唯一确定该第一处理器核中的资源,比如可以为资源的编号、型号等等。或者也可通过其他方式对该多个超线程进行分组,以实现将使用的资源相同的超线程划分到同一个超线程组中,本申请不做限定。进一步的,该运行状态参数可包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项,用于表示一超线程组的整体运行状态。其中,一个超线程组的负载对应于该超线程组中运行的所有任务,例如,该负载可用于表示运行于一超线程组中的所有任务的负载,如该负载可以是该超线程组包括的所有的超线程上的所有任务的负载之和;该利用率可用于表示一超线程组使用分配给该超线程组的该第一处理器核的资源的程度,如该利用率可以为该超线程组中的所有超线程的平均利用率,或者为超线程组的所有超线程的利用率中的最大利用率等等;该竞争资源的类型可用于表示一超线程组的超线程之间竞争的资源的类型,即超线程组的超线程整体竞争资源的类型;该资源密集指数可用于表示一超线程组的超线程之间竞争某一资源的程度,如该资源密集指数可以是超线程组的IO-Bound和/或CPU-Bound等等。在一种可能的设计中,该物理机的处理电路中还可包括第二处理器核。进而调度装置可根据该至少一个超线程组的运行状态参数,将运行于该第二处理器核的任务迁移到该至少一个超线程组的一超线程上,或者从运行于该至少一个超线程组的超线程上的任务中选择任务迁移到该第二处理器核,或者将新任务部署到该第二处理器核。可选的,将任务迁移到或部署到第二处理器核可以包括,将任务迁移到或部署到该第二处理器核对应的CPU上(比如第二处理器核为CPU且未运行有超线程时,可以是指迁移到或部署到该CPU上;第二处理器核为多个CPU的集合且未运行有超线程时,可以是指迁移到或部署到该第二处理器核中的CPU上),或者可包括将任务迁移到或部署到该第二处理器核中的超线程上(比如第二处理器核运行有超线程时)。在一种可能的设计中,调度装置在根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,可在第一待迁移任务为输入输出(InputOutput,缩写:IO或I/O)IO密集型任务,且该至少一个超线程组中第一超线程组的竞争资源的类型为CPU的处理资源的情况下,将第一待迁移任务迁移到该第一超线程组中的超线程上;在该第一待迁移任务为CPU密集型任务,且该至少一个超线程组中的第二超线程组的竞争资源的类型为IO的处理资源的情况下,将该第一待迁移任务迁移到该第二超线程组中的超线程上。其中,该第一待迁移任务可以为运行于该第二处理器核中的待迁移的任务。可选的,该第一超线程组可以为该至少一个超线程组中负载低于预设的第一阈值的超线程组或为该至少一个超线程组中利用率低于预设的第二阈值的超线程组。进一步可选的,该第二超线程组可以为该至少一个超线程组中负载低于预设的第一阈值的超线程组或为该至少一个超线程组中利用率低于预设的第二阈值的超线程组。可选的,任务的类型如该任务是属于IO密集型还是CPU密集型可以通过计算该任务的资源密集指数如IO-Bound(I/O密集型程度)和CPU-Bound(CPU密集型程度)确定出。例如,如果计算出的IO-Bound高于CPU-Bound,则该任务属于IO密集型任务;如果计算出的IO-Bound低于CPU-Bound,则该任务属于CPU密集型任务。进一步可选的,该超线程组中的超线程之间竞争资源的类型的确定方式和任务的类型的确定方式类似,如果该超线程组的IO-Bound高于CPU-Bound,则该超线程组竞争资源的类型为IO资源;如果该超线程组的IO-Bound低于CPU-Bound,则该超线程组竞争资源的类型为CPU资源。从而有助于降低超线程之间的资源竞争。在一种可能的设计中,将该第一待迁移任务迁移到超线程组如该第一超线程组或第二超线程组中的超线程上,可以是指将该第一待迁移任务迁移到该超线程组中负载低于某一阈值的超线程中的任一超线程上,或者将该第一待迁移任务迁移到该超线程组中的负载最小的超线程上,本申请不做限定。在一种可能的设计中,调度装置在根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,还可在该至少一个超线程组中存在空闲的超线程且该空闲的超线程所在的超线程组的利用率高于预设的第三阈值的情况下,禁止将该第一待迁移任务本文档来自技高网
...

【技术保护点】
1.一种任务调度方法,所述方法应用于物理机,所述物理机的处理电路中包括第一处理器核,其特征在于,所述第一处理器核中运行有多个超线程,所述多个超线程共用所述第一处理器核的多种资源,所述方法包括:根据所述多个超线程使用的资源的标识对所述多个超线程进行分组,以得到至少一个超线程组,其中,所述至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同;根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,所述运行状态参数包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项,其中,一个超线程组的负载对应于该超线程组中运行的所有任务,所述利用率用于表示一超线程组使用分配给该超线程组的所述第一处理器核的资源的程度,所述竞争资源的类型用于表示一超线程组的超线程之间竞争的资源的类型,所述资源密集指数用于表示一超线程组的超线程之间竞争某一资源的程度。

【技术特征摘要】
1.一种任务调度方法,所述方法应用于物理机,所述物理机的处理电路中包括第一处理器核,其特征在于,所述第一处理器核中运行有多个超线程,所述多个超线程共用所述第一处理器核的多种资源,所述方法包括:根据所述多个超线程使用的资源的标识对所述多个超线程进行分组,以得到至少一个超线程组,其中,所述至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同;根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,所述运行状态参数包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项,其中,一个超线程组的负载对应于该超线程组中运行的所有任务,所述利用率用于表示一超线程组使用分配给该超线程组的所述第一处理器核的资源的程度,所述竞争资源的类型用于表示一超线程组的超线程之间竞争的资源的类型,所述资源密集指数用于表示一超线程组的超线程之间竞争某一资源的程度。2.根据权利要求1所述的方法,其特征在于,所述物理机的处理电路中还包括第二处理器核;所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:在第一待迁移任务为输入输出IO密集型任务,且所述至少一个超线程组中第一超线程组的竞争资源的类型为中央处理器CPU的处理资源的情况下,将第一待迁移任务迁移到所述第一超线程组中的超线程上;在所述第一待迁移任务为CPU密集型任务,且所述至少一个超线程组中的第二超线程组的竞争资源的类型为IO的处理资源的情况下,将所述第一待迁移任务迁移到所述第二超线程组中的超线程上;其中,所述第一待迁移任务为运行于所述第二处理器核中的待迁移的任务。3.根据权利要求2所述的方法,其特征在于,所述第一超线程组为所述至少一个超线程组中负载低于预设的第一阈值的超线程组,所述第二超线程组为所述至少一个超线程组中负载低于所述第一阈值的超线程组。4.根据权利要求2所述的方法,其特征在于,所述第一超线程组为所述至少一个超线程组中利用率低于预设的第二阈值的超线程组,所述第二超线程组为所述至少一个超线程组中利用率低于所述第二阈值的超线程组。5.根据权利要求1所述的方法,其特征在于,所述物理机的处理电路中还包括第二处理器核;所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:在所述至少一个超线程组中存在空闲的超线程且所述空闲的超线程所在的超线程组的利用率高于预设的第三阈值的情况下,禁止将第一待迁移任务迁移到所述第一处理器核,所述空闲的超线程为未运行任务的超线程,以及,所述第一待迁移任务为运行于所述第二处理器核中的待迁移的任务。6.根据权利要求1所述的方法,其特征在于,所述物理机的处理电路中还包括第二处理器核;所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:在所述至少一个超线程组中存在资源密集指数高于预设的第四阈值,且负载大于预设的第五阈值的第三超线程组的情况下,将第二待迁移任务迁移到所述第二处理器核,所述第二待迁移任务为运行于所述第一处理器核的待迁移的任务,且所述第二待迁移任务为运行于所述第三超线程组的任务中所述资源密集指数最高的任务。7.根据权利要求1所述的方法,其特征在于,所述物理机的处理电路中还包括第二处理器核;所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:在所述至少一个超线程组中不存在资源密集指数高于预设的第四阈值的超线程组,或者不存在负载大于预设的第五阈值的超线程组的情况下,将第二待迁移任务迁移到所述第二处理器核,所述第二待迁移任务为运行于所述第一处理器核的待迁移的任务,且所述第二待迁移任务为所述至少一个超线程组中负载最大的任务。8.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:在第四超线程组中运行有与所述新任务属于同一进程的任务的情况下,将新任务部署到所述第四超线程组中的超线程上,所述第四超线程组为所述至少一个超线程组中利用率低于预设的第六阈值的超线程组。9.根据权利要求8所述的方法,其特征在于,所述至少一个超线程组中包括多个所述第四超线程组,所述将新任务部署到所述第四超线程组中的超线程上,包括:将所述新任务部署到多个所述第四超线程组中,负载最小的超线程组中的超线程上。10.一种调度装置...

【专利技术属性】
技术研发人员:耿东久陈善席柴先平
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1