CN101394362A - 基于流分片的对多核网络处理器进行负载均衡的方法 - Google Patents

基于流分片的对多核网络处理器进行负载均衡的方法 Download PDF

Info

Publication number
CN101394362A
CN101394362A CNA2008102262963A CN200810226296A CN101394362A CN 101394362 A CN101394362 A CN 101394362A CN A2008102262963 A CNA2008102262963 A CN A2008102262963A CN 200810226296 A CN200810226296 A CN 200810226296A CN 101394362 A CN101394362 A CN 101394362A
Authority
CN
China
Prior art keywords
stream
net
processing engine
described net
net bag
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.)
Granted
Application number
CNA2008102262963A
Other languages
English (en)
Other versions
CN101394362B (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.)
SHANGHAI CERTUSNET INFORMATION TECHNOLOGY CO., LTD.
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN2008102262963A priority Critical patent/CN101394362B/zh
Publication of CN101394362A publication Critical patent/CN101394362A/zh
Application granted granted Critical
Publication of CN101394362B publication Critical patent/CN101394362B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于流分片的对多核网络处理器进行负载均衡方法,包括:测量所有处理引擎处理每一个网流中的网包的最大处理延时;建立一张网流会话表;计算重分配最小时间差MBS;当接收到一个网包时,判断网流会话表中是否含有与网包对应的网流的表项,如果有,则判断系统当前时间与网流中最后一个到达的网包的时间间隔是否小于MBS,如果是,则直接将网包分配给网流会话表中记录的网流中最后一个到达的网包分配的处理引擎;如果不是,则对流进行分片,可以对网包的处理引擎重新分配。本发明可以达到比基于流的负载均衡方案更细粒度的流量划分以在保证按流保序和高缓存利用率的同时,达到更好的负载的均衡性。

Description

