一种基于微内核的负载均衡方法技术

技术编号:35950420 阅读:15 留言:0更新日期:2022-12-14 10:42
本发明专利技术公开了一种基于微内核的负载均衡方法,随机选择负载均衡决策内核,各个内核分别对其上的任务负载进行监控,对于各个内核,根据其运行队列中每个任务的历史负载和当前运行状态计算得到任务的当前负载,然后将运行队列中所有任务的负载求和得到内核的负载,再由决策内核进行负载均衡:如果有新任务创建,则将新任务分配至任务负载等级最小的内核,如果达到预设的负载均衡触发条件,则对当前各个内核任务负载情况进行分析,在必要时进行任务的核间迁移来实现负载均衡;每次负载均衡完毕后根据当前任务负载判断是否需要进行决策内核迁移。本发明专利技术以任务为粒度来计算负载,并且考虑任务历史负载的影响,使得负载均衡更加精确、合理。合理。合理。

【技术实现步骤摘要】
一种基于微内核的负载均衡方法


[0001]本专利技术属于微内核
,更为具体地讲,涉及一种基于微内核的负载均衡方法。

技术介绍

[0002]在多核操作系统中,负载均衡是充分发挥硬件性能的一个重要机制。负载均衡的思想是,通过追踪每个CPU核心当前的负载情况,将处于高负载的CPU核心管理的任务迁移到低负载的CPU核心上,尽可能地保证每个核心的负载大致相同。
[0003]负载均衡面临的一大挑战是:应该如何确定当前任务的负载情况。对当前任务的负载信息描述的越准确,对应的负载均衡策略就越有效。在大部分场景中,一个任务的执行负载是动态变化的,因此系统必须动态追踪系统当前的负载情况,这会造成一定的性能开销。所以,如何在保持低开销的同时对负载进行精确追踪是调度器设计实现的一大挑战。
[0004]当前微内核中,使用的调度算法是基于优先级的时间片轮转调度算法,每个任务有时间片的属性,内核就以每个CPU核心的运行队列为粒度计算负载,将运行队列上所有任务的时间片之和作为该CPU核心的负载,这实际上是不够合理的。举例而言,如果有一个IO密集型任务,在之前的周期内都处于睡眠状态,仅在当前周期爆发式的占用CPU,而下一个周期又继续去睡眠了,那么在当前周期内计算负载时如果认为该任务提供的负载特别大实际上是不合理的,进而会导致负载均衡的决策会起到反作用,需要进行改进。

技术实现思路

[0005]本专利技术的目的在于克服现有技术的不足,提供一种基于微内核的负载均衡方法,以任务为粒度来计算负载,并且考虑任务历史负载的影响,实现更细粒度的负载追踪,使得负载均衡更加精确、合理。
[0006]为了实现上述专利技术目的,本专利技术基于微内核的负载均衡方法包括以下步骤:
[0007]S1:记微内核操作系统中包含内核数量为N,在微内核操作系统启动时,随机选择一个内核作为负载均衡的决策内核n
*

[0008]S2:微内核操作系统中各个内核分别对其上的任务负载进行监控,统计得到各个时刻t时该内核的负载L
n,t
,n=1,2,

,N,具体方法如下:
[0009]各个内核计算其运行队列中每个任务在时刻t的负载load
n,m,t

[0010][0011]其中,m=1,2,

,M
n
,M
n
表示第n个内核运行队列中的任务数量,load
n,m,t
‑1表示上一时刻t

1时第n个内核中第m个任务的负载,load
n,m,0
为第n个内核中第m个任务的时间片大小,runtime
n,m,t
为时刻t所在统计周期中第n个内核中第m个任务的实际运行时间,y表示预设的衰减系数;
[0012]每个内核将其运行队列中每个任务在时刻t的负载求和,得到该内核的负载L
n,t

[0013][0014]S3:决策内核对每个内核当前的任务负载状态进行评估,得到各个内核的任务负载等级S
n,t

