一种多核CPU的负载均衡方法及装置制造方法及图纸

技术编号:15441632 阅读:118 留言:0更新日期:2017-05-26 06:44
本文公开了一种多核CPU的负载均衡方法及装置,应用于通信设备,通信设备包括硬件分流模块、接收端口以及至少两个CPU核,其中,每个接收端口配置为与至少两个CPU核绑定,与同一个接收端口绑定的CPU核配置为分别绑定接收端口的一个或多个接收队列;上述负载均衡方法包括:针对每个接收端口,硬件分流模块根据分流规则将报文分类,并根据接收端口的接收队列与报文类型的分配关系,将报文转发至与所属的报文类型存在分配关系的接收队列;接收端口接收到报文后,产生硬件中断,并将硬件中断同时上报给与接收端口绑定的所有CPU核;接收到硬件中断的每个CPU核在软中断处理过程中,从与本CPU核绑定的接收队列读取报文。

Load balancing method and device for multi-core CPU

This paper discloses a load balancing method and device of a multi-core CPU, used in communications equipment, communication equipment including hardware shunt module, receiving port and at least two nuclear CPU, among them, each configured to receive port and at least two CPU nuclear binding, with a receive port bound CPU core configuration respectively. Receive port binding one or more of the receiving queue; including the load balancing method for each receiver port, hardware module according to the rules of the shunt shunt packet classification, and according to the distribution of the receiving queue and message type of the receive port relationship, the message is forwarded to the receiving queue allocation relationship with the message type; the receive port receives the message, from the hardware interrupt, and hardware interrupt reported at the same time to all CPU nuclear receiving port binding; receiving hardware interrupt Each CPU kernel reads packets from a receive queue bound to the CPU kernel during soft interrupt processing.

