本发明涉及数据处理技术领域,特别涉及一种多任务环境下任务调度方法及系统。
背景技术:
numa(nonuniformmemoryaccessarchitecture,非统一内存访问架构)结构中存在多个内存节点(memorynode),每个内存节点及其对应的多核系统构成一个内存区域(memorydomain),每个内存区域具有独立且私有的内存控制器。该构架系统可以运行多种不同类型的任务,且每种类型的任务对应的资源需求不同,对应的性能目标也不同。例如延迟敏感性任务的性能衡量标准通常为响应时间或者尾部延迟(taillatency),该任务的性能有服务延迟目标进行确定,数据中心的服务延迟目标通常为几微秒到几是毫秒之间。可延迟任务的任务通常具有较低的优先级,通常为数据分析类的,批处理类型的任务,这些任务具备被延缓执行的特点。
但是现有技术不能区分多任务之间的调度优先级,即不能够在多任务环境下合理进行任务调度,以实现在满足各任务的性能的同时提升系统计算资源的利用率。
技术实现要素:
本发明的目的是提供一种多任务环境下任务调度方法及系统,在保证延迟敏感性任务的性能需求的基础上提高系统计算资源的利用率。
为解决上述技术问题,本发明提供一种多任务环境下任务调度方法,所述方法包括:
获取输入的延迟敏感性任务对应的第一线程间数据共享数值、第一内存总线使用率、第一llc访问命中数值,第一llc空间需求值,以及可延迟任务对应的第二内存总线使用率,第二llc空间需求值;
判断所述第一线程间数据共享数值是否大于数据共享阈值;
若大于所述数据共享阈值,则设置所述延迟敏感性任务共享同一个cpu的llc(其中,llc(lastlevelcache,最后一级高速缓存)),并当所述第一内存总线使用率小于所述第二内存总线使用率时,将所述延迟敏感性任务设置于同一个numa节点;当所述第一内存总线使用率不小于所述第二内存总线使用率时,将所述可延迟任务设置为暂缓执行;
若不大于所述数据共享阈值,则在所述第一内存总线使用率小于所述第二内存总线使用率时,若所述第一llc访问命中数值大于命中阈值,将所述延迟敏感性任务设置于同一个numa节点,若所述第一llc访问命中数值不大于命中阈值,将所述延迟敏感性任务设置于不同numa节点;在所述第一内存总线使用率不小于所述第二内存总线使用率时,若所述第一llc空间需求值大于所述第二llc空间需求值,将所述延迟敏感性任务设置于不同numa节点,若所述第一llc空间需求值不大于所述第二llc空间需求值,将所述延迟敏感性任务设置于同一个numa节点。
可选的,判断所述第一线程间数据共享数值是否大于数据共享阈值之前,还包括:
若监测到所述延迟敏感性任务的性能降级数值大于性能降级阈值,则将所述延迟敏感性任务设置为暂缓执行。
可选的,本方案还包括:
监测所述延迟敏感性任务的服务质量参数数值;
判断所述服务质量参数数值是否满足预设的服务质量需求;
若满足,则降低所述可延迟任务的暂缓执行概率,若不满足,则提高所述可延迟任务的暂缓执行概率;
当所述暂缓执行概率大于任务调度阈值时,将所述可延迟任务设置为暂缓执行;
当所述暂缓执行概率不大于任务调度阈值时,将所述可延迟任务设置为正常执行。
可选的,所述服务质量参数数值具体为每个cpu时钟周期执行所述延迟敏感性任务的指令数。
可选的,当多任务环境为集群系统时,还包括:集群控制器调度程序和多核调度控制器调度程序;其中,
所述集群控制器调度程序具体为:
监测所述延迟敏感性任务对应的当前延迟结果以及当前负载强度;
判断所述当前延迟结果是否满足设定的服务水平目标;
若不满足,则将所述可延迟任务设置为暂缓执行;
若满足,则在所述当前负载强度大于设定的负载强度阈值时,将所述可延迟任务设置为暂缓执行;在所述当前负载强度不大于设定的负载强度阈值时,将所述可延迟任务设置为正常执行;
多核调度控制器调度程序具体为:
监测当前时间段对应的所有任务内存带宽值,并预测下一时间段对应的所需内存带宽消耗值;
当所述当前时间段任务所有内存带宽值大于设定的最大可用内存带宽,将所述当前时间段任务所有内存带宽值设为最大可用内存带宽并降低所述可延迟任务的带宽需求;
判断所述所需内存带宽消耗值是否大于所述最大可用内存带宽;
若是,则增加所述可延迟任务获得的cpu核心数;
若否,则迁走所述可延迟任务到另一个numa节点。
可选的,判断所述当前延迟结果是否满足设定的服务水平目标,包括:
利用所述当前延迟结果以及设定的服务水平目标,计算延迟调度空间;
当所述延迟调度空间小于0,则不满足设定的服务水平目标,当所述延迟调度空间不小于0,则满足设定的服务水平目标。
可选的,在所述当前负载强度不大于设定的负载强度阈值时,将所述可延迟任务设置为正常执行,包括:
在所述当前负载强度不大于设定的负载强度阈值,且所述延迟调度空间大于设定的延迟阈值时,将所述可延迟任务设置为正常执行;
在所述当前负载强度不大于设定的负载强度阈值,且所述延迟调度空间不大于设定的延迟阈值时,则限制所述可延迟任务的正常执行。
可选的,迁走所述可延迟任务到另一个numa节点,包括:
当cpu的llc为性能瓶颈时,迁走所述可延迟任务到另一个numa节点,并监测所述可延迟任务在所述另一个numa节点中性能是否提升;
若未提升,则增加所述可延迟任务获得的cpu核心数。
本发明还提供一种多任务环境下任务调度系统,包括:任务线程与cpu处理核心映射绑定模块;其中,所述任务线程与cpu处理核心映射绑定模块包括:
参数获取单元,用于获取输入的延迟敏感性任务对应的第一线程间数据共享数值、第一内存总线使用率、第一llc访问命中数值,第一llc空间需求值,以及可延迟任务对应的第二内存总线使用率,第二llc空间需求值;
第一判断单元,用于判断所述第一线程间数据共享数值是否大于数据共享阈值;
第一调度单元,用于若大于所述数据共享阈值,则设置所述延迟敏感性任务共享同一个cpu的llc,并当所述第一内存总线使用率小于所述第二内存总线使用率时,将所述延迟敏感性任务设置于同一个numa节点;当所述第一内存总线使用率不小于所述第二内存总线使用率时,将所述可延迟任务设置为暂缓执行;
第二调度单元,用于若不大于所述数据共享阈值,则在所述第一内存总线使用率小于所述第二内存总线使用率时,若所述第一llc访问命中数值大于命中阈值,将所述延迟敏感性任务设置于同一个numa节点,若所述第一llc访问命中数值不大于命中阈值,将所述延迟敏感性任务设置于不同numa节点;在所述第一内存总线使用率不小于所述第二内存总线使用率时,若所述第一llc空间需求值大于所述第二llc空间需求值,将所述延迟敏感性任务设置于不同numa节点,若所述第一llc空间需求值不大于所述第二llc空间需求值,将所述延迟敏感性任务设置于同一个numa节点。
可选的,本方案还包括:服务质量调度模块,其中,所述服务质量调度模块包括:
第一监测单元,用于监测所述延迟敏感性任务的服务质量参数数值;
第二判断单元,用于判断所述服务质量参数数值是否满足预设的服务质量需求;
第三调度单元,用于若满足服务质量需求,则降低所述可延迟任务的暂缓执行概率,若不满足服务质量需求,则提高所述可延迟任务的暂缓执行概率;
第四调度单元,用于当所述暂缓执行概率大于任务调度阈值时,将所述可延迟任务设置为暂缓执行;
第五调度单元,用于当所述暂缓执行概率不大于任务调度阈值时,将所述可延迟任务设置为正常执行。
可选的,本方案还包括:集群调度模块,其中,所述集群调度模块包括:
集群控制器调度单元,用于监测所述延迟敏感性任务对应的当前延迟结果以及当前负载强度;判断所述当前延迟结果是否满足设定的服务水平目标;若不满足,则将所述可延迟任务设置为暂缓执行;若满足,则在所述当前负载强度大于设定的负载强度阈值时,将所述可延迟任务设置为暂缓执行;在所述当前负载强度不大于设定的负载强度阈值时,将所述可延迟任务设置为正常执行;
多核调度控制器调度单元,用于监测当前时间段对应的所有任务内存带宽值,并预测下一时间段对应的所需内存带宽消耗值;当所述当前时间段任务所有内存带宽值大于设定的最大可用内存带宽,将所述当前时间段任务所有内存带宽值设为最大可用内存带宽并降低所述可延迟任务的带宽需求;判断所述所需内存带宽消耗值是否大于所述最大可用内存带宽;若是,则增加所述可延迟任务获得的cpu核心数;若否,则迁走所述可延迟任务到另一个numa节点。
本发明所提供的一种多任务环境下任务调度方法,该方法根据延迟性敏感性任务以及可延迟任务的参数(延迟敏感性任务对应的第一线程间数据共享数值、第一内存总线使用率、第一llc访问命中数值,第一llc空间需求值,以及可延迟任务对应的第二内存总线使用率,第二llc空间需求值)确定任务线程与多核平台上cpu处理核心的映射绑定关系,在保证延迟敏感性任务的性能需求的基础上提高系统计算资源的利用率;本发明还提供了一种多任务环境下任务调度系统,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的多任务环境下任务调度方法的流程图;
图2为本发明实施例所提供的另一多任务环境下任务调度方法的流程图;
图3为本发明实施例所提供的集群控制器调度程序的工作的流程图;
图4为本发明实施例所提供的多核调度控制器调度程序的工作的流程图;
图5为本发明实施例所提供的多任务环境下任务调度系统的结构框图;
图6为本发明实施例所提供的另一多任务环境下任务调度系统的结构框图。
具体实施方式
本发明的核心是提供一种多任务环境下任务调度方法及系统,在保证延迟敏感性任务的性能需求的基础上提高系统计算资源的利用率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的多任务环境下任务调度方法的流程图;该方法可以包括:
s100、获取输入的延迟敏感性任务对应的第一线程间数据共享数值、第一内存总线使用率、第一llc访问命中数值,第一llc空间需求值,以及可延迟任务对应的第二内存总线使用率,第二llc空间需求值;
s110、判断第一线程间数据共享数值是否大于数据共享阈值;
s120、若大于数据共享阈值,则设置延迟敏感性任务共享同一个cpu的llc(其中,llc(lastlevelcache,最后一级高速缓存)),并当第一内存总线使用率小于第二内存总线使用率时,将延迟敏感性任务设置于同一个numa节点;当第一内存总线使用率不小于第二内存总线使用率时,将可延迟任务设置为暂缓执行;
s130、若不大于数据共享阈值,则在第一内存总线使用率小于第二内存总线使用率时,若第一llc访问命中数值大于命中阈值,将延迟敏感性任务设置于同一个numa节点,若第一llc访问命中数值不大于命中阈值,将延迟敏感性任务设置于不同numa节点;在第一内存总线使用率不小于第二内存总线使用率时,若第一llc空间需求值大于第二llc空间需求值,将延迟敏感性任务设置于不同numa节点,若第一llc空间需求值不大于第二llc空间需求值,将延迟敏感性任务设置于同一个numa节点。
具体的,本实施例并不限定具体的数据共享阈值、命中阈值的具体数值,用户可以根据实际使用情况进行设定和修改。该方法即根据输入的延迟敏感性任务,可延迟任务的具体情况,确定任务线程与多核平台上cpu处理核心的映射绑定关系。
其中,该方法的判定过程为首先根据按照延迟敏感性任务的线程之间数据共享高低(即第一线程间数据共享数值)这个因素分为两个支路。
在共享较高(即大于数据共享阈值)时,首先延迟敏感性任务共享同一个cpu的llc(即可以理解为延迟敏感性任务共享同一个cpu的最后一级高速缓存),之后判断延迟敏感性任务和可延迟任务的内存总线使用率;前者小时,将延迟敏感性任务设置于同一个numa节点;前者大时,将可延迟任务设置为暂缓执行。
共享较低时,首先判断延迟敏感性任务和可延迟任务的内存总线使用率;若前者小且cpu的最后一级缓存命中率高(即第一llc访问命中数值大于命中阈值)则将延迟敏感性任务设置于同一个numa节点,若前者小且cpu的最后一级缓存命中率低则,延迟敏感性任务设置于不同numa节点;若前者大且第一llc空间需求值大于第二llc空间需求值,将延迟敏感性任务设置于不同numa节点,若前者大且第一llc空间需求值小于第二llc空间需求值,将延迟敏感性任务设置于同一个numa节点。
下面举例说明上述具体比较过程:
输入:延迟敏感性任务,可延迟任务
输出:任务线程与多核平台上cpu处理核心的映射绑定关系
1、如果延迟敏感性任务对应的线程之间数据共享较高(不同的任务具有不同的阈值),则将延迟敏感性任务将共享同一个cpu的最后一级高速缓存(lastlevelcache),并判断延迟敏感性任务对应的内存总线使用率与可延迟任务的内存总线使用率的大小。
2、如果延迟敏感性任务对应的内存总线使用率<可延迟任务的内存总线使用率,则将延迟敏感性任务置于同一个numa节点中。
3、如果延迟敏感性任务对应的内存总线使用率>可延迟任务的内存总线使用率,则将可延迟任务挂起以降低内存传输的压力。
4、如果延迟敏感性任务对应的线程之间数据共享较低,判断延迟敏感性任务对应的内存总线使用率与可延迟任务的内存总线使用率的大小。
5、延迟敏感性任务对应的内存总线使用率<可延迟任务的内存总线使用率,且延迟敏感性任务具有较低的cpu最后一层高速缓存访问命中,则将延迟敏感性任务置于同一个numa节点中运行。
6、延迟敏感性任务对应的内存总线使用率<可延迟任务的内存总线使用率,且延迟敏感性任务具有较低的cpu最后一层高速缓存访问命中,则将延迟敏感性任务置于不同的numa节点中运行。
7、延迟敏感性任务对应的内存总线使用率>可延迟任务的内存总线使用率,且延迟敏感性任务对于cpu最后一层高速缓存空间需求>可延迟任务所需缓存空间,则将延迟敏感性任务置于不同的numa节点中运行。
8、延迟敏感性任务对应的内存总线使用率>可延迟任务的内存总线使用率,且延迟敏感性任务对于cpu最后一层高速缓存空间需求<可延迟任务所需缓存空间,则将延迟敏感性任务对应的线程置于同一个numa节点中运行。
基于上述技术方案,本发明实施例提的多任务环境下任务调度方法,该方法根据延迟性敏感性任务以及可延迟任务的参数(延迟敏感性任务对应的第一线程间数据共享数值、第一内存总线使用率、第一llc访问命中数值,第一llc空间需求值,以及可延迟任务对应的第二内存总线使用率,第二llc空间需求值)确定任务线程与多核平台上cpu处理核心的映射绑定关系,在保证延迟敏感性任务的性能需求的基础上提高系统计算资源的利用率。
基于上述实施例,判断第一线程间数据共享数值是否大于数据共享阈值之前,还包括:
若监测到延迟敏感性任务的性能降级数值大于性能降级阈值,则将延迟敏感性任务设置为暂缓执行。
具体的,本实施例并不限定性能降级阈值的具体数值,用户可以根据实际使用情况进行设定和修改。例如可以设置为10%。即若延迟敏感性任务性能降级严重(即性能降级大于10%),将延迟敏感性任务挂起(暂缓执行)以降低共享高速缓存的资源竞争。即一旦发现系统没有资源可以调度时或者没有其他资源可以进行补充以满足延迟敏感性任务的性能需求时,可以将延迟敏感性任务设置为暂缓执行。
基于上述任意实施例,在确定任务线程与多核平台上cpu处理核心的映射绑定关系的基础上,为了进一步保证延迟敏感性任务的服务质量,还可以在此基础上考虑当前的延迟敏感性任务的服务质量,根据此对线程资源分配进行细调。即请参考图2,该方法还可以包括:
s200、监测延迟敏感性任务的服务质量参数数值;
s210、判断服务质量参数数值是否满足预设的服务质量需求;
s220、若满足,则降低可延迟任务的暂缓执行概率;
s230、若不满足,则提高可延迟任务的暂缓执行概率;
s240、判断暂缓执行概率是否大于任务调度阈值;
s250、当暂缓执行概率大于任务调度阈值时,将可延迟任务设置为暂缓执行;
s260、当暂缓执行概率不大于任务调度阈值时,将可延迟任务设置为正常执行。
具体的,本实施例并不限定具体的服务质量参数,只要其可以表征延迟敏感性任务的服务质量即可。可选的,服务质量参数数值具体为每个cpu时钟周期执行延迟敏感性任务的指令数ipc。本实施例并不限定预设的服务质量需求、任务调度阈值的具体数值,用户可以根据实际使用情况进行设定和修改。
该实施例侧重于保证延迟敏感性任务服务质量qos。即这里可以用ipc来表征qos。下面通过具体例子说明上述过程:
输入:延迟敏感性任务l
可延迟任务d
延迟敏感性任务服务质量qos
ipc:每个cpu时钟周期执行的指令数(延迟敏感性任务对应的服务质量)
w:任务服务质量监测时间单位(单位:毫秒)
可延迟任务线程挂起的概率为p
1、在每个时间段w结束时,获取该时间段w内延迟敏感性任务的ipc;判断ipc与预设的服务质量需求的大小(判断ipc与ipc_threshold(预设的服务质量需求)的大小)。
2、ipc>ipc_threshold,则p=p+p%。
3、ipc<ipc_threshold,则p=p-p%。
4、判断p与任务调度阈值的大小(判断p与p_threshold(任务调度阈值)的大小)。
5、p>p_threshold,暂停可延迟任务处理以保证延迟敏感性任务的服务质量。
6、p<p_threshold,重新唤起可延迟任务以提高多核处理平台下的资源利用率。
即输出如何暂停批处理任务的运行。
基于上述实施例,当多任务环境为集群系统时,在确定任务线程与多核平台上cpu处理核心的映射绑定关系的基础上,为了进一步保证延迟敏感性任务的服务质量,还可以包括:集群控制器调度程序和多核调度控制器调度程序;其中,
请参考图3,集群控制器调度程序具体为:
s300、监测延迟敏感性任务对应的当前延迟结果以及当前负载强度;
s310、判断当前延迟结果是否满足设定的服务水平目标;
s320、若不满足,则将可延迟任务设置为暂缓执行;
s330、若满足,则在当前负载强度大于设定的负载强度阈值时,将可延迟任务设置为暂缓执行;在当前负载强度不大于设定的负载强度阈值时,将可延迟任务设置为正常执行。
具体的,判断当前延迟结果是否满足设定的服务水平目标可以包括:
利用当前延迟结果以及设定的服务水平目标,计算延迟调度空间;
当延迟调度空间小于0,则不满足设定的服务水平目标,当延迟调度空间不小于0,则满足设定的服务水平目标。
其中,具体的,延迟调度空间的计算可以是延迟调度空间=(服务水平目标-当前延迟结果)/服务水平目标。
优选的,在当前负载强度不大于设定的负载强度阈值时,将可延迟任务设置为正常执行可以包括:
在当前负载强度不大于设定的负载强度阈值,且延迟调度空间大于设定的延迟阈值时,将可延迟任务设置为正常执行;
在当前负载强度不大于设定的负载强度阈值,且延迟调度空间不大于设定的延迟阈值时,则限制可延迟任务的正常执行。
具体的,本实施例中并不限定服务水平目标、负载强度阈值、延迟阈值的具体数值,用户可以根据实际使用情况进行设定和修改。
下面举例说明上述具体过程:
输入:延迟敏感性任务
可延迟任务
延迟敏感性任务的服务水平目标(servicelevelobject)
延迟敏感性任务的负载强度阈值
任务调度时间t
1、在每个时间段t结束时,监测延迟敏感性任务的当前延迟结果以及延迟敏感性任务的负载强度。
2、若延迟调度空间<0,则暂缓执行可延迟任务。
3、若延迟调度空间>0且负载强度>负载强度阈值,则暂缓执行可延迟任务。
4、若延迟调度空间>0且负载强度<负载强度阈值,则恢复可延迟任务的执行。
5、若延迟调度空间>0且延迟调度空间<延迟阈值,则限制可延迟任务的资源需求。
请参考图4,多核调度控制器调度程序具体为:
s400、监测当前时间段对应的所有任务内存带宽值,并预测下一时间段对应的所需内存带宽消耗值;
s410、当当前时间段任务所有内存带宽值大于设定的最大可用内存带宽,将当前时间段任务所有内存带宽值设为最大可用内存带宽并降低可延迟任务的带宽需求;
s420、判断所需内存带宽消耗值是否大于最大可用内存带宽;
s430、若是,则增加可延迟任务获得的cpu核心数;
s420、若否,则迁走可延迟任务到另一个numa节点。
具体的,迁走可延迟任务到另一个numa节点可以包括:
当cpu的llc为性能瓶颈时,迁走可延迟任务到另一个numa节点,并监测可延迟任务在另一个numa节点中性能是否提升;若未提升,则增加可延迟任务获得的cpu核心数。
具体的,本实施例中并不限定最大可用内存带宽的具体数值,用户可以根据实际使用情况进行设定和修改。下面举例说明上述具体过程:
输入:根据历史信息获得延迟敏感性任务的内存带宽需求
根据历史信息获得可延迟任务的内存带宽需求
预计下一时间段t所需的内存带宽消耗pbw
1、在时间段t结束时,监测当前时间段任务所有内存带宽bw。
2、bw>dram_limit(为最大可用内存带宽),则将bw置为dram_limit且降低可延迟任务的带宽需求。
3、pbw>dram_limit,则增加可延迟任务获得的cpu核心数。
4、pbw<dram_limit,则当cpu最后一级高速缓存为性能瓶颈时,迁走可延迟任务至另一个numa节点上;如果可延迟任务在新numa节点上性能依然不能提升,则增加可延迟任务获得的cpu核心数;当cpu核心数成为可延迟任务的性能瓶颈时,迁走可延迟任务至另一个numa节点上。
即该程序输出:在任意时间段t给延迟敏感性任务分配合适的内存带宽,cpu核心数目以及cpucache资源以满足其最基本的性能需求,并且尽量不暂缓可延迟任务的执行以保证计算资源利用率。
基于上述技术方案,本实施例提供的多任务环境下任务调度方法,在确定任务线程与多核平台上cpu处理核心的映射绑定关系后,还可以进一步考虑延迟敏感性任务的服务质量因素,以及在集群环境下如何更好的提高资源利用率。实现在各种情况下合理对任务线程进行调度,以实现在保证延迟敏感性任务的性能需求的基础上提高系统计算资源的利用率。
下面对本发明实施例提供的多任务环境下任务调度系统进行介绍,下文描述的多任务环境下任务调度系统与上文描述的多任务环境下任务调度方法可相互对应参照。
本发明实施例一种多任务环境下任务调度系统,包括:任务线程与cpu处理核心映射绑定模块;其中,任务线程与cpu处理核心映射绑定模块包括:
参数获取单元,用于获取输入的延迟敏感性任务对应的第一线程间数据共享数值、第一内存总线使用率、第一llc访问命中数值,第一llc空间需求值,以及可延迟任务对应的第二内存总线使用率,第二llc空间需求值;
第一判断单元,用于判断第一线程间数据共享数值是否大于数据共享阈值;
第一调度单元,用于若大于数据共享阈值,则设置延迟敏感性任务共享同一个cpu的llc,并当第一内存总线使用率小于第二内存总线使用率时,将延迟敏感性任务设置于同一个numa节点;当第一内存总线使用率不小于第二内存总线使用率时,将可延迟任务设置为暂缓执行;
第二调度单元,用于若不大于数据共享阈值,则在第一内存总线使用率小于第二内存总线使用率时,若第一llc访问命中数值大于命中阈值,将延迟敏感性任务设置于同一个numa节点,若第一llc访问命中数值不大于命中阈值,将延迟敏感性任务设置于不同numa节点;在第一内存总线使用率不小于第二内存总线使用率时,若第一llc空间需求值大于第二llc空间需求值,将延迟敏感性任务设置于不同numa节点,若第一llc空间需求值不大于第二llc空间需求值,将延迟敏感性任务设置于同一个numa节点。
请参考图5,基于上述实施例,该系统包括:任务线程与cpu处理核心映射绑定模块100以及服务质量调度模块200,其中,服务质量调度模块200可以包括:
第一监测单元,用于监测延迟敏感性任务的服务质量参数数值;
第二判断单元,用于判断服务质量参数数值是否满足预设的服务质量需求;
第三调度单元,用于若满足服务质量需求,则降低可延迟任务的暂缓执行概率,若不满足服务质量需求,则提高可延迟任务的暂缓执行概率;
第四调度单元,用于当暂缓执行概率大于任务调度阈值时,将可延迟任务设置为暂缓执行;
第五调度单元,用于当暂缓执行概率不大于任务调度阈值时,将可延迟任务设置为正常执行。
请参考图6,基于上述任意实施例,该系统还可以包括:集群调度模块300,其中,集群调度模块300可以包括:
集群控制器调度单元,用于监测延迟敏感性任务对应的当前延迟结果以及当前负载强度;判断当前延迟结果是否满足设定的服务水平目标;若不满足,则将可延迟任务设置为暂缓执行;若满足,则在当前负载强度大于设定的负载强度阈值时,将可延迟任务设置为暂缓执行;在当前负载强度不大于设定的负载强度阈值时,将可延迟任务设置为正常执行;
多核调度控制器调度单元,用于监测当前时间段对应的所有任务内存带宽值,并预测下一时间段对应的所需内存带宽消耗值;当当前时间段任务所有内存带宽值大于设定的最大可用内存带宽,将当前时间段任务所有内存带宽值设为最大可用内存带宽并降低可延迟任务的带宽需求;判断所需内存带宽消耗值是否大于最大可用内存带宽;若是,则增加可延迟任务获得的cpu核心数;若否,则迁走可延迟任务到另一个numa节点。
其中,任务线程与cpu处理核心映射绑定模块100、服务质量调度模块200以及集群调度模块300可以根据需求设置在一个系统中。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的多任务环境下任务调度方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。