CN101860486A - 一种基于漏桶算法的动态负载均衡机制 - Google Patents

一种基于漏桶算法的动态负载均衡机制 Download PDF

Info

Publication number
CN101860486A
CN101860486A CN201010192498A CN201010192498A CN101860486A CN 101860486 A CN101860486 A CN 101860486A CN 201010192498 A CN201010192498 A CN 201010192498A CN 201010192498 A CN201010192498 A CN 201010192498A CN 101860486 A CN101860486 A CN 101860486A
Authority
CN
China
Prior art keywords
token
sbc
token bucket
load balancing
further comprise
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.)
Pending
Application number
CN201010192498A
Other languages
English (en)
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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201010192498A priority Critical patent/CN101860486A/zh
Publication of CN101860486A publication Critical patent/CN101860486A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明提出了一种基于漏桶算法的动态负载均衡机制。该机制简单,易于实现,效率较高,利用网络处理器动态地反馈负载信息,实现发送到单板机上的数据流负载均衡。

Description

一种基于漏桶算法的动态负载均衡机制
技术领域
本发明属于通信技术领域,涉及一种基于漏桶算法的动态负载均衡机制。具体地说,利用网络处理器实现对于高层协议分析处理器的负载均衡功能,从而可以动态地反馈负载信息,实现发送到高层协议分析处理器上的数据流负载均衡。
背景技术
随着互联网业务数量和种类的不断发展,千兆高速网络的数据流量对网络监控系统的处理能力与计算强度提出了更高的要求,使得以往单一的设备无法完成大流量的信息分析任务。
采用网络处理器进行协议处理,可以满足高速率网络协议分析的需要,成为目前发展的一个方向。网络处理器是面向网络应用领域的特定应用指令处理器,是面向数据分组处理的、具有体系结构特征和特定电路的、软件可编程器件。它是一种专用于网络通信设备的通用芯片,其灵活的软件体系提供硬件级的处理性能是网络处理器的关键特性。在此软件结构上运行的主要有两种代码,微引擎代码(ME)和核代码(Core)。ME主要进行数据平面的快通道数据处理,实现高速数据包转发。Core主要完成与控制处理器相连,实现慢通道的异常数据包处理以及微引擎的管理与配置。
目前一个高容量的数据包过滤系统基于网络处理器的协议处理单元,以单板机作为高层协议分析处理器,利用先进电信运算架构的高性能,高集成度,在同一个机框中插入交换板,网络处理器板和服务器刀片从而实现数据包过滤功能。基于网络处理器的协议处理单元是该系统的一个子系统,在协议处理单元系统中,网络处理器负责所有数据的接收和发送,并进行底层协议的规则匹配过滤。对于需要进行高层协议分析、鉴权认证等的数据包需要交由单板机进行处理。系统中有多个单板机网元,为了能够均衡各个单板机的计算任务,充分利用系统计算和存储资源,减小任务执行时间,需要在单板机间进行有效的负载均衡。
负载均衡(Traffic Balancing)是指在一个集群系统中,通过一定的算法和逻辑,使得系统中的多个服务器或处理器能够获得与其处理能力相当的任务量,提高系统综合利用率,降低整体任务处理时间。负载均衡分为静态负载均衡和动态负载均衡两种。静态负载均衡是指提前知道任务和环境的各种数据,预先静态将任务量分配给相应的处理器,该方法实现简单,但不能跟踪系统状态变化,缺乏控制突发事件能力。动态负载均衡是指实时分析系统负载信息和处理器计算、存储等资源情况,动态地调度不同处理器间的任务量,实时轻载或重载,该方法能动态跟踪系统负载状态变化,实时调整,灵活有效利用系统资源。
基于状态检测的网络设备,一般只需要判断建立TCP连接的第一数据包。如果这个包是满足某种规则允许通过的,就为其分配一个高层协议分析的服务器转发,并将其所属的连接的所有数据包都发往上述指定的服务器而不进行规则匹配操作。这样如果能够使得高层的服务器在任意时刻所负担的连接数目与该服务器的处理能力成正比,那么整个系统的工作效率就可以处在一种很高的状态,处理数据包的速率也会达到最快。这样的过程就是基于连接的负载均衡过程。
图1表示了利用网络处理器实现的数据包过滤系统中负载均衡模块的位置和与各个模块的相互关系。负载均衡模块有两部分功能,即对于会话建立的SYN(同步字符,Synchronous character)包,分配一个负载最轻的SBC(单板机,single board compute),以及对于所有的SBC,动态地监控目前的负载,是否过载以及负载的实时变化情况。
发明内容
本发明的目的是利用网络处理器实现的对于SBC的负载均衡。利用一种令牌桶算法来实现基于数据流的动态负载均衡过程,动态地反馈负载信息,实现发送到SBC上的数据流负载均衡。
为了实现上述目的,本发明的具体步骤如下:
第一步骤:初始化令牌桶。
由控制平面根据SBC下发的信息初始化令牌桶,即共有几个令牌桶,各个令牌桶包含多少令牌等信息。
本发明采用了动态负载均衡机制,网络处理器接收由SBC传来的消息,包括SBC是否过载,是否关闭,以及定期沟通心跳信息(即即时状态信息)。
如果接收到SBC的过载信息,就向数据平面的负载均衡模块发送过载的信息。数据平面收到过载信息,就将相应的令牌桶设置为过载状态,这时不能从该令牌桶中提取令牌,也不能查找它的令牌数的大小,但是可以回收令牌。
如果接收到SBC的关闭信息,就向数据平面的负载均衡模块发送关闭的信息。数据平面收到过载信息,就将相应的令牌桶设置为关闭状态,对应的令牌桶不可用。
如果接收到SBC的开启信息,就向数据平面的负载均衡模块发送开启的信息。数据平面收到开启信息,就将相应的令牌桶设置为正常状态,对应的令牌桶中填入下发的令牌值。
同时,设计SBC和网络处理器定期沟通心跳信息,如果没有收到心跳,认为该SBC已经关闭。进行与收到关闭信息相同的操作,关闭令牌桶。
第二步骤:根据任务的不同类型确定该任务所需要的令牌数。
实质上,这里所说的令牌数代表着该任务所需的资源,包括计算资源和存储资源,对于不同的处理任务和数据,所消耗的系统资源是不同的。
第三步骤:经过规则匹配,判断令牌桶组中是否有足够的令牌。
在此为不同的任务进行加权,分配不同的资源。数据平面每到来一个SYN包,先经过规则匹配,如果是需要计费的连接,则读取各个令牌桶的令牌数,找到令牌最多的那个。令牌的多寡决定了SBC处理能力的优劣。找到令牌最多的令牌桶,也就找到了目前处理能力最强的SBC。
为查找最大令牌数,算法设计为设定某一固定次数n,每n次使用后遍历一次所有令牌桶,找到令牌数最大的一个。此后每次到来的匹配规则的SYN包都从这个令牌桶中分配令牌值。使用n次以后,重新查找一次最大令牌数的令牌桶,记录其id(身份标识号,Identity),重复上面的使用。实现设计采用一个全局寄存器来计算次数,每次更新最大值就将它清0。每次从该令牌桶中取出一个令牌时,就将计数器值减1,直至减到0,重新查找最大令牌值的令牌桶。
第四步骤:令牌回收。
记录令牌最多的SBC对应的sbc_id(单板机身份标识号,single boardcompute_Identity),进行后续处理,同时,将该令牌桶中的令牌数减1。如果没有令牌可以使用,直接送至路由模块进行转发。
如果接收到了某个流的fin包,即标志着会话即将结束,应该回收相应的令牌桶中的令牌值。当数据平面的会话连接表匹配模块如果发现某个连接的状态转移到了closed状态,就向负载均衡模块发出回收令牌的请求。负载均衡模块受到如上的请求,则在相应的令牌桶中将令牌值加1。
还有一种情况,就是某个数据流发生了超时的现象。即某个连接的状态在指定时间内没有发生转移,这种情况会被两个平面的会话表匹配模块中的超时机制发现。如果发生这种情况,也就相当于某个连接已经关闭,发现超时的模块会给负载均衡模块发出如上的回收令牌请求,负载均衡模块回收相应的令牌。
附图说明
图1为包过滤系统中负载均衡功能的实现模块示意图。
图2为具体步骤示意图。
图3为漏桶负载均衡算法图。
图4为令牌获得与回收过程图。
具体实施方式
下面结合算法的实施过程对本发明作进一步的描述,但该实施过程不应理解为对本发明的限制。
本发明中负载均衡模块有两部分功能,即对于会话建立的SYN包,分配一个负载最轻的SBC,以及对于所有的SBC,动态地监控目前的负载,是否过载以及负载的实时变化情况。
根据网络处理器中微引擎的特性,一个微引擎(ME)有8个独立的线程,将两部分功能分到不同的线程中实现,充分利用网络处理器的并行处理能力,提高系统效率。同时,根据实际需要的不同,对于会话建立的SYN包,分配一个负载最轻的SBC的操作次数,要远多于对于所有的SBC,动态地监控目前负载的操作。因此,设计分配6个线程实现第一种功能,2个线程实现第二种功能。利用网络处理器自带的scratch存储器环来完成各个模块之间的通信工作。
每个令牌桶设置3个状态:NORMAL,OFF,OVERLOAD。NORMAL表明该SBC目前正常,可以被使用;OFF表明该SBC目前已经关闭,如果有新来开启的SBC,创建令牌桶时可以占用该条目;OVERLOAD表明该SBC目前处于过载状态,不可以使用,但是可以回收令牌。
前六个线程,循环读取从规则匹配到负载均衡的通信环,如果该环不为空,则利用其中存储的数据找到对应数据流起始包。查看计数器是否已经归零。如果没有,则将上一次使用的SBC信息直接应用到本数据流,同时,将对应的令牌桶中的令牌值减一。如果已经归零,则线性查找所有令牌桶,找到目前令牌数最大的令牌桶。将它对应的SBC信息,应用到该数据流,将对应的令牌数减一。如果每个令牌桶的令牌值都为零,说明已经没有可用的SBC了,系统阻塞到查找的位置循环查找,直到找到可用的SBC。
后两个线程,循环读取从其他模块载均衡的通信环。该环负责传送所有其他模块对于令牌桶的修改指令。包括:PUT,GET,START,RESUME,OVERLOAD,CONFIG。PUT表示要向指定的令牌桶中回收一个令牌;GET表明要从指定的令牌桶中获取一个令牌;START表示有个新的SBC已经开启;OVERLOAD表示某个SBC目前过载;RESUME表示某过载的SBC恢复正常;CONFIG用于系统刚刚启动时初始化各个令牌桶。读出指令后,按照相应的信息进行相应的处理。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
以上所述仅为本发明的较佳实施而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.本发明提供了一种基于漏桶算法的动态负载均衡机制,用于实现发送到高层协议分析处理器上的数据流负载均衡。
该机制包括以下步骤:
A)初始化令牌桶;
B)根据任务的不同类型确定该任务所需要的令牌数;
C)经过规则匹配,判断令牌桶组中是否有足够的令牌;
D)令牌回收。
2.根据权利要求1所述的方法,其特征在于,步骤A)进一步包括:由控制平面根据SBC(单板机,single board compute)下发的信息初始化令牌桶,即共有几个令牌桶,各个令牌桶包含多少令牌等信息;网络处理器接收由SBC传来的消息,包括SBC是否过载,是否关闭,以及定期沟通心跳信息(即即时状态信息)。
3.根据权利要求1所述的方法,其特征在于,步骤B)进一步包括:对于不同类型的任务确定所要需要的令牌数代表着该任务所需的资源,包括计算资源和存储资源。
4.根据权利要求1所述的方法,其特征在于,步骤C)进一步包括:不同的任务进行加权,分配不同的资源;数据平面每到来一个SYN(同步字符,Synchronous character)包,先经过规则匹配,找到目前处理能力最强的SBC。
5.根据权利要求1所述的方法,其特征在于,步骤D)进一步包括:记录令牌最多的SBC对应的sbc_id(单板机身份标识号,single board compute_Identity),进行后续处理,同时,将该令牌桶中的令牌数减1;如果没有令牌可以使用,直接送至路由模块进行转发。
CN201010192498A 2010-06-07 2010-06-07 一种基于漏桶算法的动态负载均衡机制 Pending CN101860486A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010192498A CN101860486A (zh) 2010-06-07 2010-06-07 一种基于漏桶算法的动态负载均衡机制

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010192498A CN101860486A (zh) 2010-06-07 2010-06-07 一种基于漏桶算法的动态负载均衡机制