基于流分片的对多核网络处理器进行负载均衡的方法
技术领域
本发明涉及并行计算中负载均衡技术领域,特别是涉及一种基于流分片的对多核网络处理器进行负载均衡的方法。
背景技术
近年来,随着互联网带宽的不断增加,网包处理系统面临越来越大的挑战。由于单核处理器上摩尔定律的失效,多核网络处理器成为提高网络设备性能的最重要的选择之一。负载均衡方案是采用多核网络处理器的网包处理系统中的重要组件。负载均衡方案的性能影响到各个并行处理组件的利用率,进而决定了整个网包处理系统的性能(吞吐率)。
网包处理系统中的负载均衡方案与一般并行处理系统中的负载均衡方案有较大不同,网络处理系统中的负载均衡除了要使分配到每一个处理引擎上的流量尽可能的均衡外,还需要考虑一下两个因素:第一,需要保证同属于一个流的网包的顺序,在进出这个网包处理系统的前后是不变的,即网包需要按流保序。第二,由于网包处理程序访问的数据结构有一定的时间局部性,所以进行流量分配时,需要考虑到时间局部性的因素以提高Cache(高速缓冲存储器)的命中率。
网包处理系统中采用的负载均衡方案一般有两种:基于网包的负载均衡和基于网流的负载均衡。基于网包的负载均衡方案,以包为单位进行流量分配。基于网流的负载均衡方案,以网流为单位进行流量分配,即属于同一个流的网包只能被分配到同一个处理引擎进行处理。基于网包的负载均衡存在两方面的不足:第一,这种方案需要通过额外的设计进行按流保序,而且这些保序的设计往往会对系统性能造成较大影响;第二,由于网包处理系统大多需要维护一张会话表(流的信息),基于网包的负载均衡系统可能将同属于一个流的两个网包分配到不同的处理引擎上,这时会出现两个引擎同时访问一个数据结构的情况。所以需要对这些数据结构进行同步(采用互斥锁等方案),这些同步方案也会对系统的性能造成很大影响。基于网流的负载均衡方案不存在上述的两个不足,但这种方案的分配单位(网流)的性质造成基于网流的负载均衡很容易出现各个处理引擎上负载不均衡的情况。主要的原因有两方面:其一,负载均衡器需要知道分配单位的负载特性(或者每个分配单位的负载是相同的),一般网包处理系统中可以假设每个网包的需要的处理能力是基本相同的。而网流则很不相同,同属于一个网流的网包的数量在第一个网包到达时是无法预测的,而且根据对互联网流量的统计表明,网流的大小(包含网包的多少)的分布是长尾的,即网流大小的分布很不均衡。其二,一个网流是由多个网包组成的(相同的网络流量中,网流的数量与网包的数量差一个数量级),所以基于网流的划分粒度要比粗,更不容易达到负载的均衡。
发明内容
本发明实施例要解决的问题是提供一种基于流分片的对多核网络处理器进行负载均衡的方法,以克服现有基于流的负载均衡技术中容易出现各个处理引擎上负载不均衡的缺陷。
为达到上述目的,本发明实施例的技术方案提供一种基于流分片的对多核网络处理器进行负载均衡方法,该方法包括以下步骤:
s101.测量所有处理引擎处理每一个网流中的网包的最大处理延时L;
s102.建立一张网流会话表,网流会话表中记录每一个网流中的网包最后到达的时间和为最后一个到达的网包分配的处理引擎名称;
s103.获取当前时刻每个处理引擎的处理队列的长度Bi,并计算重分配最小时间差MBS,所述MBS=(max(Bi)-min(Bi))×L;
s104.当接收到一个网包时,判断所述网流会话表中是否含有与所述网包对应的网流的表项,如果有,则转步骤s105;
s105.获取与所述网包对应的网流的信息,判断系统当前时间与所述网流中最后一个到达的网包的时间间隔是否小于重分配最小时间差MBS,如果是,则直接将所述网包分配给所述网流会话表中记录的所述网流中最后一个到达的网包分配的处理引擎;
s106.更新所述网流会话表中所述网包的到达时间和分配给所述网包的处理引擎。
其中,在步骤s104中,如果所述网流会话表中没有与所述网包对应的网流的表项,则在所述网流会话表中建立与所述网流对应的表项,并将处理队列最短的引擎作为所述网包的处理引擎。
其中,在步骤s105中,如果系统当前时间与所述网流中最后一个到达的网包的时间间隔大于MBS,则对流进行分片,可以对网包的处理引擎重新分配,以达到更好的负载均衡,具体为:判断处理引擎的输入队列的长度是否大于预先设定的阈值T,如果否,则将所述网包分配给所述网流会话表中记录的所述网流中最后一个到达的网包分配的处理引擎。
其中,如果处理引擎的输入队列的长度大于预先设定的阈值T,则将处理队列最短的引擎作为所述网包的处理引擎。
其中,在所述将处理队列最短的引擎作为所述网包的处理引擎之后,还包括:在所述网流会话表中记录所述网包的到达时间和分配给所述网包的处理引擎。
与现有技术相比,本发明的技术方案具有如下优点:
本发明实施例可以达到比基于流的负载均衡方案更细粒度的流量划分以达到更好的负载的均衡性,同时可以达到按流保序和高的Cache利用率。
附图说明
图1是本发明实施例的一种基于流分片的对多核网络处理器进行负载均衡的系统的结构图;
图2是本发明实施例的一种网流会话表的结构图;
图3是本发明实施例的一种基于流分片的对多核网络处理器进行负载均衡的方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明提出的基于流分片的多核网络处理器的负载均衡的方法分为两个阶段,第一阶段为预处理阶段,首先测量每个处理引擎处理一个网包需要的最大处理时间L,用当前时刻处理引擎的输入队列的长度的最大与最小值之差计算并计算重分配最小时间差MBS=(max(Bi)-min(Bi))×L,确定将网络流划分为流分片的标准。第二阶段实际处理阶段,首先建立一张网流会话表,分别记录网络流的流标识(一般为源地址、目的地址、传输层协议、源端口和目的端口)、网络流中最后一个网包到达的时间、网络流中最后一个网包分配的处理引擎。
以下给出本发明的一个实施例:
假设本发明实施例的一种基于流分片的对多核网络处理器进行负载均衡的系统的结构如图1所示。首先测量每个处理引擎处理一个网包的时间L,获得当前时刻的各个处理队列长度Bi,得到重分配最小时间差MBS=(max(Bi)-min(Bi))×L。一般采用哈希表的结构,建立网流会话表,如图2所示。
系统接收到网包输入后,先进入负载均衡器。先从网包包头中提取流标识,用流标识查询连接会话表,如果会话表中不存在这个流,则建立这个流对应的表项,并将选择处理队列最短的引擎作为这个网包的处理引擎;如果会话表中存在这个流,首先比较当前时间和连接会话表的表项中的时间戳的差值是否小于MBS。如果小于MBS,不需要进行额外处理,直接将这个网包分配到表项中记录的处理引擎进行处理;如果大于MBS,首先获得表项中记录的处理引擎的处理队列的长度,判断处理队列的长度是否小于预先设定的阈值T,如果小于阈值T,不进行自适应调整,还是将网包分配给表项中记录的处理引擎进行处理。这样可以减少同一个流中的网包被分配到不同的处理引擎的次数,可以提高处理引擎的缓存的使用效率。
只有当对应的处理引擎的处理队列的长度大于阈值T后,才对这个流对应的处理引擎进行调整,本发明中直接选取处理队列最短的那个处理引擎。此时,更新连接会话表的表项中的时间戳和处理引擎号字段,然后将网包放入对应的处理引擎的处理队列中等待处理。
本发明实施例可以达到比基于流的负载均衡方案更细粒度的流量划分以达到更好的负载的均衡性,同时可以达到按流保序和高的Cache利用率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (5)