【技术实现步骤摘要】
一种多核CPU的负载均衡方法及装置
本专利技术涉及计算机通信技术,尤其涉及一种多核CPU(CentralProcessingUnit,中央处理器)的负载均衡方法及装置。
技术介绍
对于路由器、网关等设备,报文的转发通过中央处理器(CPU,CentralProcessingUnit)完成,因此,这类设备的报文转发性能受CPU的处理能力制约,而对于多核CPU,如何发挥多核效率,均衡多核之间的负载,是提升性能的关键。如图1所示,Linux操作系统的内核协议栈报文的处理流程包括:当一个CPU核(比如CPU0、CPU1)收到接口产生的硬件中断后,先关闭本CPU核的接口硬件中断,然后触发本CPU核的软中断,然后轮询处理报文。其中,从收到硬件中断起,至发包完成,都由同一个CPU核处理。目前许多多核CPU,硬件中断都是接口级的(即一个硬件中断号绑定一个接口,中断信号同一时刻送至一个CPU核),即同一时刻,只有一个CPU核处理报文。这就造成了多核CPU不能完整发挥多核效率。针对上述问题,目前常用的解决方案包括:方案一、一个CPU核专用于处理报文转发,其他CPU核处理其他应用;方案二、按照接口,将不同接口绑定不同的CPU核,这样每个CPU核都能处理报文又不产生冲突;方案三、一个CPU核在收到中断后,指定其他CPU核处理报文。虽然上述三个方案都能在一定程度上平衡多核的负载,但是,对于方案一,由于路由器等设备的主要负载为报文转发,其余应用占用的CPU利用率较低,因此,方案一相较于单核CPU提升的性能有限;对于方案二,虽然每个CPU核都能处理报文转发,但由于每个接口接收的报文流量不同(比如,下行流量一般远大于上行流量),因此,方案二也不能完全平衡多核之间的负载;对于方案三,需要进行软件分流,会产生CPU额外开销,而且在进行数据流保序时,会存在更大的CPU额外开销。
技术实现思路
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。本专利技术实施例提供一种多核CPU的负载均衡方法及装置,能够有效均衡多核负载,提高设备的转发性能,而且不引入CPU额外开销即能实现数据流保序功能。本专利技术实施例提供一种多核CPU的负载均衡方法,应用于通信设备,所述通信设备包括硬件分流模块、接收端口以及至少两个CPU核,其中,每个接收端口配置为与至少两个CPU核绑定,与同一个接收端口绑定的CPU核配置为分别绑定所述接收端口的一个或多个接收队列;所述负载均衡方法包括:针对每个接收端口,硬件分流模块根据分流规则将报文分类,并根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列;所述接收端口接收到所述报文后,产生硬件中断,并将所述硬件中断同时上报给与所述接收端口绑定的所有CPU核;接收到所述硬件中断的每个CPU核在软中断处理过程中,从与本CPU核绑定的接收队列读取报文。在示例性实施方式中,所述硬件分流模块可以至少包括CPU芯片的硬件分类单元以及DMA单元;所述硬件分流模块根据分流规则将报文分类,并根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列,包括:所述硬件分类单元根据分流规则将报文分类;所述DMA单元根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列。在示例性实施方式中,所述硬件分流模块可以包括外置交换芯片、CPU芯片的硬件分类单元以及DMA单元;所述硬件分流模块根据分流规则将报文分类,并根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列,包括:所述外置交换芯片根据分流规则将报文分类,并根据接收端口的接收队列与报文类型的分配关系,修改所述报文的优先级,并将所述报文发送给所述硬件分类单元;所述硬件分类单元匹配所述报文的优先级;所述DMA单元将所述报文转发至对应所述优先级的接收队列。在示例性实施方式中,所述分流规则可以包括:匹配报文为以下任一大类:管理类报文、非管理类IP报文、非管理类非IP报文;在所述报文属于非管理类IP报文时,按照所述报文的IP地址,细分所述报文所属的报文类型。在示例性实施方式中,所述负载均衡方法还可以包括:针对所述接收端口,所述接收到所述硬件中断的每个CPU核在报文处理过程中,记录不同报文类型的数据流的流量;满足预定条件的CPU核根据预定时长内与所述接收端口绑定的所有CPU核记录的不同报文类型的数据流的流量,更新所述接收端口的接收队列与报文类型的分配关系。在示例性实施方式中,所述满足预定条件的CPU核根据预定时长内与所述接收端口绑定的所有CPU核记录的不同报文类型的数据流的流量,更新所述接收端口的接收队列与报文类型的分配关系,可以包括:根据预定时长内与所述接收端口绑定的所有CPU核记录的不同报文类型的数据流的流量,计算非管理类IP报文的数据流以及非管理类非IP报文的数据流的流量总和;根据所述流量总和以及用于处理报文的CPU核的数目,确定CPU核的平均负载流量;根据非管理类IP报文的数据流的流量、非管理类非IP报文的数据流的流量以及CPU核的平均负载流量,给非管理类IP报文的数据流以及非管理类非IP报文的数据流指定所述接收端口的接收队列,以满足给每个接收队列分配的数据流的总流量之间的差值小于或等于阈值。在示例性实施方式中,所述满足预定条件的CPU核根据预定时长内与所述接收端口绑定的所有CPU核记录的不同报文类型的数据流的流量,更新所述接收端口的接收队列与报文类型的分配关系,还可以包括:在给非管理类IP报文的数据流以及非管理类非IP报文的数据流指定所述接收端口的接收队列之后,给管理类报文的数据流指定所述接收端口的索引最大的接收队列;其中,与所述接收端口绑定的所有CPU核中的负载最小的CPU核配置为与所述接收端口的索引最大的接收队列绑定。本专利技术实施例还提供一种多核CPU的负载均衡装置,包括:硬件分流模块、接收端口以及至少两个CPU核;其中,每个接收端口配置为与至少两个CPU核绑定,与同一个接收端口绑定的CPU核配置为分别绑定所述接收端口的一个或多个接收队列;所述硬件分流模块,用于针对每个接收端口,根据分流规则将报文分类,并根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列;所述接收端口,用于在接收到所述报文后,产生硬件中断,并将所述硬件中断同时上报给与所述接收端口绑定的所有CPU核;接收到所述硬件中断的每个CPU核,用于在软中断处理过程中,从与本CPU核绑定的接收队列读取报文。在示例性实施方式中,所述硬件分流模块可以至少包括CPU芯片的硬件分类单元以及DMA单元;其中,所述硬件分类单元,用于根据分流规则将报文分类;所述DMA单元,用于根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列。在示例性实施方式中,所述硬件分流模块可以包括外置交换芯片、CPU芯片的硬件分类单元以及DMA单元;所述外置交换芯片,用于根据分流规则将报文分类,并根据接收端口的接收队列与报文类型的分配关本文档来自技高网
...
一种多核CPU的负载均衡方法及装置