Publications (1)

Publication Number Publication Date
CN101860486A true CN101860486A (zh) 2010-10-13

Family

ID=42946151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010192498A Pending CN101860486A (zh) 2010-06-07 2010-06-07 一种基于漏桶算法的动态负载均衡机制

Country Status (1)

Country Link
CN (1) CN101860486A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102299861A (zh) * 2011-09-22 2011-12-28 迈普通信技术股份有限公司 一种报文流量控制方法
CN106357558A (zh) * 2016-09-05 2017-01-25 北京小米移动软件有限公司 带宽分配方法及装置
CN106998340A (zh) * 2016-01-22 2017-08-01 大唐移动通信设备有限公司 一种板卡资源的负载均衡方法及装置
CN110912794A (zh) * 2019-11-15 2020-03-24 国网安徽省电力有限公司安庆供电公司 基于令牌集的近似匹配策略
RU2813666C1 (ru) * 2023-04-10 2024-02-15 Федеральное государственное бюджетное образовательное учреждение высшего образования "Поволжский государственный университет телекоммуникаций и информатики" Способ определения параметров телетрафика

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097461A1 (en) * 2001-11-08 2003-05-22 Paul Barham System and method for controlling network demand via congestion pricing
CN1601963A (zh) * 2003-09-26 2005-03-30 华为技术有限公司 基于令牌桶算法的接入速率限制方法
CN101272347A (zh) * 2008-04-29 2008-09-24 华为技术有限公司 负载分担的方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097461A1 (en) * 2001-11-08 2003-05-22 Paul Barham System and method for controlling network demand via congestion pricing
CN1601963A (zh) * 2003-09-26 2005-03-30 华为技术有限公司 基于令牌桶算法的接入速率限制方法
CN101272347A (zh) * 2008-04-29 2008-09-24 华为技术有限公司 负载分担的方法和设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《中国优秀硕士学位论文全文数据库》 20081031 王矗 基于网络处理器的协议处理单元数据平面规则匹配和负载均衡模块的设计与实现 , *
《湖南工程学院学报(自然科学版)》 20060630 谭小兰等 一种自适应的漏桶算法 第16卷, 第02期 2 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102299861A (zh) * 2011-09-22 2011-12-28 迈普通信技术股份有限公司 一种报文流量控制方法
CN106998340A (zh) * 2016-01-22 2017-08-01 大唐移动通信设备有限公司 一种板卡资源的负载均衡方法及装置
CN106357558A (zh) * 2016-09-05 2017-01-25 北京小米移动软件有限公司 带宽分配方法及装置
CN106357558B (zh) * 2016-09-05 2019-10-01 北京小米移动软件有限公司 带宽分配方法及装置
CN110912794A (zh) * 2019-11-15 2020-03-24 国网安徽省电力有限公司安庆供电公司 基于令牌集的近似匹配策略
CN110912794B (zh) * 2019-11-15 2021-07-16 国网安徽省电力有限公司安庆供电公司 基于令牌集的近似匹配策略
RU2813666C1 (ru) * 2023-04-10 2024-02-15 Федеральное государственное бюджетное образовательное учреждение высшего образования "Поволжский государственный университет телекоммуникаций и информатики" Способ определения параметров телетрафика

