CPU负载均衡的网卡流量二次分派方法、系统、设备及介质技术方案

技术编号:33532861 阅读:19 留言:0更新日期:2022-05-19 02:07
本申请涉及一种CPU负载均衡的网卡流量二次分派方法、系统、设备及介质,该方法包括:获取目标CPU核数和目标网卡的硬件收包队列个数,并判断目标CPU核数是否大于目标网卡的硬件收包队列个数;若是,则创建与目标CPU核数对应的若干软件收包队列,并将若干软件收包队列和所有目标CPU核进行一对一绑定;通过目标网卡实时接收目标数据包,获取目标数据包的目标五元组信息,并通过预设的五元组数据库查询匹配待接收的软件收包队列,若匹配成功,则将目标数据包分派至匹配成功的软件收包队列。本申请能够解决目标网卡的硬件收包队列数量不足的问题,使每个目标CPU核都能够承担负载,有助于实现CPU负载均衡的效果。于实现CPU负载均衡的效果。于实现CPU负载均衡的效果。

【技术实现步骤摘要】
CPU负载均衡的网卡流量二次分派方法、系统、设备及介质


[0001]本申请涉及计算机应用
,尤其是涉及一种CPU负载均衡的网卡流量二次分派方法、系统、设备及介质。

技术介绍

[0002]目前市面上主流网卡都是多队列网卡,多队列网卡有多个硬件收包队列,这样的网卡在接口收到数据包时,会使用自带的哈希算法把数据包均匀哈希到对应的硬件收包队列上。硬件收包队列与服务器的CPU进行绑定,通常是一个队列绑定一个CPU核,CPU核只处理和自己绑定的硬件收包队列上的数据包。
[0003]而网卡的硬件收包队列数在网卡生产的时候就已经确定了,这就可能存在硬件收包队列数比服务器CPU核数少的问题。按照一个队列绑定一个CPU核的原则,必然有CPU核是空闲的,无法做到CPU负载均衡,进而无法发挥CPU的最大处理能力。如果多个CPU核绑定同一个硬件收包队列,又会造成多核访问同一个队列的互斥问题。由于网卡是可以单独购买、安装的,很难保证网卡的收包队列数一定大于等于服务器的CPU核数,这在实际应用中是很常见的问题。

技术实现思路

