CN101631139A - 基于多核平台的负载均衡软件架构及方法 - Google Patents

基于多核平台的负载均衡软件架构及方法 Download PDF

Info

Publication number
CN101631139A
CN101631139A CN200910084745A CN200910084745A CN101631139A CN 101631139 A CN101631139 A CN 101631139A CN 200910084745 A CN200910084745 A CN 200910084745A CN 200910084745 A CN200910084745 A CN 200910084745A CN 101631139 A CN101631139 A CN 101631139A
Authority
CN
China
Prior art keywords
client
network interface
interface card
thread
load
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
CN200910084745A
Other languages
English (en)
Other versions
CN101631139B (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.)
Beijing Huayao Technology Co., Ltd
Original Assignee
ARRAY NETWORKS (BEIJING) Inc
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 ARRAY NETWORKS (BEIJING) Inc filed Critical ARRAY NETWORKS (BEIJING) Inc
Priority to CN200910084745XA priority Critical patent/CN101631139B/zh
Publication of CN101631139A publication Critical patent/CN101631139A/zh
Application granted granted Critical
Publication of CN101631139B publication Critical patent/CN101631139B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于多核平台的负载均衡软件架构及方法,其包括以下内容:1)采用多核平台和负载均衡设备作为架构元件,并为负载均衡设备上的每个网卡初始化一个内核线程,作为该网卡的软中断例程,各自处理所对应网卡的输入和输出,同时将所有内核线程独立化;2)为每两个网卡线程之间的信息交换建立一个独立的通道,每个通道中建立一组双向环形队列作为多核平台和负载均衡设备的联结器;环形队列维护一个写指针和一个读指针,分别由两个线程操作,使线程间消息交换无需加锁;3)在网卡输入的软中断例程中实现服务器负载均衡的选路策略,并在链路层执行应用层的所有工作。本发明采用多线程无锁的软件架构实现了服务器的负载均衡,实践证明,它能够显著地提高负载均衡设备的性能。

Description