Similar Documents

Publication Publication Date Title
Meng et al. Online deadline-aware task dispatching and scheduling in edge computing
US8484348B2 (en) Method and apparatus for facilitating fulfillment of web-service requests on a communication network
EP2865147B1 (en) Guarantee of predictable and quantifiable network performance
US7243351B2 (en) System and method for task scheduling based upon the classification value and probability
CN109218355A (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US7337314B2 (en) Apparatus and method for allocating resources within a security processor
US20060085554A1 (en) System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
WO2002046925A2 (en) Systems and methods for the deterministic management of information
CN102770852A (zh) 信息通信处理系统、方法和网络节点
CN101741912A (zh) 一种处理计算任务的方法、网络设备及分布式网络系统
CN102105865A (zh) 虚拟机环境中不中断网络连通性的电源管理方法和系统
JP2003528371A (ja) サーバ用フェデレイテッドオペレーティングシステム
US20170201434A1 (en) Resource usage data collection within a distributed processing framework
CN109831524A (zh) 一种负载均衡处理方法及装置
CN103929337B (zh) 通信监视器以及发生预测方法
CN109445921A (zh) 一种分布式数据任务处理方法及装置
CN101860486A (zh) 一种基于漏桶算法的动态负载均衡机制
CN114945032A (zh) 电力物联网终端数据接入系统、方法、装置、设备及介质
CN102355422B (zh) 多核并行无锁的qos流量控制方法
KR101191251B1 (ko) 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법
CN102271078A (zh) 面向服务质量保障的负载均衡方法
CN101527719A (zh) 一种tcp数据流并行分析方法
EP3659030A1 (en) Virtual container processing on high performance computing processors
Kadhim et al. Hybrid load-balancing algorithm for distributed fog computing in internet of things environment
Zhang et al. Efficient online surveillance video processing based on spark framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice

Addressee: Miao Jiansong

Document name: Notification of Patent Invention Entering into Substantive Examination Stage

DD01 Delivery of document by public notice

Addressee: Miao Jiansong

Document name: Notification that Application Deemed to be Withdrawn

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20101013