[0004]有鉴于此,本申请提供一种CPU负载均衡的网卡流量二次分派方法、系统、设备及介质,用以解决网卡自带队列数量不足于服务器CPU核数,导致CPU负载不均衡的技术问题。
[0005]为了解决上述问题,第一方面,本申请提供一种CPU负载均衡的网卡流量二次分派方法,所述方法包括:
[0006]获取目标CPU核数和目标网卡的硬件收包队列个数;
[0007]判断目标CPU核数是否大于目标网卡的硬件收包队列个数,若是,则创建与目标CPU核数对应的若干软件收包队列,并将若干软件收包队列和所有目标CPU核进行一对一绑定;
[0008]通过目标网卡实时接收目标数据包,获取目标数据包的目标五元组信息,并通过预设的五元组数据库查询匹配待接收的软件收包队列,若匹配成功,则将目标数据包分派至匹配成功的软件收包队列。
[0009]可选的,所述五元组数据库采用哈希表,并存储有若干流量会话的若干五元组记录,每个所述五元组记录包括历史数据包的五元组信息和对应映射的历史软件收包队列编号,以及最新数据存储时间。
[0010]可选的,所述创建的若干软件收包队列按照从小到大顺序编号;则通过预设的五元组数据库查询匹配待接收的软件收包队列之后,所述方法还包括:
[0011]若匹配失败,则获取上一个相邻数据包所对应接收的软件收包队列编号k,并判断编号k是否为软件收包队列最大编号,若是,则将目标数据包分派至最小编号的软件收包队列;若否,则将目标数据包分派至编号为k+1的软件收包队列,其中k大于等于0,且为整数。
[0012]可选的,所述五元组数据库采用哈希表;在所述将目标数据包分派至最小编号的软件收包队列或所述将目标数据包分派至编号为k+1的软件收包队列之时,所述方法还包括:
[0013]利用哈希算法,将目标数据包的目标五元组信息和对应确定的软件收包队列编号作为新增的五元组记录存储于所述哈希表,并记录新增五元组记录的当前数据存储时间。
[0014]可选的,所述方法还包括:
[0015]利用预设的秒级定时器,遍历所述五元组数据库中的每个五元组记录,并判断每个五元组记录的最新数据存储时间与当前遍历时间的间隔是否超出预设时间间隔阈值,若是,则将超出时间间隔阈值的五元组记录删除。
[0016]可选的,所述判断所述目标CPU核数是否小于目标网卡的硬件收包队列个数,若所述目标CPU核数小于或等于目标网卡的硬件收包队列个数,则激活与所述目标CPU核数对应的若干硬件收包队列,并将激活的若干硬件收包队列和所有目标CPU核进行一对一绑定。
[0017]可选的,所述将激活的所述若干硬件收包队列和所有目标CPU核进行一对一绑定之后,所述方法还包括:
[0018]若绑定后当前硬件收包队列接收到实时数据包,则与当前硬件收包队列对应绑定的目标CPU核读取实时数据包。
[0019]第二方面,本申请提供一种CPU负载均衡的网卡流量二次分派系统,所述系统包括:
[0020]获取数据模块,用于获取目标CPU核数和目标网卡的硬件收包队列个数,并判断所述目标CPU核数是否大于目标网卡的硬件收包队列个数;
[0021]判断模块,用于判断所述目标CPU核数是否大于目标网卡的硬件收包队列个数,若是,则创建与所述目标CPU核数对应的若干软件收包队列,并将所述若干软件收包队列和所有目标CPU核进行一对一绑定;
[0022]分派模块,用于通过目标网卡实时接收目标数据包,并获取所述目标数据包的目标五元组信息,并通过预设的五元组数据库查询匹配待接收的软件收包队列,若匹配成功,则将目标数据包分派至所述匹配成功的软件收包队列。
[0023]第三方面,本申请提供的一种计算机设备,采用如下的技术方案:
[0024]一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述CPU负载均衡的网卡流量二次分派方法的步骤。
[0025]第四方面,本申请提供的一种计算机可读存储介质,采用如下的技术方案:
[0026]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述CPU负载均衡的网卡流量二次分派方法的步骤。
[0027]采用上述实施例的有益效果是:获取目标CPU核数和目标网卡的硬件收包队列个数,若目标CPU核数大于目标网卡的硬件收包队列个数,则需要创建与目标CPU核数对应的若干软件收包队列,并将所述若干软件收包队列和所有目标CPU核进行一对一绑定,可以解决目标网卡的硬件收包队列数量不足的问题,从而满足每个目标CPU核都能够绑定队列,不至于空载;进一步地,通过目标网卡实时接收目标数据包,然后对接收到的目标数据包进行二次分派,首先获取目标数据包的目标五元组信息,并通过预设的五元组数据库查询匹配
待接收的软件收包队列,若匹配成功,则将目标数据包分派至所述匹配成功的软件收包队列,从而完成网卡数据流量的二次分派,同时每个目标CPU核都可以承担负载,实现CPU负载均衡的效果。
附图说明
[0028]图1为本申请提供的CPU负载均衡的网卡流量二次分派方法一实施例的方法流程图;
[0029]图2为本申请提供的CPU负载均衡的网卡流量二次分派系统一实施例的原理框图;
[0030]图3为本申请提供的计算机设备一实施例的原理框图。
具体实施方式
[0031]下面结合附图来具体描述本申请的优选实施例,其中,附图构成本申请一部分,并与本申请的实施例一起用于阐释本申请的原理,并非用于限定本申请的范围。
[0032]在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0033]在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CPU负载均衡的网卡流量二次分派方法,其特征在于,所述方法包括:获取目标CPU核数和目标网卡的硬件收包队列个数;判断所述目标CPU核数是否大于目标网卡的硬件收包队列个数,若是,则创建与所述目标CPU核数对应的若干软件收包队列,并将所述若干软件收包队列和所有目标CPU核进行一对一绑定;通过目标网卡实时接收目标数据包,获取所述目标数据包的目标五元组信息,并通过预设的五元组数据库查询匹配待接收的软件收包队列,若匹配成功,则将目标数据包分派至所述匹配成功的软件收包队列。2.根据权利要求1所述的CPU负载均衡的网卡流量二次分派方法,其特征在于,所述五元组数据库采用哈希表,并存储有若干流量会话的五元组记录,每个所述五元组记录包括历史数据包的五元组信息和对应映射的历史软件收包队列编号,以及最新数据存储时间。3.根据权利要求1所述的CPU负载均衡的网卡流量二次分派方法,其特征在于,所述创建的若干软件收包队列按照从小到大顺序编号;则通过预设的五元组数据库查询匹配待接收的软件收包队列之后,所述方法还包括:若匹配失败,则获取上一个相邻数据包所对应接收的软件收包队列编号k,并判断编号k是否为软件收包队列最大编号,若是,则将目标数据包分派至最小编号的软件收包队列;若否,则将目标数据包分派至编号为k+1的软件收包队列,其中k大于等于0,且为整数。4.根据权利要求3所述的CPU负载均衡的网卡流量二次分派方法,其特征在于,所述五元组数据库采用哈希表;在所述将目标数据包分派至最小编号的软件收包队列或所述将目标数据包分派至编号为k+1的软件收包队列之时,所述方法还包括:利用哈希算法,将目标数据包的目标五元组信息和对应确定的软件收包队列编号作为新增的五元组记录存储于所述哈希表,并记录新增五元组记录的当前数据存储时间。5.根据权利要求2或4所述的CPU负载均衡的网卡流量二次分派方法,其特征在于,所述方法还包括:利用预设的秒级定时器,遍历所述五元组数据库中的每个五元组记录,并判断每个五元...

【专利技术属性】
技术研发人员:郑文军
申请(专利权)人:武汉思普崚技术有限公司
类型:发明
国别省市:

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

1