基于多核平台的负载均衡软件架构及方法
技术领域
本发明涉及一种负载均衡软件架构及方法,特别是关于一种应用于网络负载均衡中的基于多核平台的负载均衡软件架构及方法。
背景技术
上世纪70年代后,有赖于半导体技术的发展,计算机成本不断降低,越来越多的人开始使用电脑,随之而来的就是海量信息的交互。网络作为信息交互的主要载体,也必须满足更高的要求,比如更快的响应时间和更大的流量。当一台服务器无法满足用户的请求时,就引入了服务器集群。但是服务器集群并没有真正解决问题,而是把问题转移到了服务器集群中的中心设备——负载均衡设备上。负载均衡设备常常处于网络边沿,负责将用户请求根据一定算法分配到多个后台服务器上,然后将后台服务器的响应返还给客户。
一方面,由于几乎所有流量都从负载均衡设备上经过,长时间每秒钟百万次甚至千万次的TCP层(Transmission Control Protocol传输控制协议)计算对系统性能无疑是一个严峻的考验。在以往的设计中,有些厂商借用专用的硬件交换机模块完成这一步,如BIGIP3400:使用两块BCM5692和一块四层ASIC搭建出一块交换机板附着在主机上,用以将TCP层流量分析剥离主CPU,但是这就意味着昂贵的造价和复杂的构架。
另外一方面,由于摩尔定律失效,传统半导体技术的发展遇到瓶颈,散热问题难以解决使得CPU无法继续提高主频,在这样的背景下多核CPU应运而生。由于每个内核的主频可以比以前低,因此降低了总体功耗,从而回避了散热的问题。但是如何将单核CPU的运算分配到多核CPU上,有效的并行计算,就成了新的问题。在以往的多线程计算经历中得到一个普遍的共识,那就是所有线程访问的将是同一个数据结构,从而使线程间互锁造成性能降低。对于负载均衡设备而言,这种性能降低将是灾难性的。但是如果可以通过合适的手段,充分利用多核的软件架构替代硬件,并且使线程间实现无锁,无论是在经济性还是算法上都是一种突破。
发明内容
针对上述问题,本发明的目的是提供一种能够实现多线程无锁的基于多核平台的负载均衡软件架构及方法,从而显著提高负载均衡设备的负载均衡性能。
为实现上述目的,本发明采取以下技术方案:一种基于多核平台的负载均衡软件架构,其包括以下内容:1)采用多核平台和负载均衡设备作为架构元件,并为负载均衡设备上的每个网卡初始化一个内核线程,作为该网卡的软中断例程,各自处理所对应网卡的输入和输出,同时将所有内核线程独立化;2)为每两个网卡线程之间的信息交换建立一个独立的通道,每个通道中建立一组双向环形队列作为多核平台和负载均衡设备的联结器,环形队列维护一个写指针和一个读指针,分别由两个线程操作,使线程间消息交换无需加锁;3)在网卡输入的软中断例程中实现服务器负载均衡的选路策略,并在链路层执行应用层的所有工作。
每组环形队列的个数等于线程个数减去1,且一个环形队列用于向对方线程输出信息,一个环形队列用于接受对方线程发来的信息。
一种基于多核平台的负载均衡方法,其包括以下步骤:1)在与客户端相连的客户端网卡收到客户发来的请求后,负载均衡器根据所配置的服务器负载均衡策略,选取服务端中的一后台服务器,并在该客户端网卡上初始化的线程中建立一条连接规则;2)客户端网卡将客户端请求和选路信息一起放入与服务端相连的服务端网卡的环形队列中;3)服务端网卡将环形队列中的客户请求和选路信息一起读出,并在该服务端网卡上初始化的线程中记录一条反向的连接规则,然后将改写后的客户请求发给服务端;4)后台服务器做出响应,服务端网卡收到响应,根据记录中的反向连接规则,找到对应的客户端网卡;5)服务端网卡通过客户端网卡中的环形队列,将服务端的响应发给客户端线程;6)客户端线程从客户端网卡的环形队列读取后台服务器响应,发给客户端。
本发明由于采取以上技术方案,其具有以下优点:1、由于本发明方法将所有数据实现了线程独立化,因此不仅保证了在运行时无需和其他线程争抢数据的修改权,还可以由一个线程依次对多个数据结构进行操作,或者采用业务分离的方式,将业务分担给多个线程,从而灵活配置硬件资源和软件资源,如,可以使用一个CPU内核处理一个网卡的数据,也可以使用多个CPU内核处理一个网卡的数据,同时还可以使用一个CPU内核处理多个网卡的数据。2、由于本发明方法使用多通道双向环形队列实现多线程之间的通信,完全避免了锁的使用,保证了各个线程间信息交互的流畅,避免了线程间对同一资源的竞争,使各个线程真正实现了独立运行,并行计算,充分发挥了多核处理器的优势。3、由于本发明在链路层执行应用层的所有工作,从而将网络协议栈平面化,最大化的减小了数据在层与层之间传递带来的损耗,达到了理论上的最优效率。4、本发明将多线程计算应用到负载均衡中,提供了一种新颖高效的手段实现负载均衡。本发明采用多线程无锁的软件架构实现了服务器的负载均衡,实践证明,它能够显著地提高负载均衡设备的负载均衡性能。
附图说明
图1是本发明的负载均衡软件架构示意图
图2是本发明的负载均衡方法流程图
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
如图1所示,本发明的负载均衡软件架构包括以下三部分内容:
1、采用多核平台和负载均衡设备作为架构元件,并为负载均衡设备上的每个网卡初始化一个内核线程(以下简称线程),作为该网卡的软中断例程,各自处理所对应网卡的输入和输出,同时将所有内核线程独立化,即为每一个线程建立一个独立的软件运行环境,在运行状态下和其他线程没有相互的干扰,不会去中断其他线程以取得数据,也不会被其他线程随意打断。
2、为每两个网卡线程之间的信息交换建立一个独立的通道,每个通道中建立一组双向环形队列(以下简称环形队列)作为多核平台和负载均衡设备的联结器,环形队列维护一个写指针和一个读指针,分别由两个线程操作,使线程间消息交换无需加锁。由于要与其他的每个线程之间都建立环形队列,因此每组环形队列的个数应该等于线程个数减去1。其中一个环形队列用于向对方线程输出信息(例如环形队列2->1),一个环形队列用于接受对方线程发来的信息(例如环形队列1->2)。对同一个环形队列而言,由于线程之间是独立的,两个线程之间建立的环形队列是封闭的,因此只有一个线程会将信息插入该环形队列,也只有一个线程会从该环形队列中读取信息。
3、在网卡输入的软中断例程中实现服务器负载均衡的选路策略(即任务流),并在链路层执行应用层的所有工作,减少层间数据交换带来的负担。
如图2所示,本发明的负载均衡方法包括以下步骤:
步骤1、在与客户端相连的网卡1(即客户端网卡)收到客户发来的请求后,负载均衡器根据所配置的服务器负载均衡策略,选取服务端中的一后台服务器,并在网卡1上初始化的线程中建立一条连接规则,包括从2层到4层连接的全部信息。
步骤2、网卡1将客户端请求和选路信息(即服务器负载均衡策略的结果)一起放入与服务端相连的网卡2(即服务端网卡)的环形队列中。
步骤3、网卡2将环形队列中的客户请求和选路信息一起读出,并在网卡2上初始化的线程中记录一条反向的连接规则,然后将改写后的客户请求发给服务端。
步骤4、服务端做出响应,网卡2收到响应,根据记录中的反向连接规则,找到对应的网卡1。
步骤5、网卡2通过网卡1中的环形队列,将服务端的响应发给客户端线程。
步骤6、客户端线程从网卡1的环形队列读取后台服务器响应,发给客户端。
本发明仅以上述实施例进行说明,各部件的结构、设置位置、及其连接都是可以有所变化的,在本发明技术方案的基础上,凡根据本发明原理对个别部件进行的改进和等同变换,均不应排除在本发明的保护范围之外。

