一种多核负载均衡协同处理方法、装置及存储介质制造方法及图纸

技术编号:32186185 阅读:22 留言:0更新日期:2022-02-08 15:50
本发明专利技术公开了一种多核负载均衡协同处理方法、装置及存储介质,所述方法包括接收数据包,对数据包头的四元组加上序列号进行两次不同的HASH算法的处理,获得HASH计算结果;根据所述HASH计算结果对预先建立的第一HASH表、第二HASH表进行查询,获取查询结果,通过网卡多队列技术的支持并利用中断方式把不同的网卡队列分配到多核处理器的不同的CPU核上,因此第一HASH表、第二HASH表也就是等同于存储一个连接与CPU不同核之间的映射关系;本发明专利技术使用静态与动态相结合的多重HASH负载均衡算法将后续接收的数据报文分配到其他负载较轻的CPU上,能够使得各个CPU的使用率相对平均,使得处理器更好地发挥性能,一定程度上提高了多核处理器的处理效率。理器的处理效率。理器的处理效率。

【技术实现步骤摘要】
一种多核负载均衡协同处理方法、装置及存储介质


[0001]本专利技术涉及一种多核负载均衡协同处理方法、装置及存储介质,属于多核处理器


技术介绍

[0002]RSS是通过网卡的硬件特性支持实现的多队列,将不同的连接流分配到多核处理器的不同核上,相同的流会在同一个核心上,能够减少数据报文的顺序性和处理器的并行冲突。具体来说RSS是一种能够将收到的同一个流的IP数据包存储到相同的网卡收包队列当中,它能够通过每个CPU核允许独占访问网卡队列的方式对接收的数据包进行可伸缩的处理,将数据包分发到对应的CPU核中。
[0003]如图1所示,网卡对接收到的报文进行解析,获取IP地址、协议和端口五元组信息,通过配置的HASH函数根据五元组信息计算出HASH值,也可以根据二、三或四元组进行计算;然后取HASH值的低几位作为RETA(redirection table)的索引,根据RETA中存储的值分发到相同的队列,然后进一步发送到与队列绑定的CPU上;因此RSS可以将同一连接的数据流分发给同一个CPU核处理,从而达到分流效果。
[0004]随着互联网技术的不断发展,网络中的流量规模日益增大,传输速度也在不断提高,流量的负载均衡问题成为了限制诸多网络服务的瓶颈。处理数据包时,CPU使用率较高。在图1中,虚线路径表示发送和接收处理的处理路径,因此处理并不总是在提供最佳性能的CPU上发生,仅可以通过连续中断在同一个CPU上处理连接。
[0005]通过研究多队列网卡技术、研究多CPU多核高效分发报文技术、优化哈希算法,使业务数据包更均匀的分布在多个网卡队列中,进而多核负载更均衡,充分利用CPU多核处理能力,降低CPU使用率。RSS这项加速技术只在网络数据接收时有效。具备RSS能力的网卡,有多个接收队列,网卡可以用不同的接收队列来接收不同的网络流,再将这些队列分配到不同的CPU核上进行处理,充分利用多核处理器的能力,将网络数据接收的负荷分散开,从而提高网络传输的效率。因此可以通过实现RSS技术来降低CPU使用率。
[0006]RSS技术进行报文分流时,当发送的数据包到达时,根据其五元组信息,也可以根据二、三或四元组进行计算,通过HASH函数计算出一个HASH值。然后,根据计算出的HASH值从设置的CPU核中选择一个CPU核处理数据。数据包的四元组相同,因此根据四元组计算出的HASH值也相同。所以,即便接收端是多核平台,仍然只会根据HASH值将数据包交给其中一个CPU核处理。因此,当同一个流中数据包激增,若依然采用RSS的HASH函数处理该流的数据包,就会使单个CPU处理能力成为性能瓶颈,进而浪费多核平台多核优势。
[0007]综上可得,当网络流量出现比较单一极端的情况下,仅仅利用此静态的哈希技术是无法满足对数据报文处理的需求的,也就是将出现单核负载过重的情形,从而降低CPU的处理效率。

技术实现思路

