一种网络负载均衡方法及系统技术方案

技术编号:14890851 阅读:95 留言:0更新日期:2017-03-28 23:26
本发明专利技术提供了一种网络负载均衡方法,对于任意一个用户态cpu,确定该用户态cpu在其当前的轮询周期内,从每一个队列中接收的报文数量;依据从每一个队列中接收的报文数量,对每一个队列在下一个轮询周期内的权值进行计算;依据计算的各个权重值,为每一个队列在下一轮询周期内分配对应的轮询时间。本发明专利技术提供的网络负载均衡方法,在一个轮询周期内,对每个队列的轮询时间,依据从该队列中接收到的报文数量进行确定,针对接收到的不同的报文数量,为相应队列分配不同的轮询时间,实现了用户态cpu从各个队列接收数据时的网络负载均衡。

【技术实现步骤摘要】

本专利技术涉及异构平台
,特别涉及一种网络负载均衡方法及系统
技术介绍
随着科技的发展,多核异构平台的应用越来越广泛。在多核异构平台中设置有多个cpu,这些cup分为用户态cpu和内核态cpu。其中,内核态cpu具有较高的访问权限,可以访问内存中所有的数据。用户态cpu主要用于对数据的处理及快速转发。现有多核异构平台中,处于用户态的cpu采用轮询的方式分别从各个数据报文队列中接收报文数据,从每个数据报文队列中接收报文的时间相同。而每个数据报文队列对于数据报文的传输量存在较大差异,因此,会出现从某一数据报文队列接收数据时,数据未接收完成,便轮询到下一数据报文队列的情况,导致了对各个数据报文队列的负载不均衡。
技术实现思路
本专利技术所要解决的技术问题是提供一种网络负载均衡方法,为各个数据报文队列分配相应的轮询时间,以使用户态cpu对每一个数据报文队列达到网络负载均衡。本专利技术还提供一种网络负载均衡设备,用以保证上述方法在实际中的实现及应用。一种网络负载均衡方法,所述方法应用于异构平台,所述异构平台由多个非统一内存访问numa架构组成;每一个所述numa架构中设置有多个用户态cpu和多个内核态cpu,所述用户态cpu和所述内核态cpu一一对应,组成多个核间队列;每一个所述用户态cpu,同与其存在上下文关系的其它用户态cpu组成共享队列;同与其所在numa架构中的各个网卡分别组成接收队列;每一个所述用户态cpu通过其所在的各个队列接收数据报文;所述方法包括:对于任意一个用户态cpu,确定该用户态cpu在其对应的当前轮询周期内,从每一个队列中接收的报文数量;依据各个所述报文数量,按预设的计算规则,对每一个队列在下一轮询周期内所对应的权重值进行计算;依据计算的各个权重值,为每一个队列在下一轮询周期内分配对应的轮询时间,使得该用户态cpu在各个队列对应的轮询时间内,从各个队列中接收相应数量的报文,进而实现对每一个队列的网络负载均衡。上述的方法,优选的,所述确定该用户态cpu在其对应的当前轮询周期内,从每一个队列接收的报文数量,包括:当该用户态cpu进入当前轮询周期时,实时记录每一个队列接收到的每一条报文数量;在所述当前轮询周期结束时,对记录的每一条报文数量进行累加,获得每一个队列在当前轮询周期内接收的总的报文数量。上述的方法,优选的,所述依据各个所述报文数量,按预设的计算规则,对每一个队列在下一轮询周期内所对应的权重值进行计算,包括:对于该用户态cpu所在的任意一个队列,确定该队列在当前轮询周期内接收的报文数量所在的数据范围;依据所述数据范围,结合该队列在当前轮询周期中对应权重值所在的预设权重区间中的位置,对该队列在下一轮询周期中对应的权重值进行计算;所述预设权重区间根据每一个队列的队列类型进行预设。上述的方法,优选的,所述依据所述数据范围,结合该队列在当前轮询周期中对应权重值所在的预设权重区间中的位置,对该队列在下一轮询周期中对应的权重值进行计算,包括:判断该队列在当前轮询周期中对应权重值是否达到所述预设权重区间中的设定值;当达到所述设定值,且所述数据范围满足相应的范围条件时,将该队列在当前轮询周期中的权重值作为该队列在下一轮询周期中的权重值。上述的方法,优选的,依据计算的各个权重值,为每一个队列在下一轮询周期内分配对应的轮询时间包括:确定每一个队列所对应的权重值在总的权重值中所占的比例;按所述比例为所述队列分配对应的轮询时间。一种网络负载均衡系统,所述系统应用于异构平台,所述异构平台由多个非统一内存访问numa架构组成;每一个所述numa架构中设置有多个用户态cpu和多个内核态cpu,所述用户态cpu和所述内核态cpu一一对应,组成多个核间队列;每一个所述用户态cpu,同与其存在上下文关系的其它用户态cpu组成共享队列;同与其所在numa架构中的各个网卡分别组成接收队列;每一个所述用户态cpu通过其所在的各个队列接收数据报文;所述系统包括:确定单元,用于对于任意一个用户态cpu,确定该用户态cpu在其对应的当前轮询周期内,从每一个队列中接收的报文数量;计算单元,用于依据各个所述报文数量,按预设的计算规则,对每一个队列在下一轮询周期内所对应的权重值进行计算;分配单元,用于依据计算的各个权重值,为每一个队列在下一轮询周期内分配对应的轮询时间,使得该用户态cpu在各个队列对应的轮询时间内,从各个队列中接收相应数量的报文,进而实现对每一个队列的网络负载均衡。上述的系统,优选的,所述确定单元包括:记录子单元,用于当该用户态cpu进入当前轮询周期时,实时记录每一个队列接收到的每一条报文数量;累加子单元,用于在所述当前轮询周期结束时,对记录的每一条报文数量进行累加,获得每一个队列在当前轮询周期内接收的总的报文数量。上述的系统,优选的,所述计算单元包括:第一确定子单元,用于对于该用户态cpu所在的任意一个队列,确定该队列在当前轮询周期内接收的报文数量所在的数据范围;计算子单元,用于依据所述数据范围,结合该队列在当前轮询周期中对应权重值所在的预设权重区间中的位置,对该队列在下一轮询周期中对应的权重值进行计算;所述预设权重区间根据每一个队列的队列类型进行预设。上述的系统,优选的,所述计算子单元包括:判断模块,用于判断该队列在当前轮询周期中对应权重值是否达到所述预设权重区间中的设定值。上述的系统,优选的,所述分配单元包括:第二确定子单元,用于确定每一个队列所对应的权重值在总的权重值中所占的比例;分配子单元,用于按所述比例为所述队列分配对应的轮询时间。与现有技术相比,本专利技术包括以下优点:本专利技术提供了一种网络负载均衡方法,对于任意一个用户态cpu,确定该用户态cpu在其当前的轮询周期内,从每一个队列中接收的报文数量;依据从每一个队列中接收的报文数量,对每一个队列在下一个轮询周期内的的权值进行计算;依据计算的各个权重值,为每一个队列在下一轮询周期内分配对应的轮询时间。本专利技术提供的网络负载均衡方法,在一个轮询周期内,对每个队列的轮询时间,依据从该队列中接收到的报文数量进行确定,针对接收到的不同的报文数量,为相应队列分配不同的轮询时间,实现了用户态cpu从各个队列接收数据时的网络负载均衡。同时,本专利技术提供的负载均衡方法,所应用的异构平台,由多个非统一内存访问numa架构组成;每一个所述numa架构中设置有多个用户态cpu和多个内核态cpu,所述用户态cpu和所述内核态cpu一一对应,组成多个核间队列;每一个所述用户态cpu,同与其存在上下文关系的其它用户态cpu组成共享队列;同与其所在numa架构中的各个网卡分别组成接收队列;每一个所述用户态cpu通过其所在的各个队列接收数据报文。该异构平台中,用户态cpu与内核态cpu之间一一对应设置,在数据处理过程中,无资源竞争,提升了数据处理的速率。当然,实施本专利技术的任一产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种网络负载均衡方本文档来自技高网...
一种网络负载均衡方法及系统