【技术保护点】
一种多核中央处理器CPU的负载均衡方法,其特征在于,应用于通信设备,所述通信设备包括硬件分流模块、接收端口以及至少两个CPU核,其中,每个接收端口配置为与至少两个CPU核绑定,与同一个接收端口绑定的CPU核配置为分别绑定所述接收端口的一个或多个接收队列;所述负载均衡方法包括:针对每个接收端口,硬件分流模块根据分流规则将报文分类,并根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列;所述接收端口接收到所述报文后,产生硬件中断,并将所述硬件中断同时上报给与所述接收端口绑定的所有CPU核;接收到所述硬件中断的每个CPU核在软中断处理过程中,从与本CPU核绑定的接收队列读取报文。

【技术特征摘要】
1.一种多核中央处理器CPU的负载均衡方法,其特征在于,应用于通信设备,所述通信设备包括硬件分流模块、接收端口以及至少两个CPU核,其中,每个接收端口配置为与至少两个CPU核绑定,与同一个接收端口绑定的CPU核配置为分别绑定所述接收端口的一个或多个接收队列;所述负载均衡方法包括:针对每个接收端口,硬件分流模块根据分流规则将报文分类,并根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列;所述接收端口接收到所述报文后,产生硬件中断,并将所述硬件中断同时上报给与所述接收端口绑定的所有CPU核;接收到所述硬件中断的每个CPU核在软中断处理过程中,从与本CPU核绑定的接收队列读取报文。2.根据权利要求1所述的负载均衡方法,其特征在于,所述硬件分流模块至少包括CPU芯片的硬件分类单元以及直接内存存取DMA单元;所述硬件分流模块根据分流规则将报文分类,并根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列,包括:所述硬件分类单元根据分流规则将报文分类;所述DMA单元根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列。3.根据权利要求1所述的负载均衡方法,其特征在于,所述硬件分流模块包括外置交换芯片、CPU芯片的硬件分类单元以及直接内存存取DMA单元;所述硬件分流模块根据分流规则将报文分类,并根据所述接收端口的接收队列与报文类型的分配关系,将所述报文转发至与所述报文所属的报文类型存在分配关系的接收队列,包括:所述外置交换芯片根据分流规则将报文分类,并根据接收端口的接收队列与报文类型的分配关系,修改所述报文的优先级,并将所述报文发送给所述硬件分类单元;所述硬件分类单元匹配所述报文的优先级;所述DMA单元将所述报文转发至对应所述优先级的接收队列。4.根据权利要求1至3任一项所述的负载均衡方法,其特征在于,所述分流规则包括:匹配报文为以下任一大类:管理类报文、非管理类网络协议IP报文、非管理类非IP报文;在所述报文属于非管理类IP报文时,按照所述报文的IP地址,细分所述报文所属的报文类型。5.根据权利要求4所述的负载均衡方法,其特征在于,所述负载均衡方法还包括:针对所述接收端口,所述接收到所述硬件中断的每个CPU核在报文处理过程中,记录不同报文类型的数据流的流量;满足预定条件的CPU核根据预定时长内与所述接收端口绑定的所有CPU核记录的不同报文类型的数据流的流量,更新所述接收端口的接收队列与报文类型的分配关系。6.根据权利要求5所述的负载均衡方法,其特征在于,所述满足预定条件的CPU核根据预定时长内与所述接收端口绑定的所有CPU核记录的不同报文类型的数据流的流量,更新所述接收端口的接收队列与报文类型的分配关系,包括:根据预定时长内与所述接收端口绑定的所有CPU核记录的不同报文类型的数据流的流量,计算非管理类IP报文的数据流以及非管理类非IP报文的数据流的流量总和;根据所述流量总和以及用于处理报文的CPU核的数目,确定CPU核的平均负载流量;根据非管理类IP报文的数据流的流量、非管理类非IP报文的数据流的流量以及CPU核的平均负载流量,给非管理类IP报文的数据流以及非管理类非IP报文的数据流指定所述接收端口的接收队列,以满足给每个接收队列分配的数据流的总流量之间的差值小于或等于阈值。7.根据权利要求6所述的负载均衡方法,其特征在于,所述满足预定条件的CPU核根据预定时长内与所述接收端口绑定的所有CPU核记录的不同报文类型的数据流的流量,更新所述接收端口的接收队列与...

【专利技术属性】
技术研发人员:徐清华
申请(专利权)人:瑞斯康达科技发展股份有限公司
类型:发明
国别省市:北京,11

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

1