1、一种基于流分片的对多核网络处理器进行负载均衡方法,其特征在于,该方法包括以下步骤:
s101.测量所有处理引擎处理每一个网流中的网包的最大处理延时L;
s102.建立一张网流会话表,网流会话表中记录每一个网流中的网包最后到达的时间和为最后一个到达的网包分配的处理引擎名称;
s103.获取当前时刻每个处理引擎的处理队列的长度Bi,并计算重分配最小时间差MBS,所述MBS=(max(Bi)-min(Bi))×L;
s104.当接收到一个网包时,判断所述网流会话表中是否含有与所述网包对应的网流的表项,如果有,则转步骤s105;
s105.获取与所述网包对应的网流的信息,判断系统当前时间与所述网流中最后一个到达的网包的时间间隔是否小于重分配最小时间差MBS,如果是,则直接将所述网包分配给所述网流会话表中记录的所述网流中最后一个到达的网包分配的处理引擎;
s106.更新所述网流会话表中所述网包的到达时间和分配给所述网包的处理引擎。
2、如权利要求1所述的基于流分片的对多核网络处理器进行负载均衡方法,其特征在于,在步骤s104中,如果所述网流会话表中没有与所述网包对应的网流的表项,则在所述网流会话表中建立与所述网流对应的表项,并将处理队列最短的引擎作为所述网包的处理引擎。
3、如权利要求1所述的基于流分片的对多核网络处理器进行负载均衡方法,其特征在于,在步骤s105中,如果系统当前时间与所述网流中最后一个到达的网包的时间间隔大于MBS,则对流进行分片,可以对网包的处理引擎重新分配,以达到更好的负载均衡,具体为:判断处理引擎的输入队列的长度是否大于预先设定的阈值T,如果否,则将所述网包分配给所述网流会话表中记录的所述网流中最后一个到达的网包分配的处理引擎。
4、如权利要求3所述的基于流分片的对多核网络处理器进行负载均衡方法,其特征在于,如果处理引擎的输入队列的长度大于预先设定的阈值T,则将处理队列最短的引擎作为所述网包的处理引擎。
5、如权利要求2或4所述的基于流分片的对多核网络处理器进行负载均衡方法,其特征在于,在所述将处理队列最短的引擎作为所述网包的处理引擎之后,还包括:在所述网流会话表中记录所述网包的到达时间和分配给所述网包的处理引擎。
CN2008102262963A 2008-11-12 2008-11-12 基于流分片的对多核网络处理器进行负载均衡的方法 Active CN101394362B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102262963A CN101394362B (zh) 2008-11-12 2008-11-12 基于流分片的对多核网络处理器进行负载均衡的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102262963A CN101394362B (zh) 2008-11-12 2008-11-12 基于流分片的对多核网络处理器进行负载均衡的方法