【技术保护点】
一种网络负载均衡方法,其特征在于,所述方法应用于异构平台,所述异构平台由多个非统一内存访问numa架构组成;每一个所述numa架构中设置有多个用户态cpu和多个内核态cpu,所述用户态cpu和所述内核态cpu一一对应,组成多个核间队列;每一个所述用户态cpu,同与其存在上下文关系的其它用户态cpu组成共享队列;同与其所在numa架构中的各个网卡分别组成接收队列;每一个所述用户态cpu通过其所在的各个队列接收数据报文;所述方法包括:对于任意一个用户态cpu,确定该用户态cpu在其对应的当前轮询周期内,从每一个队列中接收的报文数量;依据各个所述报文数量,按预设的计算规则,对每一个队列在下一轮询周期内所对应的权重值进行计算;依据计算的各个权重值,为每一个队列在下一轮询周期内分配对应的轮询时间,使得该用户态cpu在各个队列对应的轮询时间内,从各个队列中接收相应数量的报文,进而实现对每一个队列的网络负载均衡。

【技术特征摘要】
1.一种网络负载均衡方法,其特征在于,所述方法应用于异构平台,所述异构平台由多个非统一内存访问numa架构组成;每一个所述numa架构中设置有多个用户态cpu和多个内核态cpu,所述用户态cpu和所述内核态cpu一一对应,组成多个核间队列;每一个所述用户态cpu,同与其存在上下文关系的其它用户态cpu组成共享队列;同与其所在numa架构中的各个网卡分别组成接收队列;每一个所述用户态cpu通过其所在的各个队列接收数据报文;所述方法包括:对于任意一个用户态cpu,确定该用户态cpu在其对应的当前轮询周期内,从每一个队列中接收的报文数量;依据各个所述报文数量,按预设的计算规则,对每一个队列在下一轮询周期内所对应的权重值进行计算;依据计算的各个权重值,为每一个队列在下一轮询周期内分配对应的轮询时间,使得该用户态cpu在各个队列对应的轮询时间内,从各个队列中接收相应数量的报文,进而实现对每一个队列的网络负载均衡。2.根据权利要求1所述的方法,其特征在于,所述确定该用户态cpu在其对应的当前轮询周期内,从每一个队列接收的报文数量,包括:当该用户态cpu进入当前轮询周期时,实时记录每一个队列接收到的每一条报文数量;在所述当前轮询周期结束时,对记录的每一条报文数量进行累加,获得每一个队列在当前轮询周期内接收的总的报文数量。3.根据权利要求1或2所述的方法,其特征在于,所述依据各个所述报文数量,按预设的计算规则,对每一个队列在下一轮询周期内所对应的权重值进行计算,包括:对于该用户态cpu所在的任意一个队列,确定该队列在当前轮询周期内接收的报文数量所在的数据范围;依据所述数据范围,结合该队列在当前轮询周期中对应权重值所在的预设权重区间中的位置,对该队列在下一轮询周期中对应的权重值进行计算;所述预设权重区间根据每一个队列的队列类型进行预设。4.根据权利要求3所述的方法,其特征在于,所述依据所述数据范围,结合该队列在当前轮询周期中对应权重值所在的预设权重区间中的位置,对该队列在下一轮询周期中对应的权重值进行计算,包括:判断该队列在当前轮询周期中对应权重值是否达到所述预设权重区间中的设定值;当达到所述设定值,且所述数据范围满足相应的范围条件时,将该队列在当前轮询周期中的权重值作为该队列在下一轮询周期中的权重值。5.根据权利要求1所述的方法,其特征在于,依据计算的各个权重值,为每...

【专利技术属性】
技术研发人员:刘健男党丽娜
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

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

1