Claims (3)

1、一种基于多核平台的负载均衡软件架构,其包括以下内容:
1)采用多核平台和负载均衡设备作为架构元件,并为负载均衡设备上的每个网卡初始化一个内核线程,作为该网卡的软中断例程,各自处理所对应网卡的输入和输出,同时将所有内核线程独立化;
2)为每两个网卡线程之间的信息交换建立一个独立的通道,每个通道中建立一组双向环形队列作为多核平台和负载均衡设备的联结器,环形队列维护一个写指针和一个读指针,分别由两个线程操作,使线程间消息交换无需加锁;
3)在网卡输入的软中断例程中实现服务器负载均衡的选路策略,并在链路层执行应用层的所有工作。
2、如权利要求1所述的基于多核平台的负载均衡软件架构,其特征在于:每组环形队列的个数等于线程个数减去1,且一个环形队列用于向对方线程输出信息,一个环形队列用于接受对方线程发来的信息。
3、一种采用如权利1~2所述软件架构的基于多核平台的负载均衡方法,其包括以下步骤:
1)在与客户端相连的客户端网卡收到客户发来的请求后,负载均衡器根据所配置的服务器负载均衡策略,选取服务端中的一后台服务器,并在该客户端网卡上初始化的线程中建立一条连接规则;
2)客户端网卡将客户端请求和选路信息一起放入与服务端相连的服务端网卡的环形队列中;
3)服务端网卡将环形队列中的客户请求和选路信息一起读出,并在该服务端网卡上初始化的线程中记录一条反向的连接规则,然后将改写后的客户请求发给服务端;
4)后台服务器做出响应,服务端网卡收到响应,根据记录中的反向连接规则,找到对应的客户端网卡;
5)服务端网卡通过客户端网卡中的环形队列,将服务端的响应发给客户端线程;
6)客户端线程从客户端网卡的环形队列读取后台服务器响应,发给客户端。
CN200910084745XA 2009-05-19 2009-05-19 基于多核平台的负载均衡软件架构及方法 Active CN101631139B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910084745XA CN101631139B (zh) 2009-05-19 2009-05-19 基于多核平台的负载均衡软件架构及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910084745XA CN101631139B (zh) 2009-05-19 2009-05-19 基于多核平台的负载均衡软件架构及方法