[0008]本专利技术的目的在于克服现有技术中的不足,提供一种多核负载均衡协同处理方法、装置及存储介质,通过结合动态调整的方法来更好地解决在多核处理器中流量分配不均衡的问题。
[0009]为达到上述目的,本专利技术是采用下述技术方案实现的:
[0010]第一方面,本专利技术提供了一种多核负载均衡协同处理方法,包括:
[0011]通过研究数据包结构,发现同一连接中TCP报文的序列号不同且递增,因此,选择序列号作为分流的输入参数之一;
[0012]接收数据包,对数据包头的四元组加上序列号进行两次不同的HASH算法的处理,获得HASH计算结果;
[0013]根据所述HASH计算结果对预先建立的第一HASH表、第二HASH表进行查询,获取查询结果,其中,所述第一HASH表、第二HASH表用于存储一个连接与CPU不同核之间的映射关系;
[0014]根据查询结果将数据包送到相应的CPU进行处理。
[0015]进一步的,根据查询结果将数据包送到相应的CPU进行处理,包括:
[0016]若在查询过程中查到映射关系,将数据包送到相应CPU核心进行处理;
[0017]若在查询过程中没有查到映射关系,在负载正常的情况下,对收到的新连接数据包进行HASH算法的处理,将映射关系存在第一HASH表中并将数据包送到相应CPU进行处理;若系统出现负载不均导致某些CPU核心过载的情况下,先进行CPU与收包队列匹配的动态调整,动态调整的规则采用了收包队列与CPU配对的思想,首先进行CPU使用率的计算,按照负载量由小到大进行排序,按负载量的排序,将原有的收包队列与CPU的匹配顺序进行一个倒置,这样原收包队列的CPU利用率最大的与负载量最小的CPU进行配对,然后按照此排序依次将每一个CPU与收包队列进行匹配,最后剔除掉CPU负载过重的核,将收到的新连接数据包再一次进行HASH算法的处理,将映射关系存在第二HASH表中,并将数据包送到相应CPU进行处理。
[0018]进一步的,所述HASH算法中使用的HASH函数采用序列号、源IP和目的IP、源端口和目的端口共同异或的方法,包括:
[0019]将序列号、源IP地址目标和目的IP地址分别分割成四个8位的字节段,将源端口和目的端口分别分割成二个8位的字节段;
[0020]对分割的字段进行平方运算并截取结果的前8位;
[0021]利用截取的十六个8位的字段通过异或操作进行哈希值的计算。
[0022]第二方面,本专利技术提供一种多核负载均衡协同处理装置,包括:
[0023]接收处理单元,用于接收数据包,对数据包头的四元组加上序列号进行两次不同的HASH算法的处理,获得HASH计算结果;
[0024]查询单元,用于根据所述HASH计算结果对预先建立的第一HASH表、第二HASH表进行查询,获取查询结果,其中,所述第一HASH表、第二HASH表用于存储一个连接与CPU不同核之间的映射关系;
[0025]判断处理单元,用于根据查询结果将数据包送到相应的CPU进行处理。
[0026]进一步的,所述判断处理单元,包括第一处理单元和第二处理单元,
[0027]所述第一处理单元用于在查询过程中查到映射关系,将数据包送到相应CPU核心进行处理;
[0028]所述第二处理单元用于在查询过程中没有查到映射关系时,将数据包送到相应CPU核心进行处理。
[0029]进一步的,所述第二处理单元包括负载正常处理单元和负载非正常处理单元,
[0030]所述负载正常处理单元用于在负载正常的情况下,对收到的新连接数据包进行HASH算法的处理,将映射关系存在第一HASH表中并将数据包送到相应CPU进行处理;
[0031]所述负载非正常处理单元用于在系统出现负载不均导致某些CPU核心过载的情况下,先进行CPU与收包队列匹配的动态调整,然后剔除CPU负载过重的核,将收到的新连接数据包再一次进行HASH算法的处理,将映射关系存在第二HASH表中,并将数据包送到相应CPU进行处理。
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多核负载均衡协同处理方法,其特征在于,包括:接收数据包,对数据包头的四元组加上序列号进行两次不同的HASH算法的处理,获得HASH计算结果;根据所述HASH计算结果对预先建立的第一HASH表、第二HASH表进行查询,获取查询结果,其中,所述第一HASH表、第二HASH表用于存储一个连接与CPU不同核之间的映射关系;根据查询结果将数据包送到相应的CPU进行处理。2.根据权利要求1所述的多核负载均衡协同处理方法,其特征在于:根据查询结果将数据包送到相应的CPU进行处理,包括:若在查询过程中查到映射关系,将数据包送到相应CPU核心进行处理;若在查询过程中没有查到映射关系,在负载正常的情况下,对收到的新连接数据包进行HASH算法的处理,将映射关系存在第一HASH表中并将数据包送到相应CPU进行处理;若系统出现负载不均导致某些CPU核心过载的情况下,先进行CPU与收包队列匹配的动态调整,动态调整的规则采用了收包队列与CPU配对的思想,首先进行CPU使用率的计算,按照负载量由小到大进行排序,按负载量的排序,将原有的收包队列与CPU的匹配顺序进行一个倒置,这样原收包队列的CPU利用率最大的与负载量最小的CPU进行配对,然后按照此排序依次将每一个CPU与收包队列进行匹配,最后剔除掉CPU负载过重的核,将收到的新连接数据包再一次进行HASH算法的处理,将映射关系存在第二HASH表中,并将数据包送到相应CPU进行处理。3.根据权利要求1所述的多核负载均衡协同处理方法,其特征在于:所述HASH算法中使用的HASH函数采用序列号、源IP和目的IP、源端口和目的端口共同异或的方法,包括:将序列号、源IP地址目标和目的IP地址分别分割成四个8位的字节段,将源端口和目的端口分别分割成二个8位的字节段;对分割的字段进行平方运算并截取结果的前8位;利用截取的十六个8位的字段通过异或操作进行哈希值的计算。4.一种多核负载均衡协同处理装置,其特征在于,包括:接收处理单元,用于接收数据包,对数据包头的四元组加上序列号进行两次不同的HASH算法的处理,获得HASH计算结果;查询单元,用于根据所述HASH计算结果对预先建立的第一HAS...

【专利技术属性】
技术研发人员:杨泽宇王丹计士禹刘锦利马骁李勃高明慧马力张志军徐萌张广文修增哲刘壮佟文强赵梓辰刘新龙姜岩张嵩王会达
申请(专利权)人:南瑞集团有限公司
类型:发明
国别省市:

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

1