Publications (2)

Publication Number Publication Date
CN101394362A true CN101394362A (zh) 2009-03-25
CN101394362B CN101394362B (zh) 2010-12-22

Family

ID=40494443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102262963A Active CN101394362B (zh) 2008-11-12 2008-11-12 基于流分片的对多核网络处理器进行负载均衡的方法

Country Status (1)

Country Link
CN (1) CN101394362B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301664A (zh) * 2011-07-20 2011-12-28 华为技术有限公司 多核处理器的流分发方法及装置
CN101729573B (zh) * 2009-12-18 2012-05-30 四川长虹电器股份有限公司 网络入侵检测的动态负载均衡方法
CN103297347A (zh) * 2013-05-15 2013-09-11 杭州华三通信技术有限公司 一种负载均衡处理方法及装置
CN103491019A (zh) * 2013-09-18 2014-01-01 北京航空航天大学 一种网络负载均衡的混合算法
WO2014000450A1 (zh) * 2012-06-28 2014-01-03 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统
CN103685053A (zh) * 2013-11-26 2014-03-26 北京航空航天大学 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法
CN103957167A (zh) * 2014-03-14 2014-07-30 李志敏 一种网络负载均衡的混合算法
TWI483590B (zh) * 2011-12-22 2015-05-01 Intel Corp 處理封包之方法、系統及電腦程式產品
CN105516302A (zh) * 2015-12-07 2016-04-20 东软集团股份有限公司 一种数据处理方法及网络设备
CN105656809A (zh) * 2016-02-04 2016-06-08 上海信昊信息科技有限公司 一种网络通信数据包保序方法
CN108134747A (zh) * 2017-12-22 2018-06-08 盛科网络(苏州)有限公司 以太网交换芯片、其组播镜像流量均衡的实现方法及系统
CN112840608A (zh) * 2018-10-22 2021-05-25 康普技术有限责任公司 用于长期演进演进节点b中的分组处理的负载测量和负载均衡

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6778495B1 (en) * 2000-05-17 2004-08-17 Cisco Technology, Inc. Combining multilink and IP per-destination load balancing over a multilink bundle
US7289508B1 (en) * 2003-03-12 2007-10-30 Juniper Networks, Inc. Systems and methods for processing any-to-any transmissions
CN100562854C (zh) * 2008-03-11 2009-11-25 浙江大学 多核处理器操作系统负载均衡的实现方法
CN101308469B (zh) * 2008-07-07 2011-08-10 成都市华为赛门铁克科技有限公司 一种软中断负载均衡的实现方法及设备

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729573B (zh) * 2009-12-18 2012-05-30 四川长虹电器股份有限公司 网络入侵检测的动态负载均衡方法
CN102301664B (zh) * 2011-07-20 2014-04-30 华为技术有限公司 多核处理器的流分发方法及装置
WO2012106906A1 (zh) * 2011-07-20 2012-08-16 华为技术有限公司 多核处理器的流分发方法及装置
CN102301664A (zh) * 2011-07-20 2011-12-28 华为技术有限公司 多核处理器的流分发方法及装置
TWI483590B (zh) * 2011-12-22 2015-05-01 Intel Corp 處理封包之方法、系統及電腦程式產品
US9218203B2 (en) 2012-06-28 2015-12-22 Huawei Technologies Co., Ltd. Packet scheduling in a multiprocessor system using inter-core switchover policy
RU2577476C2 (ru) * 2012-06-28 2016-03-20 Хуавэй Текнолоджиз Ко., Лтд. Способ, устройство и система для диспетчеризации ядра процессора в системе ядра мультипроцессора
WO2014000450A1 (zh) * 2012-06-28 2014-01-03 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统
CN103297347B (zh) * 2013-05-15 2016-08-31 杭州华三通信技术有限公司 一种负载均衡处理方法及装置
CN103297347A (zh) * 2013-05-15 2013-09-11 杭州华三通信技术有限公司 一种负载均衡处理方法及装置
CN103491019A (zh) * 2013-09-18 2014-01-01 北京航空航天大学 一种网络负载均衡的混合算法
CN103685053B (zh) * 2013-11-26 2017-01-11 北京航空航天大学 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法
CN103685053A (zh) * 2013-11-26 2014-03-26 北京航空航天大学 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法
CN103957167A (zh) * 2014-03-14 2014-07-30 李志敏 一种网络负载均衡的混合算法
CN105516302A (zh) * 2015-12-07 2016-04-20 东软集团股份有限公司 一种数据处理方法及网络设备
CN105516302B (zh) * 2015-12-07 2018-08-03 东软集团股份有限公司 一种数据处理方法及网络设备
CN105656809A (zh) * 2016-02-04 2016-06-08 上海信昊信息科技有限公司 一种网络通信数据包保序方法
CN105656809B (zh) * 2016-02-04 2019-07-19 上海信昊信息科技有限公司 一种网络通信数据包保序方法
CN108134747A (zh) * 2017-12-22 2018-06-08 盛科网络(苏州)有限公司 以太网交换芯片、其组播镜像流量均衡的实现方法及系统
CN112840608A (zh) * 2018-10-22 2021-05-25 康普技术有限责任公司 用于长期演进演进节点b中的分组处理的负载测量和负载均衡