Publications (2)

Publication Number Publication Date
CN101631139A true CN101631139A (zh) 2010-01-20
CN101631139B CN101631139B (zh) 2012-11-14

Family

ID=41576079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910084745XA Active CN101631139B (zh) 2009-05-19 2009-05-19 基于多核平台的负载均衡软件架构及方法

Country Status (1)

Country Link
CN (1) CN101631139B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101778050A (zh) * 2010-03-11 2010-07-14 浪潮(北京)电子信息产业有限公司 负载均衡方法、装置和系统
CN102404211A (zh) * 2011-11-15 2012-04-04 北京天融信科技有限公司 一种amp架构下处理器负载均衡的实现方法及装置
CN102521047A (zh) * 2011-11-15 2012-06-27 重庆邮电大学 实现多核处理器间中断负载均衡的方法
CN102523153A (zh) * 2011-12-08 2012-06-27 华中科技大学 虚拟化环境下的负载均衡方法
CN102591936A (zh) * 2011-12-27 2012-07-18 四川九洲电器集团有限责任公司 一种播放器数据处理方法
CN102984085A (zh) * 2012-11-21 2013-03-20 网神信息技术(北京)股份有限公司 映射方法及装置
CN103488717A (zh) * 2013-09-11 2014-01-01 北京华胜天成科技股份有限公司 一种无锁数据汇聚方法及装置
CN103685321A (zh) * 2013-12-31 2014-03-26 北京神州绿盟信息安全科技股份有限公司 数据包转发和安全防护检测系统、负载均衡方法及装置
CN103986665A (zh) * 2014-05-12 2014-08-13 浪潮电子信息产业股份有限公司 云海os中网络负载均衡的方法
CN104750543A (zh) * 2013-12-26 2015-07-01 杭州华为数字技术有限公司 线程创建方法、业务请求处理方法及相关设备
CN105376334A (zh) * 2015-12-14 2016-03-02 曙光信息产业(北京)有限公司 负载均衡方法及装置
CN106354572A (zh) * 2016-08-31 2017-01-25 成都科来软件有限公司 一种多线程数据传输方法
CN106354493A (zh) * 2016-08-24 2017-01-25 南昌码行科技有限公司 一种解决传统软件开发痛点的开发模式的实现方法
CN106371937A (zh) * 2016-08-31 2017-02-01 迈普通信技术股份有限公司 多核系统的核间通信方法及装置
CN106528488A (zh) * 2016-10-09 2017-03-22 广州艾美网络科技有限公司 一种单机内计算集群系统和控制方法
CN109729024A (zh) * 2018-12-29 2019-05-07 中盈优创资讯科技有限公司 数据包处理系统及方法
CN110011936A (zh) * 2019-03-15 2019-07-12 北京星网锐捷网络技术有限公司 基于多核处理器的线程调度方法及装置
CN110032441A (zh) * 2018-11-22 2019-07-19 阿里巴巴集团控股有限公司 提升服务器性能的方法及装置和电子设备
CN113157447A (zh) * 2021-04-13 2021-07-23 中南大学 一种基于智能网卡的rpc负载均衡方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013388A (zh) * 2007-01-26 2007-08-08 浙江大学 面向异构多核体系的进程调度方法
CN101247349A (zh) * 2008-03-13 2008-08-20 华耀环宇科技(北京)有限公司 一种网络流量快速分配方法
CN101252540B (zh) * 2008-04-07 2010-07-07 华耀环宇科技(北京)有限公司 一种基于外部策略服务器交互的网络流量分配方法

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101778050A (zh) * 2010-03-11 2010-07-14 浪潮(北京)电子信息产业有限公司 负载均衡方法、装置和系统
CN102404211A (zh) * 2011-11-15 2012-04-04 北京天融信科技有限公司 一种amp架构下处理器负载均衡的实现方法及装置
CN102521047A (zh) * 2011-11-15 2012-06-27 重庆邮电大学 实现多核处理器间中断负载均衡的方法
CN102523153B (zh) * 2011-12-08 2014-06-04 华中科技大学 虚拟化环境下的负载均衡方法
CN102523153A (zh) * 2011-12-08 2012-06-27 华中科技大学 虚拟化环境下的负载均衡方法
CN102591936A (zh) * 2011-12-27 2012-07-18 四川九洲电器集团有限责任公司 一种播放器数据处理方法
CN102984085A (zh) * 2012-11-21 2013-03-20 网神信息技术(北京)股份有限公司 映射方法及装置
CN103488717A (zh) * 2013-09-11 2014-01-01 北京华胜天成科技股份有限公司 一种无锁数据汇聚方法及装置
CN103488717B (zh) * 2013-09-11 2017-02-22 北京华胜天成科技股份有限公司 一种无锁数据汇聚方法及装置
CN104750543A (zh) * 2013-12-26 2015-07-01 杭州华为数字技术有限公司 线程创建方法、业务请求处理方法及相关设备
WO2015096656A1 (zh) * 2013-12-26 2015-07-02 华为技术有限公司 线程创建方法、业务请求处理方法及相关设备
CN104750543B (zh) * 2013-12-26 2018-06-15 杭州华为数字技术有限公司 线程创建方法、业务请求处理方法及相关设备
CN103685321A (zh) * 2013-12-31 2014-03-26 北京神州绿盟信息安全科技股份有限公司 数据包转发和安全防护检测系统、负载均衡方法及装置
CN103685321B (zh) * 2013-12-31 2016-09-14 北京神州绿盟信息安全科技股份有限公司 数据包转发和安全防护检测系统、负载均衡方法及装置
CN103986665A (zh) * 2014-05-12 2014-08-13 浪潮电子信息产业股份有限公司 云海os中网络负载均衡的方法
CN105376334A (zh) * 2015-12-14 2016-03-02 曙光信息产业(北京)有限公司 负载均衡方法及装置
CN106354493A (zh) * 2016-08-24 2017-01-25 南昌码行科技有限公司 一种解决传统软件开发痛点的开发模式的实现方法
CN106354493B (zh) * 2016-08-24 2019-08-13 广州高专资讯科技有限公司 一种解决传统软件开发痛点的开发模式的实现方法
CN106354572A (zh) * 2016-08-31 2017-01-25 成都科来软件有限公司 一种多线程数据传输方法
CN106371937A (zh) * 2016-08-31 2017-02-01 迈普通信技术股份有限公司 多核系统的核间通信方法及装置
CN106528488A (zh) * 2016-10-09 2017-03-22 广州艾美网络科技有限公司 一种单机内计算集群系统和控制方法
CN106528488B (zh) * 2016-10-09 2019-07-16 广州艾美网络科技有限公司 一种单机内计算集群系统和控制方法
CN110032441A (zh) * 2018-11-22 2019-07-19 阿里巴巴集团控股有限公司 提升服务器性能的方法及装置和电子设备
CN110032441B (zh) * 2018-11-22 2023-03-28 创新先进技术有限公司 提升服务器性能的方法及装置和电子设备
CN109729024A (zh) * 2018-12-29 2019-05-07 中盈优创资讯科技有限公司 数据包处理系统及方法
CN109729024B (zh) * 2018-12-29 2023-05-12 中盈优创资讯科技有限公司 数据包处理系统及方法
CN110011936A (zh) * 2019-03-15 2019-07-12 北京星网锐捷网络技术有限公司 基于多核处理器的线程调度方法及装置
CN110011936B (zh) * 2019-03-15 2023-02-17 北京星网锐捷网络技术有限公司 基于多核处理器的线程调度方法及装置
CN113157447A (zh) * 2021-04-13 2021-07-23 中南大学 一种基于智能网卡的rpc负载均衡方法
CN113157447B (zh) * 2021-04-13 2023-08-29 中南大学 一种基于智能网卡的rpc负载均衡方法