[0015]S4:决策内核判断微内核操作系统中是否有新任务创建,如果有新任务创建,进入步骤S5,否则进入步骤S6;
[0016]S5:从所有内核中选择任务负载等级最小的内核,将新任务分配至该内核,返回步骤S2;
[0017]S6:决策内核判断是否达到预设的负载均衡触发条件,如果是,进入步骤S7,否则返回步骤S2;
[0018]S7:决策内核获取当前每个内核的任务负载,筛选出负载最重的内核n
max
和负载最轻的内核n
min
,然后对这两个内核的任务负载进行任务负载状态评估,得到对应的任务负载等级,如果内核n
max
的任务负载等级为重或内核n
min
的任务负载等级为轻,则进行负载均衡,否则说明当前任务负载情况不需要进行负载均衡,不作任何操作;负载均衡的具体方法如下:
[0019]从内核n
max
上筛选出时间片大小最小的任务task,然后计算任务task从内核n
max
迁出前内核n
max
的任务负载以及任务task迁入内核n
min
后内核n
min
的任务负载如果则调用核间任务迁移函数将任务task从内核n
max
迁移至内核n
min
,否则不作任何操作;
[0020]S8:决策内核n
*
重新对各个内核进行任务负载状态评估,判断自身的任务负载等级是否小于预设的任务负载等级阈值如果是则不进行决策内核切换,否则从其他各个内核中筛选出任务负载等级最小的内核如果内核的任务负载等级大于等于任务负载等级阈值则不进行决策内核切换,否则决策内核n
*
将负载均衡决策权限移交至内核即令内核作为决策内核n
*
,返回步骤S2。
[0021]本专利技术基于微内核的负载均衡方法,随机选择负载均衡决策内核,各个内核分别对其上的任务负载进行监控,对于各个内核,根据其运行队列中每个任务的历史负载和当前运行状态计算得到任务的当前负载,然后将运行队列中所有任务的负载求和得到内核的负载,再由决策内核进行负载均衡:如果有新任务创建,则将新任务分配至任务负载等级最小的内核,如果达到预设的负载均衡触发条件,则对当前微内核操作系统中各个内核任务负载情况进行分析,在必要时进行任务的核间迁移来实现负载均衡;每次负载均衡完毕后根据当前任务负载判断是否需要进行决策内核迁移。
[0022]本专利技术具有以下有益效果:
[0023]1)本专利技术以任务为粒度来计算内核的负载,使得负载监控的粒度更加的细腻,负载均衡决策的效率提高,更有利于做出合理的负载均衡决策;
[0024]2)本专利技术在计算任务负载时考虑历史负载的影响,使得任务负载计算更加合理,以便得到更准确的负载均衡策略,避免瞬时负载变化过大导致的频繁任务迁移;
[0025]3)本专利技术未采用固定内核作为负载均衡决策内核,而是根据任务负载选择任务负
载轻的内核确定负载均衡决策内核,可以进一步促进内核的负载均衡。
附图说明
[0026]图1是本专利技术基于微内核的负载均衡方法的具体实施方式流程图。
具体实施方式
[0027]下面结合附图对本专利技术的具体实施方式进行描述,以便本领域的技术人员更好地理解本专利技术。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本专利技术的主要内容时,这些描述在这里将被忽略。
[0028]实施例
[0029]图1是本专利技术基于微内核的负载均衡方法的具体实施方式流程图。如图1所示,本专利技术基于微内核的负载均衡方法的具体步骤包括:
[0030]S101:随机选择负载均衡决策内核:
[0031]记微内核操作系统中包含内核数量为N本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微内核的负载均衡方法,其特征在于,包括以下步骤:S1:记微内核操作系统中包含内核数量为N,在微内核操作系统启动时,随机选择一个内核作为负载均衡的决策内核n
*
;S2:微内核操作系统中各个内核分别对其上的任务负载进行监控,统计得到各个时刻t时该内核的负载L
n,t
,n=1,2,

,N,具体方法如下:每个内核计算其运行队列中每个任务在时刻t的负载load
n,m,t
:其中,m=1,2,

,M
n
,M
n
表示第n个内核运行队列中的任务数量,load
n,m,t
‑1表示上一时刻t

1时第n个内核中第m个任务的负载,load
n,m,0
为第n个内核中第m个任务的时间片大小,runtime
n,m,t
为时刻t所在统计周期中第n个内核中第m个任务的实际运行时间,y表示预设的衰减系数;每个内核将其运行队列中每个任务在时刻t的负载求和,得到该内核的负载L
n,t
:S3:决策内核对每个内核当前的任务负载状态进行评估,得到各个内核的任务负载等级S
n,t
;S4:决策内核判断微内核操作系统中是否有新任务创建,如果有新任务创建,进入步骤S5,否则进入步骤S6;S5:从所有内核中选择任务负载等级最小的内核,将新任务分配至该内核,返回步骤S2;S6:决策内核判断是否达到预设的负载均衡触发条件,如果是,进入步骤S7,否则返回步骤S2;S7:决策内核获取当前每个内核的任务负载,筛选出负载最重的内核n
max
和负载最轻的内核n
min
,然后对这两个内核的任务负载进行任务负载状态评估,得到对应的任务负载等级,如果内核n...

【专利技术属性】
技术研发人员:李蒙肖堃谭钦云罗蕾陈丽蓉
申请(专利权)人:中移物联网有限公司
类型:发明
国别省市:

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

1