Also Published As

Publication number Publication date
CN101394362B (zh) 2010-12-22

Similar Documents

Publication Publication Date Title
CN101394362B (zh) 基于流分片的对多核网络处理器进行负载均衡的方法
US11057307B1 (en) Load balancing path assignments techniques
CN108476177B (zh) 支持用于处理功能可扩展性的数据平面的装置及相关方法
US20210336885A1 (en) Phantom queue link level load balancing system, method and device
US6246684B1 (en) Method and apparatus for re-ordering data packets in a network environment
US8973067B2 (en) Methods and apparatus for managing network resources used by multimedia streams in a virtual pipe
US8327057B1 (en) Ordering write bursts to memory
Yan et al. Cab: A reactive wildcard rule caching system for software-defined networks
US9042252B2 (en) Inter-packet interval prediction learning algorithm
US11582146B2 (en) High-quality adaptive bitrate video through multiple links
Ye et al. A weighted ECMP load balancing scheme for data centers using P4 switches
CN102347876B (zh) 一种云计算网络多链路聚合控制装置
US10419965B1 (en) Distributed meters and statistical meters
US20220303217A1 (en) Data Forwarding Method, Data Buffering Method, Apparatus, and Related Device
JP6414455B2 (ja) データ中継装置、サーバ装置、データ中継方法、データ送信方法、およびプログラム
KR101959970B1 (ko) 컨텐츠 전송 서비스 방법, 이를 위한 캐시 장치
JP4771988B2 (ja) 負荷分散装置及びネットワーク装置
CN103139093A (zh) 基于fpga的高速网络数据流负载均衡调度方法
US9712580B2 (en) Pipelining for parallel network connections to transmit a digital content stream
US20170005953A1 (en) Hierarchical Packet Buffer System
US20230096063A1 (en) Communication method and apparatus
US9344384B2 (en) Inter-packet interval prediction operating algorithm
US20130156034A1 (en) Packet transmission control device, packet transmission control method, and program
CN104348753A (zh) 数据包转发方法以及数据包转发装置
CN109547352A (zh) 报文缓存队列的动态分配方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20170215

Address after: 210042 Xuanwu District, Xuanwu District, Jiangsu, Nanjing, No. 699-22, building 18

Patentee after: CERTUSNET CORP.

Address before: 100084 Beijing Haidian District Tsinghua Yuan 100084-82 mailbox

Patentee before: Tsinghua University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170811

Address after: KIC Business Center No. 433 Shanghai 200433 Yangpu District Shanghai Road No. 6 building 11 layer

Patentee after: SHANGHAI CERTUSNET INFORMATION TECHNOLOGY CO., LTD.

Address before: 210042 Xuanwu District, Xuanwu District, Jiangsu, Nanjing, No. 699-22, building 18

Patentee before: CERTUSNET CORP.