Also Published As

Publication number Publication date
CN101631139B (zh) 2012-11-14

Similar Documents

Publication Publication Date Title
CN101631139B (zh) 基于多核平台的负载均衡软件架构及方法
US12040889B2 (en) Technologies for switching network traffic in a data center
Fusco et al. High speed network traffic analysis with commodity multi-core systems
US9575689B2 (en) Data storage system having segregated control plane and/or segregated data plane architecture
JP6433554B2 (ja) 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
JP4986844B2 (ja) Hpcノード障害の検出及び管理を行うシステム及び方法
US11494245B2 (en) High performance computing system and method
US10606651B2 (en) Free form expression accelerator with thread length-based thread assignment to clustered soft processor cores that share a functional circuit
CN101494697B (zh) 一种采用双刀片服务器的负载均衡方法和装置
CN102576309B (zh) 当在运行于相同数据处理系统上的应用程序之间通信时,通过旁路网络栈而在逻辑分区系统中的分区之间的通信
CN105430103A (zh) 一种基于多控存储的动态负载均衡系统
CN110300188A (zh) 数据传输系统、方法和设备
KR20230147055A (ko) 3d 데이터 처리 유닛에서의 공간적 분배
Huang et al. An evaluation of RDMA-based message passing protocols
Lai et al. ProOnE: a general-purpose protocol onload engine for multi-and many-core architectures
Mohamed et al. High-performance message striping over reliable transport protocols
Hu et al. The Case for Disjoint Job Mapping on High-Radix Networked Parallel Computers
CN106656845A (zh) 一种采用异步事件驱动实现web服务器负载均衡的方法
CN113347230B (zh) 基于可编程交换机的负载均衡方法、装置、设备及介质
CN107122268A (zh) 一种基于numa多物理层分区处理系统
Chen et al. Enhancing parallel game-tree searches by using idle resources of a high performance render farm
Krishnamurthy et al. On network coprocessors for scalable, predictable media services
Jung et al. An overview of parallelism exploitation and cross-layer optimization for big data transfers
CN107193926A (zh) Hadoop多管道数据处理分析方法
Dhingra et al. Resource Management by Refining Allocation Policies Over A Cloud

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 100125 Beijing city Chaoyang District Liangmaqiao Road No. 40 building 10 room 1001-1017 twenty-first Century

Applicant after: Array Networks (Beijing), Inc.

Address before: 100016 Beijing city Chaoyang District Liangmaqiao Road No. 40 building 10 room 1001, twenty-first Century

Applicant before: Array Networks (Beijing), Inc.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: ARRAY NETWORKS (BEIJING), INC. TO: HUAYAO (CHINA) TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100125 Beijing city Chaoyang District Liangmaqiao Road No. 40 building 10 room 1001-1017 twenty-first Century

Patentee after: Beijing Huayao Technology Co., Ltd

Address before: 100125 Beijing city Chaoyang District Liangmaqiao Road No. 40 building 10 room 1001-1017 twenty-first Century

Patentee before: Huayao (China) Technology Co., Ltd.