CN113055292B - 一种提升多核路由器转发性能的方法及一种多核路由器 - Google Patents

一种提升多核路由器转发性能的方法及一种多核路由器 Download PDF

Info

Publication number
CN113055292B
CN113055292B CN202110264661.5A CN202110264661A CN113055292B CN 113055292 B CN113055292 B CN 113055292B CN 202110264661 A CN202110264661 A CN 202110264661A CN 113055292 B CN113055292 B CN 113055292B
Authority
CN
China
Prior art keywords
data packet
central processing
core router
current
forwarding
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.)
Active
Application number
CN202110264661.5A
Other languages
English (en)
Other versions
CN113055292A (zh
Inventor
常玉成
王胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Silicon Chang Communication Technology Co ltd
Original Assignee
Qingdao Silicon Chang Communication Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Silicon Chang Communication Technology Co ltd filed Critical Qingdao Silicon Chang Communication Technology Co ltd
Priority to CN202110264661.5A priority Critical patent/CN113055292B/zh
Publication of CN113055292A publication Critical patent/CN113055292A/zh
Application granted granted Critical
Publication of CN113055292B publication Critical patent/CN113055292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉路由器转发领域,涉及到一种提升路由转发性能的方法及一种多核路由器。方法包括:步骤S1,获取多核路由器中每个中央处理器的当前处理状态;步骤S2,判断输入多核路由器的数据包的个数是否超过数据包阈值:若是,则转至步骤S3,根据当前处理状态和数据包的属性信息,将数据包调度至不同的中央处理器进行处理;步骤S4,判断所有中央处理器是否达到均衡:若是,则退出流程。其中,一种多核路由器,应用如上述的方法,根据数据包以及对应调度的中央处理器配置多核路由器。上述技术方案的有益效果是:能够有效地提高路由器的转发吞吐量,从而达到改善网络性能。

Description

一种提升多核路由器转发性能的方法及一种多核路由器
技术领域
本发明涉路由器转发领域,涉及到一种提升路由转发性能的方法及一种多核路由器。
背景技术
路由器是现代家庭和企业必不可少的设备之一,随着时代的发展,网络上的资源内容越来越丰富,视频码率越来越高,这就需要路由器在实现上网的过程中能够处理更高吞吐量。
而当前路由器在处理多条数据流并发时,只是基于IP号和端口号计算的哈希值,映射到不同中央处理器上进行处理,并没有考虑中央处理器的实时负载。
由此可见,当前路由器在大部分场景下,不仅占用大量处理资源,而且还未利用多核路由器的计算优势,导致始终无法实现高吞吐量的转发处理。
发明内容
针对上述的现有技术的缺陷,本发明提供一种提升多核路由器转发性能的方法及一种多核路由器。
其中,一种提升多核路由器转发性能的方法,包括:
步骤S1,获取多核路由器中每个中央处理器的当前处理状态;
步骤S2,判断输入所述多核路由器的数据包的个数是否超过预设的数据包阈值:
若是,则转至步骤S3;
若否,退出所述流程;
步骤S3,根据所述当前处理状态和所述数据包的属性信息,将所述数据包调度至不同的所述中央处理器进行处理;
步骤S4,判断所有所述中央处理器是否达到均衡:
若是,则退出所述流程;
若否,则返回至步骤S3。
优选的,所述步骤S1包括:
步骤S11,获取所述中央处理器的当前负载利用率和当前数据包处理量;
步骤S12,根据所述当前负载利用率和所述当前数据包处理量判断所述中央处理器是否处于空闲范围内:
若是,则所述当前处理状态为繁忙;
若否,则所述当前处理状态为空闲。
优选的,所述步骤S3包括:
步骤S31,根据所述中央处理器的当前处理状态,获取所述中央处理器的发包数量;
步骤S32,根据所述中央处理器的发包数量和所述数据包的属性信息,获取每个所述中央处理器的转发量;
步骤S33,根据所述转发量将所述数据包调度至对应的所述中央处理器进行处理。
优选的,所述步骤S3还包括:
所述步骤S34,获取所述数据包于预设时间内的调度次数,并根据所述调度次数调整所述数据包调度的所述中央处理器。
优选的,所述数据包的属性信息包括:
所述数据包的IP号;和/或
所述数据包的端口号;和/或
所述数据包的优先级;和/或
所述数据包的大小。
优选的,步骤S4包括:
步骤S41,获取所有所述中央处理器的当前转发量;
步骤S42,判断所有所述当前转发量之间的差值是否处于预设的差值范围内:
若是,则所有所述中央处理器达到均衡,退出所述流程:
若否,则返回至步骤S3。
优选的,所述方法中还包括于步骤S4之后执行的步骤S5;
步骤S5,获取网卡处理中断的执行速率,根据执行速率调整所述数据包调度至其他的所述中央处理器进行处理。
优选的,所述方法中还包括于步骤S4之后执行的步骤S6;
所述步骤S6,释放所述数据包对应的内存资源。
其中,一种多核路由器,应用如上述所述的提升多核路由器转发性能的方法,包括:
一配置模块,用于根据所述数据包以及对应调度的中央处理器配置所述多核路由器。
上述技术方案的有益效果是:能够有效地提高路由器的转发吞吐量,从而达到改善网络性能。
附图说明
图1为本发明的一种较优实施方式中,一种提升多核路由器转发性能的方法的总流程示意图;
图2为本发明的一种较优实施方式中,步骤S1的流程示意图;
图3为本发明的一种较优实施方式中,步骤S3的流程示意图;
图4为本发明的另一种较优实施方式中,步骤S3的流程示意图;
图5为本发明的一种较优实施方式中,步骤S4的流程示意图;
图6为本发明的一种较优实施方式中,步骤S5的流程示意图;
图7为本发明的一种较优实施方式中,步骤S6的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
一种提升多核路由器转发性能的方法,如图1所示,包括:
步骤S1,获取多核路由器中每个中央处理器的当前处理状态;
步骤S2,判断输入多核路由器的数据包的个数是否超过预设的数据包阈值:
若是,则转至步骤S3;
若否,退出流程;
步骤S3,根据当前处理状态和数据包的属性信息,将数据包调度至不同的中央处理器进行处理;
步骤S4,判断所有中央处理器是否达到均衡:
若是,则退出流程;
若否,则返回至步骤S3。
具体地,考虑到现有技术未充分发挥多核路由器的计算能力,无法实现高吞吐量的问题,本发明提供一种提升多核路由器下转发性能的方法,通过步骤S1至步骤S4,最终实现经过同一多核路由器的不同数据流被均匀的分配到不同的中央处理器上进行处理,使得多核路由器在单位时间内能够处理更多的包,从而达到优化网络性能的目的。
其中,本发明优选的实施方式中,如图2所示,步骤S1包括:
步骤S11,获取中央处理器的当前负载利用率和当前数据包处理量;
步骤S12,根据当前负载利用率和当前数据包处理量判断中央处理器是否处于空闲范围内:
若是,则当前处理状态为繁忙;
若否,则当前处理状态为空闲。
具体地,通过步骤S11至步骤S12,可以得到中央处理器的当前处理状态,即,当中央处理器的当前负载利用率很低,并且当前数据包处理量较小,则该中央处理器的当前处理状态为空闲状态,当中央处理器的当前负载利用率很高,并且当前数据包处理量较大,则该中央处理器的当前处理状态为繁忙状态。
进一步地,中央处理器的当前处理状态还与调度信息相关,调度信息主要包括调度的时间戳、数据流的IP号和端口号、数据流中每个数据包的长度和个数、数据包的聚合状态等。
进一步地,于实际操作中,首先,可以启CONFIG_RPS选项,使能SMP相关配置,编译内核;随后,可以建立RPS数据结构,利用netif_rx_internal函数获取中央处理器的调度信息。
本发明的优先实施方式中,于步骤S2中,可以在netcore中数据包的接收处理函数中,添加触发机制,如果单位时间内数据包的数量超过预设的数据包阈值,而且存在多条方向的数据流,则触发多核调度处理函数,例如,可以在操作系统的网络协议栈在处理数据包的入口处,增加一个监测点,该监测点在会在每收到一个数据包即进行检测,如果单位时间内的数据包超过预设的数据包阈值,则转至步骤S3,继续判断是否需要将数据包调度到不同的中央处理器上,如果单位时间内的数据包未超过预设的数据包阈值,则退出所述流程,以常规方式处理数据包,如根据数据包的IP号和端口号等处理。通过设置步骤S2,可以节省系统资源,只有单位时间内数据包达到预设的数据包阈值才会触发。进一步地,预设的数据包阈值为每秒1000个数据包。
本发明优选的实施方式中,如图3所示,步骤S3包括:
步骤S31,根据中央处理器的当前处理状态,获取中央处理器的发包数量;
步骤S32,根据中央处理器的发包数量和数据包的属性信息,获取每个中央处理器的转发量;
步骤S33,根据转发量将数据包调度至对应的中央处理器进行处理。
本发明优选的实施方式中,数据包的属性信息包括数据包的IP号;和/或数据包的端口号;和/或数据包的优先级;和/或数据包的大小。
具体地,经步骤S2判断后,触发多核调度处理函数,通过步骤S31至步骤S33,将数据包调度至合适的中央处理器进行处理,即,定时检查所有数据包的中央处理器的分配情况,根据当前数据包在不同中央处理器的分布情况进行中央处理器之间的转发,以实现负载均衡调度。
首先,可以根据中央处理器的当前处理状态,即上述确定的中央处理器的空闲程度,判断每个中央处理器的发包数量,即单位时间内的能发出去多少包,随后,可以根据中央处理器的空闲程度和数据包的属性信息,获取每个中央处理器的转发量,例如,将数据包优先级较高的包的软中断分派到空闲程度最高的中央处理器,将相同IP号和端口号的包分派到同一个中央处理器等,这里还需要考虑每个包的大小占比,考虑发包数目对cpu中断的打断等因素,此处的数据包的属性信息主要包括数据包的IP号、数据包的端口号、数据包的优先级和数据包的大小,以综合出每个中央处理器的转发量,即每个中央处理器适合处理的数据包的负载,以令牌数目来计算每个中央处理器能够携带的数据包的数目,最后,可以将数据包调度至对应的中央处理器,以达到均衡的目的。
如图4所示,本发明优选的实施方式中,步骤S3还包括:
步骤S34,获取数据包于预设时间内的调度次数,并根据调度次数调整数据包调度的中央处理器。
具体地,执行步骤S34,获取数据包于预设时间内的调度次数,若调度次数超过预设的调度次数阈值,则此时可能处理回环震荡,则对数据包的调度进行调整。也就是说,本发明通过步骤S34,能够分析数据包分配到不同中央处理器之后,是否存在回环震荡的情况,从而避免数据包在不同中央处理器之间来回切换,影响效率。
本发明优选的实施方式中,如图5所示,步骤S4包括:
步骤S41,获取所有中央处理器的当前转发量;
步骤S42,判断所有当前转发量之间的差值是否处于预设的差值范围内:
若是,则所有中央处理器达到均衡,退出流程:
若否,则返回至步骤S3。
具体地,通过步骤S41至步骤S42,判断中央处理器之间的当前转发量差值是否处于预设的差值范围内,即可判断当前的中央处理器之间是否实现负载均衡,如果中央处理器之间的差值处于预设的差值范围内,即,每个中央处理器的负载情况接近,例如,每个中央处理器均分多条数据流以分别进行处理,则此时的中央处理器实现均衡,则可以退出流程,如果中央处理器之间的差值不处于差值范围内,则返回步骤S3,即,进行步骤S3的迭代操作。
本发明优选的实施方式中,如图6所示,方法中还包括于步骤S4之后执行的步骤S5;
步骤S5,获取网卡处理中断的执行速率,根据执行速率调整数据包调度至其他的中央处理器进行处理。
具体地,当数据包数据的来源是从无线或者有线网卡,在网卡的驱动处理过程中,主要执行调度依赖于网卡的硬件和软件中断,而执行步骤S4后,也就是对数据包进行调度后,不合适的调度处理可能会影响网卡中断的执行效率,因此设置步骤S5,通过获取网卡处理中断的情况对调度进行调整,如果导致整个系统的带宽降低,则需要将之前调度到网卡中断处理对应中央处理器上,转调度至其它中央处理器上处理。进一步地,为准确检测网卡处理中断的情况,将于步骤S4执行的一定时间后,调度迭代至稳定状态后,再执行步骤S5。
本发明,通过设置步骤S5,能够综合判断网卡硬件中断的产生速率与软中断的分配情况,避免软中断的调度占用过多的中央处理器资源,进一步地,若是单核多线程的中央处理器架构,需要避免同一中央处理器上的两个线程同时抢占调度资源的情况。
如图7所示,本发明优选的实施方式中,方法中还包括于步骤S4之后执行的步骤S6;
步骤S6,释放数据包对应的内存资源。
具体地,考虑到网络中数据流数量很多,为了进行负载均衡的调度,对于每一条数据流都需要分配对应的内存资源,而当调度程序检测到某一流上的数据在单位时间内已经不活跃后,则可以通过步骤S6释放对应的内存资源,由此,本发明利用步骤S6,回收线程定期回收过期的数据流表项,清除其占用的内存资源。
本发明优选的实施方式中,通过基于步骤S1至步骤S4的调度过程进行自动测试,以确定最优的调度匹配策略。相应地,本发明还可以提供一多核路由器,应用如上述的提升多核路由器转发性能的方法,并于配置模块中记录基于步骤S1至步骤S4最终得到的最优的调度匹配策略,并根据该调度匹配策略中的数据包以及对应调度的中央处理器配置多核路由器。进一步地,于实际操作中,可以将最终确定的数据包及对应调度的中央处理器作成配置选项,在debugfs中增加统计信息节点,记录和追踪当前的网络转发负载均衡状态,以配置多核路由器,进而有益于快速准确地处理大规模的应用分发。
上述技术方案的有益效果是:提供一种提升多核路由器转发性能的方法,对多核路由器的网络转发做了深度优化,能够有效地提高路由器的转发吞吐量,从而达到改善网络性能;还提供一种多核路由器,能够直接投入生产应用,以实现高吞吐量处理。需要说明的是,本发明的调度策略不局限基于linux系统下的路由器,可以适用于各种操作系统下的路由器。
以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (9)

1.一种提升多核路由器转发性能的方法,其特征在于,包括:
步骤S1,获取多核路由器中每个中央处理器的当前处理状态;
步骤S2,判断输入所述多核路由器的数据包的个数是否超过预设的数据包阈值:
若是,则转至步骤S3;
若否,退出所述流程;
步骤S3,根据所述当前处理状态和所述数据包的属性信息,将所述数据包调度至不同的所述中央处理器进行处理;
步骤S4,判断所有所述中央处理器是否达到均衡:
若是,则退出所述流程;
若否,则返回至步骤S3。
2.根据权利要求1所述的提升多核路由器转发性能的方法,其特征在于,所述步骤S1包括:
步骤S11,获取所述中央处理器的当前负载利用率和当前数据包处理量;
步骤S12,根据所述当前负载利用率和所述当前数据包处理量判断所述中央处理器是否处于空闲范围内:
若是,则所述当前处理状态为空闲;
若否,则所述当前处理状态为繁忙。
3.根据权利要求1所述的提升多核路由器转发性能的方法,其特征在于,所述步骤S3包括:
步骤S31,根据所述中央处理器的当前处理状态,获取所述中央处理器的发包数量;
步骤S32,根据所述中央处理器的发包数量和所述数据包的属性信息,获取每个所述中央处理器的转发量;
步骤S33,根据所述转发量将所述数据包调度至对应的所述中央处理器进行处理。
4.根据权利要求1所述的提升多核路由器转发性能的方法,其特征在于,所述步骤S3还包括:
所述步骤S34,获取所述数据包于预设时间内的调度次数,并根据所述调度次数调整所述数据包调度的所述中央处理器。
5.根据权利要求1所述的提升多核路由器转发性能的方法,其特征在于,所述数据包的属性信息包括:
所述数据包的IP号;和/或
所述数据包的端口号;和/或
所述数据包的优先级;和/或
所述数据包的大小。
6.根据权利要求1所述的提升多核路由器转发性能的方法,其特征在于,步骤S4包括:
步骤S41,获取所有所述中央处理器的当前转发量;
步骤S42,判断所有所述当前转发量之间的差值是否处于预设的差值范围内:
若是,则所有所述中央处理器达到均衡,退出所述流程:
若否,则返回至步骤S3。
7.根据权利要求1所述的提升多核路由器转发性能的方法,其特征在于,所述方法中还包括于步骤S4之后执行的步骤S5;
所述步骤S5,获取网卡处理中断的执行速率,根据执行速率调整所述数据包调度至其他的所述中央处理器进行处理。
8.根据权利要求1所述的提升多核路由器转发性能的方法,其特征在于,所述方法中还包括于步骤S4之后执行的步骤S6;
所述步骤S6,释放所述数据包对应的内存资源。
9.一多核路由器,其特征在于,应用如权利要求1-8中任意一项所述的提升多核路由器转发性能的方法,包括:
一配置模块,用于根据所述数据包以及对应调度的中央处理器配置所述多核路由器。
CN202110264661.5A 2021-03-11 2021-03-11 一种提升多核路由器转发性能的方法及一种多核路由器 Active CN113055292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110264661.5A CN113055292B (zh) 2021-03-11 2021-03-11 一种提升多核路由器转发性能的方法及一种多核路由器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110264661.5A CN113055292B (zh) 2021-03-11 2021-03-11 一种提升多核路由器转发性能的方法及一种多核路由器

Publications (2)

Publication Number Publication Date
CN113055292A CN113055292A (zh) 2021-06-29
CN113055292B true CN113055292B (zh) 2022-11-04

Family

ID=76511347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110264661.5A Active CN113055292B (zh) 2021-03-11 2021-03-11 一种提升多核路由器转发性能的方法及一种多核路由器

Country Status (1)

Country Link
CN (1) CN113055292B (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260647B2 (en) * 2002-03-28 2007-08-21 International Business Machines Corporation Method of load balancing traffic among routers in a data transmission system
CN101616083B (zh) * 2009-08-06 2012-01-04 杭州华三通信技术有限公司 一种报文转发方法和装置
CN102104536A (zh) * 2009-12-18 2011-06-22 国基电子(上海)有限公司 路由器及其平衡负载的方法
CN102779075B (zh) * 2012-06-28 2014-12-24 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统
CN104901898B (zh) * 2015-06-08 2018-08-03 东软集团股份有限公司 一种负载均衡方法及装置
WO2017000097A1 (zh) * 2015-06-27 2017-01-05 华为技术有限公司 一种数据转发的方法、装置和系统
CN108632165B (zh) * 2018-04-23 2022-03-25 新华三技术有限公司 一种报文处理方法、装置及设备
CN111200541B (zh) * 2019-12-31 2022-04-12 山石网科通信技术股份有限公司 网络数据处理方法和装置

Also Published As

Publication number Publication date
CN113055292A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN107087019B (zh) 一种基于端云协同计算架构的任务调度方法及装置
Druschel et al. Lazy receiver processing (LRP): A network subsystem architecture for server systems
US10649822B2 (en) Event ingestion management
Cervino et al. Adaptive provisioning of stream processing systems in the cloud
Bhowmik et al. High performance publish/subscribe middleware in software-defined networks
CN106506392B (zh) 一种网络拥塞处理方法及装置
US9304825B2 (en) Processing, on multiple processors, data flows received through a single socket
US11595315B2 (en) Quality of service in virtual service networks
EugeneNg Maestro: balancing fairness, latency and throughput in the OpenFlow control plane
EP3949280A1 (en) Congestion avoidance in a slice-based network
Wolf et al. Locality-aware predictive scheduling of network processors.
CN113722103A (zh) 加密卡的调用控制方法及通信设备
Chakraborty et al. A low-latency multipath routing without elephant flow detection for data centers
CN113055292B (zh) 一种提升多核路由器转发性能的方法及一种多核路由器
Hu et al. Load balancing with multi-level signals for lossless datacenter networks
Zhang et al. Load balancing with deadline-driven parallel data transmission in data center networks
Zhang et al. Performance management challenges for virtual network functions
Barczyk et al. High rate packets transmission on Ethernet LAN using commodity hardware
Voigt Overload behaviour and protection of event-driven web servers
Zeng et al. Middlenet: A high-performance, lightweight, unified nfv and middlebox framework
Tripathi et al. Crossbow: A vertically integrated QoS stack
CN106941474B (zh) 一种会话初始协议服务器过载控制方法、服务器
Yigitbasi et al. Performance evaluation of overload control in multi-Cluster grids
Qie et al. Scheduling computations on a programmable router
CN117032914A (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
GR01 Patent grant
GR01 Patent grant