CN116010085A - 负载均衡方法、装置、网络设备及存储介质 - Google Patents
负载均衡方法、装置、网络设备及存储介质 Download PDFInfo
- Publication number
- CN116010085A CN116010085A CN202211635023.0A CN202211635023A CN116010085A CN 116010085 A CN116010085 A CN 116010085A CN 202211635023 A CN202211635023 A CN 202211635023A CN 116010085 A CN116010085 A CN 116010085A
- Authority
- CN
- China
- Prior art keywords
- data processing
- working data
- core
- processing core
- processing cores
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种负载均衡方法、装置、网络设备及存储介质,涉及计算机技术领域。该方法包括:获取多个数据处理核中至少一个工作数据处理核的负载状态值,其中,多个数据处理核包括:工作数据处理核和休眠数据处理核,每个数据处理核具有至少一个报文的驱动接收队列;根据负载状态值,计算多核处理器的全局负载状态值;根据负载状态值和全局负载状态值,对至少一个工作数据处理核所处理的驱动接收队列以及工作数据处理核的数量进行调整,以达到调整后的工作数据处理核的负载状态值均衡。本申请可以实现多个数据处理核之间的负载均衡,降低整个多核处理器的功耗。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种负载均衡方法、装置、网络设备及存储介质。
背景技术
当前计算机网络技术和规模飞速发展,网络传输速率越来越高,从最早的10Mbps/100Mbps/1000Mbps,当前已发展到桌面10Gbps,甚至服务器要求40Gbps/100Gbps,这对于作为网络传输节点的网络设备来说性能要求也越来越高。
随着网络设备的性能越来越高,其整机功耗也越来越大,针对支持复杂业务的网络设备通常采用多核CPU(Central Processing Unit/Processor,中央处理器),为了提升业务处理性能,采用不间断轮询的方式来接收处理网络接口上的报文流量,使得多核CPU在时时刻刻都处于高负载的状况,然而实际上网络接口流量并不是一直都是最大的,这就造成这些网络设备在很多时间都在空转,其设备功耗也一直比较高。
现有的针对多核CPU的负载均衡方法,不能从每个处理核和多核CPU全局的角度综合实现多核CPU的负载均衡。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种负载均衡方法、装置、网络设备及存储介质,以便实现多个数据处理核之间的负载均衡,降低整个多核处理器的功耗。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种负载均衡方法,应用于具有多核处理器的网络设备的控制核,所述多核处理器包括:所述控制核和多个数据处理核,所述方法包括:
获取所述多个数据处理核中至少一个工作数据处理核的负载状态值,其中,所述多个数据处理核包括:工作数据处理核和休眠数据处理核,每个数据处理核具有至少一个报文的驱动接收队列;
根据所述负载状态值,计算所述多核处理器的全局负载状态值;
根据所述负载状态值和所述全局负载状态值,对所述至少一个工作数据处理核所处理的驱动接收队列以及所述工作数据处理核的数量进行调整,以达到调整后的工作数据处理核的负载状态值均衡。
可选的,所述根据所述负载状态值和所述全局负载状态值,对所述至少一个工作数据处理核所处理的驱动接收队列以及所述工作数据处理核的数量进行调整,包括:
在每个预设周期内,根据所述负载状态值,调整对应的所述工作数据处理核所处理的驱动接收队列;
在所述每个预设周期内,若所述工作数据处理核的数量小于所述多核处理器中所有数据处理核的数量,则根据所述全局负载状态值,对所述工作数据处理核的数量进行调整。
可选的,所述在每个预设周期内,根据所述负载状态值,调整对应的所述工作数据处理核所处理的驱动接收队列,包括:
在所述每个预设周期内,若所述工作数据处理核的数量大于或等于2,从所述工作数据处理核中确定第一工作数据处理核和第二工作数据处理核,其中,所述第一工作数据处理核为所述负载状态值大于或等于预设高门限值,且所述驱动接收队列大于1的工作数据处理核中所述负载状态值最大的工作数据处理核,所述第二工作数据处理核为所述负载状态值最小的工作数据处理核;
控制所述第二工作数据处理核对所述第一工作数据处理核的一个驱动接收队列进行报文处理。
可选的,所述根据所述全局负载状态值,对所述工作数据处理核的数量进行调整,包括:
在所述每个预设周期内,若所述全局负载状态值大于预设高门限值,在前一预设周期的预设状态次数基础上增加所述预设状态次数;
若增加后的预设状态次数大于或等于预设次数阈值,激活一个休眠数据处理核,其中,激活后的休眠数据处理核切换至工作状态。
可选的,所述方法还包括:
接收目标工作数据处理核发送的休眠请求,所述目标工作数据处理核为所述多核处理器中任一工作数据处理核;
根据所述工作数据处理核的数量,对所述休眠请求进行处理,向所述目标工作数据处理核发送休眠处理结果。
可选的,所述根据所述工作数据处理核的数量,对所述休眠请求进行处理,向所述目标工作数据处理核发送休眠处理结果,包括:
若所述工作数据处理核的数量为1,向所述目标工作数据处理核发送拒绝休眠消息,所述目标工作数据处理核根据所述拒绝休眠消息继续工作。
可选的,所述根据所述工作数据处理核的数量,对所述休眠请求进行处理,向所述目标工作数据处理核发送休眠处理结果,包括:
若所述工作数据处理核的数量大于1,将所述目标工作数据处理核的驱动接收队列分配给所述工作数据处理核中所述负载状态值最小的工作数据处理核;
向所述目标工作数据处理核发送同意休眠消息,所述目标工作数据处理核根据所述同意休眠消息进行休眠。
第二方面,本申请实施例还提供一种负载均衡装置,应用于具有多核处理器的网络设备的控制核,所述多核处理器包括:所述控制核和多个数据处理核,所述装置包括:
负载状态值获取模块,用于获取所述多个数据处理核中至少一个工作数据处理核的负载状态值,其中,所述多个数据处理核包括:工作数据处理核和休眠数据处理核,每个数据处理核具有至少一个驱动接收队列;
全局负载状态值计算模块,用于根据所述负载状态值,计算所述多核处理器的全局负载状态值;
数据处理核调整模块,用于根据所述负载状态值和所述全局负载状态值,对所述至少一个工作数据处理核所处理的驱动接收队列以及所述工作数据处理核的数量进行调整,以达到调整后的工作数据处理核的负载状态值均衡。
可选的,所述数据处理核调整模块,包括:
驱动接收队列调整单元,用于在每个预设周期内,根据所述负载状态值,调整对应的所述工作数据处理核所处理的驱动接收队列;
数据处理核数量调整单元,用于在所述每个预设周期内,若所述工作数据处理核的数量小于所述多核处理器中所有数据处理核的数量,则根据所述全局负载状态值,对所述工作数据处理核的数量进行调整。
可选的,所述驱动接收队列调整单元,包括:
数据处理核选择子单元,用于在所述每个预设周期内,若所述工作数据处理核的数量大于或等于2,从所述工作数据处理核中确定第一工作数据处理核和第二工作数据处理核,其中,所述第一工作数据处理核为所述负载状态值大于或等于预设高门限值,且所述驱动接收队列大于1的工作数据处理核中所述负载状态值最大的工作数据处理核,所述第二工作数据处理核为所述负载状态值最小的工作数据处理核;
驱动接收队列调整子单元,用于控制所述第二工作数据处理核对所述第一工作数据处理核的一个驱动接收队列进行报文处理。
可选的,所述数据处理核数量调整单元,包括:
预设状态次数修改子单元,用于在所述每个预设周期内,若所述全局负载状态值大于所述预设高门限值,在前一预设周期的预设状态次数基础上增加所述预设状态次数;
数据处理核激活子单元,用于若增加后的预设状态次数大于或等于预设次数阈值,激活一个休眠数据处理核,其中,激活后的休眠数据处理核切换至工作状态。
可选的,所述装置还包括:
休眠请求接收模块,用于接收目标工作数据处理核发送的休眠请求,所述目标工作数据处理核为所述多核处理器中任一工作数据处理核;
休眠请求处理模块,用于根据所述工作数据处理核的数量,对所述休眠请求进行处理,向所述目标工作数据处理核发送休眠处理结果。
可选的,所述休眠请求处理模块,具体用于若所述工作数据处理核的数量为1,向所述目标工作数据处理核发送拒绝休眠消息,所述目标工作数据处理核根据所述拒绝休眠消息继续工作。
可选的,所述休眠请求处理模块,包括:
驱动接收队列分配单元,用于若所述工作数据处理核的数量大于1,将所述目标工作数据处理核的驱动接收队列分配给所述工作数据处理核中所述负载状态值最小的工作数据处理核;
休眠消息发送单元,用于向所述目标工作数据处理核发送同意休眠消息,所述目标工作数据处理核根据所述同意休眠消息进行休眠。
第三方面,本申请实施例还提供一种网络设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当网络设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如第一方面任一项所述的负载均衡方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一项所述的负载均衡方法的步骤。
本申请的有益效果是:
本申请提供一种负载均衡方法、装置、网络设备及存储介质,根据多核处理器中各个工作数据处理核的负载状态和整个多核处理器的全局负载状态,对各个工作数据处理核所处理的驱动接收队列以及工作数据处理核的数量进行调整,即可以保证各个工作数据处理核所处理的驱动接收队列均衡,避免一些工作数据处理核空转,而另一些数据处理核过载,使各个工作数据处理核的负载均衡;也可以避免整个多核处理器因负载过大导致响应速度变慢,使得整个多核处理器的功耗与全局负载相匹配,使网络设备的能效比达到最优状态。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的网络设备的数据平面的示意图;
图2为本申请实施例提供的负载均衡方法的流程示意图一;
图3为本申请实施例提供的全局负载状态值记录表和报文个数记录表的对应关系图;
图4为本申请实施例提供的负载均衡方法的流程示意图二;
图5为本申请实施例提供的负载均衡方法的流程示意图三;
图6为本申请实施例提供的负载均衡方法的流程框图一;
图7为本申请实施例提供的负载均衡方法的流程框图二;
图8为本申请实施例提供的负载均衡方法的流程示意图四;
图9为本申请实施例提供的负载均衡方法的流程示意图五;
图10为本申请实施例提供的负载均衡方法的流程框图三;
图11为本申请实施例提供的负载均衡方法的流程框图四;
图12为本申请实施例提供的负载均衡装置的结构示意图;
图13为本申请实施例提供的网络设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
在对本申请实施例提供的负载均衡方法进行说明之前,先对本申请实施例所应用的网络设备进行介绍。请参考图1,为本申请实施例提供的网络设备的数据平面的示意图,如图1所示,数据平面是网络设备中用于高速处理业务报文的系统,网络设备采用多核处理器,具有n个核,其中,确定第0核为控制核,第1到第(n-1)核为数据处理核,网络设备100与多个网络接口连接,多个网络接口生成了若干个驱动接收队列,驱动接收队列用于接收并暂存待处理报文,将若干个驱动接收队列平均分配给多个数据处理核,数据处理核可以从分配给自己的驱动接收队列中获取待处理报文,以对待处理报文进行业务处理。示例的,如图1所示,网络接口生成了2*(n-1)个驱动接收队列,每个数据处理核分配得到2个驱动接收队列。
其中,数据处理核以轮询的方式从驱动接收队列中获取待处理报文,即数据处理核每一轮从驱动接收队列中获取多个待处理报文进行批量处理,在一些实施例中,确定数据处理核每一轮从驱动接收队列中获取待处理报文的数量上线为Cmax,数据处理核每一轮从驱动接收队列中最多获取Cmax个待处理报文,若驱动接收队列中的待处理报文的个数大于Cmax,则,数据处理核从驱动接收队列中获取Cmax个待处理报文,其余待处理报文在下一轮获取;若驱动接收队列中的待处理报文的个数小于Cmax,则数据处理核从驱动接收队列中获取所有的待处理报文后结束本次获取行为。其中,数据处理核每一轮获取的待处理报文的个数在0~Cmax之间。
在一种可能的实现方式中,控制核创建一个全局负载状态值记录表GlobalLoadTable、变量GlobalLoadBusy和变量LiveCoreCnt,其中,全局负载状态值记录表GlobalLoadTable的表项数量为n,每个表项GlobalLoadTable[core]用于记载一个核的负载状态值Load,负载状态值为有符号整型值,定义数据处理核处于休眠状态时GlobalLoadTable[core]为特殊负值如-1,控制核对应的表项GlobalLoadTable[0]不使用。全局负载状态值记录表GlobalLoadTable中每个表项的值初始化为0。
变量GlobalLoadBusy用于统计所有处于工作状态的数据处理核的全局负载状态值GlobalLoad大于或等于预设高门限值的次数,变量GlobalLoadBusy初始化为0。
变量LiveCoreCnt用于记录处于工作状态的数据处理核的个数,变量LiveCoreCnt初始化为n-1,即在网络设备初始化后,所有的数据处理核均处于工作状态,当一个数据处理核休眠后,变量LiveCoreCnt减1,当有一个数据处理核从休眠被激活后,变量LiveCoreCnt加1。
在一种可能的实现方式中,控制核为每个数据处理核创建一个报文个数记录表CntTable、表项索引index和变量LoadBusy,其中,报文个数记录表CntTable的表项数量为m,用于表示数据处理核从驱动接收队列获取m轮待处理报文,每个表项记载数据处理核从驱动接收队列接收到的一轮待处理报文的数量,为有符号整型值,每个表项初始化为0,报文个数记录表CntTable可以循环记录每m轮获取的待处理报文。
表项索引index用于记载数据处理核从驱动接收队列获取待处理报文的轮数,其初始化为0,数据处理核每从驱动接收队列获取一轮待处理报文,表项索引index加1,当表项索引index大于或等于最大表项数m后,将index重新设置为0,实现报文个数记录表CntTable的循环记录。
变量LoadBusy用于统计数据处理核的负载状态值Load小于预设低门限值的次数,变量LoadBusy初始化为0。
基于上述网络设备,本申请实施例提供一种负载均衡方法,应用于上述网络设备的控制核。
请参考图2,为本申请实施例提供的负载均衡方法的流程示意图一,如图2所示,该方法可包括:
S10:获取多个数据处理核中至少一个工作数据处理核的负载状态值,其中,多个数据处理核包括:工作数据处理核和休眠数据处理核,每个数据处理核具有至少一个报文的驱动接收队列。
本实施例中,数据处理核分为工作数据处理核和休眠数据处理核,工作数据处理核处于工作状态,持续从驱动接收队列中获取待处理报文,并对待处理报文进行业务处理,休眠数据处理核处于休眠状态,不从驱动接收队列中获取待处理报文,负载状态值为工作数据处理核经过m轮从驱动接收队列获取的待处理报文的平均值,数据处理核对m轮的待处理报文进行计算,得到负载状态值Load后,将负载状态值Load发送至控制核,控制核将每个工作数据处理核的负载状态值Load登记在全局负载状态值记录表GlobalLoadTable的表项GlobalLoadTable[core]中,即工作数据处理核的GlobalLoadTable[core]=Load;全局负载状态值记录表GlobalLoadTable中休眠数据处理核的表项GlobalLoadTable[core]记录为特殊负值。
其中,当数据处理核对m轮的待处理报文处理完成后,重新从驱动接收队列中获取m轮的待处理报文,计算该m轮待处理报文的负载状态值Load后,在控制核的全局负载状态值记录表GlobalLoadTable中更新该数据处理核的负载状态值Load。
示例的,请参考图3,为本申请实施例提供的全局负载状态值记录表和报文个数记录表的对应关系图,如图3所示,每个数据处理核每轮从驱动接收队列中获取Cnt个待处理报文,将该轮获取的待处理报文的数量Cnt记录在该数据处理核的报文个数记录表CntTable[index]中,根据m轮记载的待处理报文的数量,对该数据处理核的负载状态值进行计算,并将结果赋值给全局负载状态值记录表GlobalLoadTable中的GlobalLoadTable[core]。
其中,可以通过计算每个数据处理核的m轮待处理报文的数量的平均值,确定负载状态值Load,其计算公式可以表示为:
Load=(CntTable[0]+CntTable[1]+…+CntTable[m-1])/m
需要说明的是,每记载一轮待处理报文的数量CntTable[index],对表项索引index加1,当加1后的表项索引index大于或等于m时,将表项索引index重新设置为0,使得下次获取待处理报文后从头开始记录,根据index等0的待处理报文的数量CntTable[0]至index等于n-1的待处理报文的数量CntTable[n-1]计算负载状态值Load。
S20:根据负载状态值,计算多核处理器的全局负载状态值。
本实施例中,全局负载状态值用于表示多核处理器整体的负载状况,可以采用多核处理器中处于工作状态的数据处理核的负载状态值确定多核处理器的全局负载状态值,从全局负载状态值记录表GlobalLoadTable中确定除了表项GlobalLoadTable[0]和表项的取值不为特殊负值的各个表项GlobalLoadTable[core],以从各个表项GlobalLoadTable[core]中确定记载的各个工作数据处理核的负载状态值,根据各个工作数据处理核的负载状态值Load以及工作数据处理核的数量LiveCoreCnt,计算多核处理器的全局负载状态值GlobalLoad。
示例的,可以计算多个工作数据处理核的负载状态值Load的平均值,确定全局负载状态值GlobalLoad,其计算公式可以表示为:GlobalLoad=(工作数据处理核的GlobalLoadTable[core]之和)/LiveCoreCnt S30:根据负载状态值和全局负载状态值,对至少一个工作数据处理核所处理的驱动接收队列以及工作数据处理核的数量进行调整,以达到调整后的工作数据处理核的负载状态值均衡。
本实施例中,根据各个工作数据处理核的负载状态值,确定各个工作数据处理核的负载均衡状态,根据全局负载状态值确定整个多核处理器的负载状态,以根据各个工作数据处理核的负载均衡状态和多核处理器的负载状态,对各个工作数据处理核所处理的驱动接收队列以及工作数据处理核的数量进行调整,使各个工作数据处理核的负载均衡,避免整个多核处理器因负载过大导致响应速度变慢。
在一种可能的实现方式中,上述S30中根据负载状态值和全局负载状态值,对至少一个工作数据处理核所处理的驱动接收队列以及工作数据处理核的数量进行调整的过程,可以包括:
在每个预设周期内,根据负载状态值,调整对应的工作数据处理核所处理的驱动接收队列;在每个预设周期内,若工作数据处理核的数量小于多核处理器中所有数据处理核的数量,则根据全局负载状态值,对工作数据处理核的数量进行调整。
本实施例中,预设周期为控制核对数据处理核的负载状态进行监控的周期,在预设周期内,控制核根据各个工作数据处理核的负载状态值,确定各个工作数据处理核的负载均衡状态,若各个工作数据处理核的负载不均衡,则对各个工作数据处理核所处理的驱动接收队列进行调整,以将负载状态值高的工作数据处理核的驱动接收队列分配给其他负载状态值低的工作数据处理核,使各个工作数据处理核的负载均衡。
在预设周期内,对各个工作数据处理核所处理的驱动接收队列进行调整后,还需要根据全局负载状态值确定是否需要对工作数据处理核的数量进行调整,若需要调整工作数据处理核的数量,则先判断工作数据处理核的数据是否小于多个处理器中所有数据处理核的数量,或者判断是否有休眠数据处理核,若工作数据处理核的数据等于多个处理器中所有数据处理核的数量,或者没有休眠数据处理核,则确定所有数据处理核均处于工作状态,无法再调整工作数据处理核的数量;若工作数据处理核的数据小于多个处理器中所有数据处理核的数量,或者存在休眠数据处理核,则可以增加工作数据处理核的数量。
在一种可能的实现方式中,控制核创建一个负载动态监控线程,该负载动态监控线程根据预设周期每隔固定时间在控制核上运行一次,负载动态监控线程运行后,根据负载状态值,调整对应的工作数据处理核所处理的驱动接收队列,根据全局负载状态值,对工作数据处理核的数量进行调整。
上述实施例提供的负载均衡方法,根据多核处理器中各个工作数据处理核的负载状态和整个多核处理器的全局负载状态,对各个工作数据处理核所处理的驱动接收队列以及工作数据处理核的数量进行调整,即可以保证各个工作数据处理核所处理的驱动接收队列均衡,避免一些工作数据处理核空转,而另一些数据处理核过载,使各个工作数据处理核的负载均衡;也可以避免整个多核处理器因负载过大导致响应速度变慢,使得整个多核处理器的功耗与全局负载相匹配,使网络设备的能效比达到最优状态。
以下结合图4对调整工作数据处理核所处理的驱动接收队列的一种可能的实现方式进行说明。
请参考图4,为本申请实施例提供的负载均衡方法的流程示意图二,如图4所示,上述在每个预设周期内,根据负载状态值,调整对应的工作数据处理核所处理的驱动接收队列,可以包括:
S31:在每个预设周期内,若工作数据处理核的数量大于或等于2,从工作数据处理核中确定第一工作数据处理核和第二工作数据处理核,其中,第一工作数据处理核为负载状态值大于或等于预设高门限值,且驱动接收队列大于1的工作数据处理核中负载状态值最大的工作数据处理核,第二工作数据处理核为负载状态值最小的工作数据处理核。
本实施例中,在对工作数据处理核所处理的驱动接收队列进行调整前,需要先判断工作数据处理核的数量是否大于或等于2,若工作数据处理核的数量为1,则无法把工作数据处理核所处理的驱动接收队列调整至其他工作数据处理核,直接判断是否需要增加工作数据处理核的数量。
在确定工作数据处理核的数量大于或等于2后,从工作数据处理核中确定第一工作数据处理核和第二工作数据处理核,具体的,在全局负载状态值记录表GlobalLoadTable中,对各个工作数据处理核的负载状态值进行排序,从高到低依次遍历每个工作数据处理核,判断当前工作数据处理核的负载状态值是否大于或等于预设高门限值,若是,则判断该工作数据处理核的驱动接收队列的数量是否大于1,若是,确定该工作数据处理核为第一工作数据处理核,确定负载状态值最低的数据处理核为第二工作数据处理核。
其中,若工作数据处理核的负载状态值大于或等于预设高门限值,但该工作数据处理核仅有一个驱动接收队列,则继续遍历下一个负载状态值较低的工作数据处理核,直至确定满足负载状态值大于或等于预设高门限值,且驱动接收队列大于1的工作数据处理核的第一工作数据处理核,若直至遍历到负载状态值小于或等于预设高门限值的工作数据处理核,仍未确定第一工作数据处理核,则剩余工作数据处理核不再进行遍历,本预设周期内不进行驱动接收队列的调整,直接判断是否需要增加工作数据处理核的数量。
在一种可能的实现方式中,从全局负载状态值记录表GlobalLoadTable中确定最高的负载状态值Load(max)和最低的负载状态值Load(min),若最高的负载状态值Load(max)小于预设高门限值,则本预设周期内不进行驱动接收队列的调整,直接判断是否需要增加工作数据处理核的数量。
若最低的负载状态值Load(min)大于预设高门限值,确定各个工作数据处理核中没有比较空闲的工作数据处理核可以处理其他工作数据处理核的驱动接收队列,则本预设周期内不进行驱动接收队列的调整,直接判断是否需要增加工作数据处理核的数量。
S32:控制第二工作数据处理核对第一工作数据处理核的一个驱动接收队列进行报文处理。
本实施例中,由于第一工作数据处理核是具有至少两个驱动接收队列的工作数据处理核中负载状态值最大的工作数据处理核,第二工作数据处理核为所有工作数据处理核中负载状态值最小的工作数据处理核,为了平衡各个工作数据处理核的负载,控制核可以将第一工作数据处理核的一个驱动接收队列分配给第二工作数据处理核,由第二工作数据处理核对该驱动接收队列中的待处理报文进行处理,以平衡第一工作数据处理核和第二工作数据处理核之间的负载。
需要说明的是,在一个预设周期内,只进行一次驱动接收队列的调整,即只将一个第一工作数据处理核的一个驱动接收队列分配给第二驱动接收队列,即结束本预设周期的驱动接收队列的调整,进入到调整工作数据处理核的流程中。
上述实施例提供的负载均衡方法,根据多核处理器中各个工作数据处理核的负载状态值,确定具有至少两个驱动接收队列的工作数据处理核中负载状态值最大的第一工作数据处理核和负载状态值最小的第二工作数据处理核,将第一工作数据处理核的一个驱动接收队列分配给第二工作数据处理核,由第二工作数据处理核对该驱动接收队列中的待处理报文进行处理,保证各个工作数据处理核所处理的驱动接收队列均衡,避免一些工作数据处理核空转,而另一些数据处理核过载,使各个工作数据处理核的负载均衡。
以下结合图5对调整工作数据处理核的数量的一种可能的实现方式进行说明。
请参考图5,为本申请实施例提供的负载均衡方法的流程示意图三,如图5所示,上述根据全局负载状态值,对工作数据处理核的数量进行调整,可以包括:
S33:在每个预设周期内,若全局负载状态值大于预设高门限值,在前一预设周期的预设状态次数基础上增加预设状态次数。
本实施例中,在结束对驱动接收队列的调整后,需要判断在该预设周期内是否需要调整工作数据处理核的数量,具体的,在预设周期内,判断全局负载状态值是否大于预设高门限值,预设状态次数用于表示在连续多个预设周期内全局负载状态值大于或等于预设高门限值的次数,若本预设周期内全局负载状态值大于预设高门限值,则在前一预设周期的预设状态次数基础上增加预设状态次数;若本预设周期内全局负载状态值小于或等于预设高门限值,则对预设状态次数清零。
示例的,采用变量GlobalLoadBusy记录预设状态次数,若全局负载状态值大于预设高门限值,则变量GlobalLoadBusy加1,若全局负载状态值小于或等于预设高门限值,则变量GlobalLoadBusy设置为0,在下一预设周期内重新开始计数。
S34:若增加后的预设状态次数大于或等于预设次数阈值,激活一个休眠数据处理核,其中,激活后的休眠数据处理核切换至工作状态。
本实施例中,若增加后的预设状态次数大于或等于预设次数阈值,则确定多核处理器在连续多个预设周期内的全局负载状态值均大于预设高门限值,则控制核向一个休眠数据处理核发送激活指令,以使得该休眠数据处理核切换到工作状态,成为工作数据处理核。激活一个休眠数据处理核后,将预设状态次数重新设置为0,重新统计全局负载状态值均大于预设高门限值的次数。
该休眠数据处理核成为工作数据处理核后,网络接口向该工作数据处理核的驱动接收队列发送待处理报文,该工作数据处理核从驱动接收队列中获取m轮待处理报文后,计算该工作数据处理核的负载状态值,并在全局负载状态值记录表GlobalLoadTable中更新该工作数据处理核的负载状态值。增加工作数据处理核的数量后,需要经过多次驱动接收队列的调整,达到新的负载均衡。
在一种可能的实现方式中,若增加后的预设状态次数仍小于预设次数阈值,则在下一个预设周期开始后再次执行调整驱动接收队列和调整工作数据处理核的数量的流程。
上述实施例提供的负载均衡方法,当在多个连续的预设周期内,多核处理器的全局负载状态值均大于预设高门限值时,确定整个多核处理器的负载过高,导致多核处理器的业务处理速度降低,通过激活休眠数据处理核,增加工作数据处理核的数量,避免整个多核处理器因负载过高导致多核处理器的响应速度变慢,提高多核处理器的业务处理能力,使网络设备的能效比达到最优状态。
以下结合图6对调整驱动接收队列的过程进行整体说明。
请参考图6,为本申请实施例提供的负载均衡方法的流程框图一,如图6所示,调整驱动接收队列的过程包括:
S101:控制核创建负载动态监控线程,经过睡眠时间Time后,进入驱动接收队列调整流程。
S102:判断工作数据处理核的数量LiveCoreCnt是否小于或等于1,若为是,则直接进入调整工作数据处理核的数量的流程,若为否,跳转至S103。
S103:对全局负载状态值记录表GlobalLoadTable进行排序,确定最高的负载状态值Load(max)和最低的负载状态值Load(min)。
S104:判断最低的负载状态值Load(min)是否大于预设高门限值T1,若为是,则直接进入调整工作数据处理核的数量的流程,若为否,跳转至S105。
S105:从最高的负载状态值Load(max)开始遍历每个工作数据处理核的负载状态值。
S106:判断当前工作数据处理核的负载状态值Load是否小于预设高门限值T1,若为是,则直接进入调整工作数据处理核的数量的流程,若为否,跳转至S107。
S107:判断当前工作数据处理核的驱动接收队列的数量qCnt是否小于或等于1,若为是,则跳转至S105,遍历下一个工作数据处理核;若为否,跳转至S108。
S108:将当前数据处理核的一个驱动接收队列调整至Load(min)的数据处理核,然后进入调整工作数据处理核的数量的流程。
以下结合图7对调整工作数据处理核的数量的过程进行整体说明。
请参考图7,为本申请实施例提供的负载均衡方法的流程框图二,如图7所示,调整工作数据处理核的数量的过程,可以包括:
S201:判断工作数据处理核的数量LiveCoreCnt是否大于或等于所有数据处理核的数量n-1,若为是,则无法激活新的数据处理核,负载动态监控线程进入睡眠时间Time;若为否,跳转至S202。
S202:根据工作数据处理核的GlobalLoadTable[core]计算全局负载状态值GlobalLoad。
S203:判断全局负载状态值GlobalLoad是否大于预设高门限值T1,若为是,则跳转至S204,若为否,则跳转至S208。
S204:将变量GlobalLoadBusy加1。
S205,判断变量GlobalLoadBusy是否大于预设次数阈值X,若为是,则跳转至S206,若为否,则不激活新的数据处理核,负载动态监控线程进入睡眠时间Time。
S206:激活一个休眠数据处理核。
S207:将LiveCoreCnt加1。
S208:将变量GlobalLoadBusy设置为0,负载动态监控线程进入睡眠时间Time。
需要说明的是,预设高门限值T1用于限制数据处理核激活,预设高门限值T1越高,数据处理核的激活条件越苛刻,网络设备的能效比越高,但多核处理器的报文响应速度会越慢;预设高门限值T1越低,数据处理核的激活条件越宽松,网络设备的能效比越低,但多核处理器的报文响应速度会越快,因此,需要设置合适的预设高门限值T1。
在上述实施例的基础上,除了调整工作数据处理核的驱动接收队列和工作数据处理核的数量外,当工作数据处理核的负载较小时,为了降低多核处理器的功耗,还可以对负载较小的工作数据处理核进行休眠。
以下结合图8对处理工作数据处理核的休眠请求的一种可能的实现方式进行说明。
请参考图8,为本申请实施例提供的负载均衡方法的流程示意图四,如图8所示,该方法还可以包括:
S40:接收目标工作数据处理核发送的休眠请求,目标工作数据处理核为多核处理器中任一工作数据处理核。
本实施例中,目标工作数据处理核根据m轮待处理报文计算负载状态值Load,并对负载状态值和预设低门限值进行比较,若目标工作数据处理核的多个m轮得到的负载状态值Load均小于预设低门限阈值,则向控制核发送休眠请求。
示例的,变量LoadBusy用于统计数据处理核的负载状态值Load小于预设低门限值的次数,若负载状态值Load小于预设低门限阈值,则变量LoadBusy加1,若变量LoadBusy小于预设次数,则目标工作数据处理核继续进行报文处理;若变量LoadBusy大于或等于预设次数,则向控制核发送休眠请求。
需要说明的是,若负载状态值Load大于或等于预设低门限阈值,则将变量LoadBusy设置为0。
S50:根据工作数据处理核的数量,对休眠请求进行处理,向目标工作数据处理核发送休眠处理结果。
本实施例中,控制核接收到目标工作数据处理核的休眠请求后,根据工作数据处理核的数量,确定是否同意目标工作数据处理核的休眠请求,并将休眠处理结果发送给目标工作数据处理核。
在一种可能的实现方式中,上述S50根据工作数据处理核的数量,对休眠请求进行处理,向目标工作数据处理核发送休眠处理结果的过程,可以包括:
若工作数据处理核的数量为1,向目标工作数据处理核发送拒绝休眠消息,目标工作数据处理核根据拒绝休眠消息继续工作。
本实施例中,控制核根据变量LiveCoreCnt确定工作数据处理核的数量,若工作数据处理核的数量为1,即目标工作数据处理核为多核处理器中唯一工作的数据处理核,若该目标数据处理器休眠则多核处理器无法工作,因此,控制核需要拒绝该目标工作数据处理核的休眠请求,向目标工作数据处理核发送拒绝休眠消息,目标工作数据处理核接收到该拒绝休眠消息后,不进行休眠动作,继续处理报文。
在另一种可能的实现方式中,请参考图9,为本申请实施例提供的负载均衡方法的流程示意图五,如图9所示,上述S50根据工作数据处理核的数量,对休眠请求进行处理,向目标工作数据处理核发送休眠处理结果的过程,可以包括:
S51:若工作数据处理核的数量大于1,将目标工作数据处理核的驱动接收队列分配给工作数据处理核中负载状态值最小的工作数据处理核。
本实施例中,若控制核确定工作数据处理核的数量大于1,则确定目标工作数据处理核可以进行休眠,在控制目标工作数据处理核进入休眠状态之间,控制核需要将目标工作数据处理核的驱动接收队列分配给其他工作数据处理核,由其他工作数据处理核对目标工作数据处理核的驱动接收队列中的待处理报文进行处理,避免在目标工作数据处理核休眠后,目标工作数据处理核的驱动接收队列中的待处理报文无法被处理。在将目标工作数据处理核的驱动接收队列分配给其他工作数据处理核后,对记录工作数据处理核的数量的变量LiveCoreCnt减1。
在一种可能的实现方式中,为了保证负载均衡,控制核可以将目标工作数据处理核的驱动接收队列分配给工作数据处理核中负载状态值最小的工作数据处理核。
S52:向目标工作数据处理核发送同意休眠消息,目标工作数据处理核根据同意休眠消息进行休眠。
本实施例中,控制核将目标工作数据处理核的驱动接收队列分配给其他工作数据处理核后,向目标工作数据处理核发送同意休眠消息,目标工作数据处理核接收到同意休眠消息后,将本次获得的m轮待处理报文处理完成后,进入休眠状态。
在一些实施例中,在进入休眠状态之前,目标工作数据处理核在控制核的全局负载状态值记录表GlobalLoadTable中将目标工作数据处理核的GlobalLoadTable[core]设置为-1,指示该目标工作数据处理核已进入休眠状态,然后将变量LoadBusy设置为0。
上述实施例提供的负载均衡方法,根据工作数据处理核的数据,确定是否同意目标工作数据处理核进行休眠,在工作数据处理核的数量大于1时,将目标工作数据处理核休眠,在工作数据处理核的数量为1时,将目标工作数据处理核不休眠,优化多核处理器的负载状态,使网络设备的能效比达到最优状态。
以下结合图10对工作数据处理核获取待处理报文的过程进行整体说明。
请参考图10,为本申请实施例提供的负载均衡方法的流程框图三,如图10所示,工作数据处理核获取待处理报文的过程包括:
S301:控制核激活工作数据处理核,工作数据处理核进入循环起始点,循环起始点的index为0。
S302:工作数据处理核从本核的驱动接收队列中获取Cnt个待处理报文。
S303:将Cnt赋值到CntTable[index],CntTable[index]记载每轮获取的待处理报文的个数Cnt。
S304:将index加1。
S305:判断index是否大于或等于m,若为是,则跳转至S307;若为否,则跳转至S306。
S306:对Cnt个待处理报文进行业务处理。
S307:将index设置为0。
S308:对m个CntTable[index]进行计算,得到负载状态值Load。
S309:将负载状态值Load赋值到全局负载状态值记录表GlobalLoadTable中的GlobalLoadTable[core]。
S310:判断负载状态值是否小于预设低门限值T2,若为是,则跳转至S312;若为否,则跳转至S311。
S311:将变量LoadBusy设置为0。
S312:将变量LoadBusy加1。
S313:判断变量LoadBusy是否大于或等于预设次数Y,若为是,向控制核发送休眠请求,进入休眠流程;若为否,则跳转至S306。
以下结合图11对休眠流程进行整体说明。
请参考图11,为本申请实施例提供的负载均衡方法的流程框图四,如图11所示,休眠流程可以包括:
S401:控制核接收休眠请求。
S402:控制核判断LiveCoreCnt是否大于1,若为是,则跳转至S403;若为否,回复拒绝休眠,则跳转至S406。
S403:确定负载状态值最小的工作数据处理核。
S404:将目标工作数据处理核的所有驱动接收队列分配给负载状态值最小的工作数据处理核。
S405:将LiveCoreCnt减一,回复允许休眠。
S406:判断控制核的消息类型,若为允许休眠,跳转至S407;若为拒绝休眠,跳转至S306。
S407:对已获取的待处理报文进行处理。
S408:将全局负载状态值记录表GlobalLoadTable中的GlobalLoadTable[core]设置为-1。
S409:将变量LoadBusy设置为0。
S410:进入休眠状态。
需要说明的是,预设低门限值T2用于限制数据处理核进入休眠状态,预设低门限值T2越高,数据处理核越容易进入休眠状态,网络设备的能效比越高,但多核处理器的报文响应速度会越慢;预设低门限值T2越低,网络设备的能效比越低,但多核处理器的报文响应速度会越快,因此,需要设置合适的预设低门限值T2。
在上述实施例的基础上,本申请实施例还提供一种负载均衡装置,应用于具有多核处理器的网络设备的控制核,多核处理器包括:控制核和多个数据处理核。请参考图12,为本申请实施例提供的负载均衡装置的结构示意图,如图12所示,该装置包括:
负载状态值获取模块10,用于获取多个数据处理核中至少一个工作数据处理核的负载状态值,其中,多个数据处理核包括:工作数据处理核和休眠数据处理核,每个数据处理核具有至少一个驱动接收队列;
全局负载状态值计算模块20,用于根据负载状态值,计算多核处理器的全局负载状态值;
数据处理核调整模块30,用于根据负载状态值和全局负载状态值,对至少一个工作数据处理核所处理的驱动接收队列以及工作数据处理核的数量进行调整,以达到调整后的工作数据处理核的负载状态值均衡。
可选的,数据处理核调整模块30,包括:
驱动接收队列调整单元,用于在每个预设周期内,根据负载状态值,调整对应的工作数据处理核所处理的驱动接收队列;
数据处理核数量调整单元,用于在每个预设周期内,若工作数据处理核的数量小于多核处理器中所有数据处理核的数量,则根据全局负载状态值,对工作数据处理核的数量进行调整。
可选的,驱动接收队列调整单元,包括:
数据处理核选择子单元,用于在每个预设周期内,若工作数据处理核的数量大于或等于2,从工作数据处理核中确定第一工作数据处理核和第二工作数据处理核,其中,第一工作数据处理核为负载状态值大于或等于预设高门限值,且驱动接收队列大于1的工作数据处理核中负载状态值最大的工作数据处理核,第二工作数据处理核为负载状态值最小的工作数据处理核;
驱动接收队列调整子单元,用于控制第二工作数据处理核对第一工作数据处理核的一个驱动接收队列进行报文处理。
可选的,数据处理核数量调整单元,包括:
预设状态次数修改子单元,用于在每个预设周期内,若全局负载状态值大于预设高门限值,在前一预设周期的预设状态次数基础上增加预设状态次数;
数据处理核激活子单元,用于若增加后的预设状态次数大于或等于预设次数阈值,激活一个休眠数据处理核,其中,激活后的休眠数据处理核切换至工作状态。
可选的,该装置还包括:
休眠请求接收模块,用于接收目标工作数据处理核发送的休眠请求,目标工作数据处理核为多核处理器中任一工作数据处理核;
休眠请求处理模块,用于根据工作数据处理核的数量,对休眠请求进行处理,向目标工作数据处理核发送休眠处理结果。
可选的,休眠请求处理模块,具体用于若工作数据处理核的数量为1,向目标工作数据处理核发送拒绝休眠消息,目标工作数据处理核根据拒绝休眠消息继续工作。
可选的,休眠请求处理模块,包括:
驱动接收队列分配单元,用于若工作数据处理核的数量大于1,将目标工作数据处理核的驱动接收队列分配给工作数据处理核中负载状态值最小的工作数据处理核;
休眠消息发送单元,用于向目标工作数据处理核发送同意休眠消息,目标工作数据处理核根据同意休眠消息进行休眠。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
请参考图13,为本申请实施例提供的网络设备的示意图,如图13所示,该网络设备100包括:处理器101、存储介质102和总线,存储介质102存储有处理器101可执行的程序指令,当网络设备100运行时,处理器101与存储介质102之间通过总线通信,处理器101执行程序指令,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请实施例还提供一种计算机可读存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种负载均衡方法,其特征在于,应用于具有多核处理器的网络设备的控制核,所述多核处理器包括:所述控制核和多个数据处理核,所述方法包括:
获取所述多个数据处理核中至少一个工作数据处理核的负载状态值,其中,所述多个数据处理核包括:工作数据处理核和休眠数据处理核,每个数据处理核具有至少一个报文的驱动接收队列;
根据所述负载状态值,计算所述多核处理器的全局负载状态值;
根据所述负载状态值和所述全局负载状态值,对所述至少一个工作数据处理核所处理的驱动接收队列以及所述工作数据处理核的数量进行调整,以达到调整后的工作数据处理核的负载状态值均衡。
2.如权利要求1所述的方法,其特征在于,所述根据所述负载状态值和所述全局负载状态值,对所述至少一个工作数据处理核所处理的驱动接收队列以及所述工作数据处理核的数量进行调整,包括:
在每个预设周期内,根据所述负载状态值,调整对应的所述工作数据处理核所处理的驱动接收队列;
在所述每个预设周期内,若所述工作数据处理核的数量小于所述多核处理器中所有数据处理核的数量,则根据所述全局负载状态值,对所述工作数据处理核的数量进行调整。
3.如权利要求2所述的方法,其特征在于,所述在每个预设周期内,根据所述负载状态值,调整对应的所述工作数据处理核所处理的驱动接收队列,包括:
在所述每个预设周期内,若所述工作数据处理核的数量大于或等于2,从所述工作数据处理核中确定第一工作数据处理核和第二工作数据处理核,其中,所述第一工作数据处理核为所述负载状态值大于或等于预设高门限值,且所述驱动接收队列大于1的工作数据处理核中所述负载状态值最大的工作数据处理核,所述第二工作数据处理核为所述负载状态值最小的工作数据处理核;
控制所述第二工作数据处理核对所述第一工作数据处理核的一个驱动接收队列进行报文处理。
4.如权利要求2所述的方法,其特征在于,所述根据所述全局负载状态值,对所述工作数据处理核的数量进行调整,包括:
在所述每个预设周期内,若所述全局负载状态值大于预设高门限值,在前一预设周期的预设状态次数基础上增加所述预设状态次数;
若增加后的预设状态次数大于或等于预设次数阈值,激活一个休眠数据处理核,其中,激活后的休眠数据处理核切换至工作状态。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收目标工作数据处理核发送的休眠请求,所述目标工作数据处理核为所述多核处理器中任一工作数据处理核;
根据所述工作数据处理核的数量,对所述休眠请求进行处理,向所述目标工作数据处理核发送休眠处理结果。
6.如权利要求5所述的方法,其特征在于,所述根据所述工作数据处理核的数量,对所述休眠请求进行处理,向所述目标工作数据处理核发送休眠处理结果,包括:
若所述工作数据处理核的数量为1,向所述目标工作数据处理核发送拒绝休眠消息,所述目标工作数据处理核根据所述拒绝休眠消息继续工作。
7.如权利要求5所述的方法,其特征在于,所述根据所述工作数据处理核的数量,对所述休眠请求进行处理,向所述目标工作数据处理核发送休眠处理结果,包括:
若所述工作数据处理核的数量大于1,将所述目标工作数据处理核的驱动接收队列分配给所述工作数据处理核中所述负载状态值最小的工作数据处理核;
向所述目标工作数据处理核发送同意休眠消息,所述目标工作数据处理核根据所述同意休眠消息进行休眠。
8.一种负载均衡装置,其特征在于,应用于具有多核处理器的网络设备的控制核,所述多核处理器包括:所述控制核和多个数据处理核,所述装置包括:
负载状态值获取模块,用于获取所述多个数据处理核中至少一个工作数据处理核的负载状态值,其中,所述多个数据处理核包括:工作数据处理核和休眠数据处理核,每个数据处理核具有至少一个驱动接收队列;
全局负载状态值计算模块,用于根据所述负载状态值,计算所述多核处理器的全局负载状态值;
数据处理核调整模块,用于根据所述负载状态值和所述全局负载状态值,对所述至少一个工作数据处理核所处理的驱动接收队列以及所述工作数据处理核的数量进行调整,以达到调整后的工作数据处理核的负载状态值均衡。
9.一种网络设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当网络设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如权利要求1至7任一项所述的负载均衡方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一项所述的负载均衡方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211635023.0A CN116010085A (zh) | 2022-12-19 | 2022-12-19 | 负载均衡方法、装置、网络设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211635023.0A CN116010085A (zh) | 2022-12-19 | 2022-12-19 | 负载均衡方法、装置、网络设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010085A true CN116010085A (zh) | 2023-04-25 |
Family
ID=86022385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211635023.0A Pending CN116010085A (zh) | 2022-12-19 | 2022-12-19 | 负载均衡方法、装置、网络设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010085A (zh) |
-
2022
- 2022-12-19 CN CN202211635023.0A patent/CN116010085A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10772115B2 (en) | Resource scheduling method and server | |
Bhatia et al. | Htv dynamic load balancing algorithm for virtual machine instances in cloud | |
CN110830391A (zh) | 资源分配方法及装置、集群系统 | |
CN109542608B (zh) | 一种基于混合排队网络的云仿真任务调度方法 | |
JP2002278945A (ja) | マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム | |
EP2726958B1 (en) | Stochastic management of power consumption by computer systems | |
CN103502944A (zh) | 虚拟机内存调整方法和设备 | |
CN112783659A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN111176840B (zh) | 分布式任务的分配优化方法和装置、存储介质及电子装置 | |
CN111857992B (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
CN115629865B (zh) | 一种基于边缘计算的深度学习推理任务调度方法 | |
KR20130137539A (ko) | 데이터 컷-스루를 수행하기 위한 시스템 | |
CN113938435A (zh) | 数据传输方法、装置、电子设备、存储介质及程序产品 | |
CN115150340B (zh) | 一种动态调整消息队列权重的方法和装置 | |
CN105430028B (zh) | 服务调用方法、提供方法及节点 | |
US20130148670A1 (en) | Method of resource allocation and resource arbitrator | |
CN106998340A (zh) | 一种板卡资源的负载均衡方法及装置 | |
CN111314249B (zh) | 一种5g数据转发平面的避免数据包丢失的方法和服务器 | |
CN115378885B (zh) | 超融合架构下的虚拟机业务网络带宽管理方法及装置 | |
CN116010085A (zh) | 负载均衡方法、装置、网络设备及存储介质 | |
US20230117851A1 (en) | Method and Apparatus for Queue Scheduling | |
CN114827033B (zh) | 数据流控方法、装置、设备与计算机可读存储介质 | |
CN115766582A (zh) | 流量控制方法、装置和系统、介质和计算机设备 | |
CN110955522B (zh) | 一种协调性能隔离和数据恢复优化的资源管理方法及系统 | |
CN116848508A (zh) | 基于强化学习模型调度任务以供计算机执行 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |