CN109960586A - 一种服务器状态可感知的四层负载均衡器及均衡方法 - Google Patents

一种服务器状态可感知的四层负载均衡器及均衡方法 Download PDF

Info

Publication number
CN109960586A
CN109960586A CN201910122857.3A CN201910122857A CN109960586A CN 109960586 A CN109960586 A CN 109960586A CN 201910122857 A CN201910122857 A CN 201910122857A CN 109960586 A CN109960586 A CN 109960586A
Authority
CN
China
Prior art keywords
server
state
weight
information
connection number
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
CN201910122857.3A
Other languages
English (en)
Other versions
CN109960586B (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 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 CN201910122857.3A priority Critical patent/CN109960586B/zh
Publication of CN109960586A publication Critical patent/CN109960586A/zh
Application granted granted Critical
Publication of CN109960586B publication Critical patent/CN109960586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种服务器状态可感知的四层负载均衡器及均衡方法,其中,均衡器包括:通信模块,用于接收服务器的记录消息,并根据记录消息将对应的表项插入连接表;数据存储模块,用于每隔预设时长采集DIP资源池的信息,并发布状态更新事件;权值更新模块,用于根据状态更新事件进行状态分析,并分配权值,其中,根据服务器的当前运行状态得到权值,并控制通信模块将权值分配转化为表项后插入到路由表中,以根据当前运行状态实现智能化负载均衡。该均衡器可以根据服务器当前运行状态进行智能化负载均衡,降低后台服务器超载概率,同时也可以保持可编程交换机在性能和灵活性上的优势。

Description

一种服务器状态可感知的四层负载均衡器及均衡方法
技术领域
本发明涉及数据传输技术领域,特别涉及一种服务器状态可感知的四层负载均衡器及均衡方法。
背景技术
随着近些年来各类网络业务的飞速发展,以及互联网在工业生产及日常生活中工作用的地位不断提升。面对如此大规模的用户产生的海量流量,互联网业务提供者很难通过一台服务器实现对所有用户的服务。此时,通过增加服务器数量来提高可服务用户数就是最简单易行的方案。而这种方案就需要四层负载均衡系统将用户的业务请求均匀的分配给后台的大量服务器并持续为他们传输后续的数据包。
每一个现代数据中心都需要强大的四层负载均衡系统。据统计,在过去六年间,数据中心的流量大约上升了50倍,而其中超过40%的流量都需要进行四层负载均衡。面对如此巨大的流量,四层负载均衡系统需要具有极高的性能。同时,由于业务的快速发展会对于负载均衡系统提出各种新的需求,所以四层负载均衡系统还需要具有一定的灵活性。
从实现的平台来看,目前的四层负载均衡系统可以分为专有负载均衡器,软件负载均衡器和基于交换机的负载均衡器。其中专有负载均衡器主要以A10、F5等公司生产的专有硬件设备为代表。这种方案虽然性能极高但由于是专有硬件所以面临价格昂贵并且灵活性很差的问题。为了克服这些困难,基于通用服务器实现的软件负载均衡器,灵活性非常高并且可以通过增加用于构成负载均衡功能的服务器数量进行便捷的扩展。但是这类软件负载均衡器也面临着时延高、抖动大的问题,而且这种问题很难从软件设计的角度避免。此后出现了一种利用商用交换机的ECMP(Equal-Cost Multi Path,等价多路径)功能配合软件交换机实现负载均衡器的方案。而随着可编程交换机的发展和ASIC(Application-Specific Integrated Circuit,专用集成电路)的片上SRAM(Static Random-AccessMemory,静态随机存取存储器)不断增加以及SDN(Software Defined Network,软件定义网络)的发展。基于可编程交换机或Openflow交换机的方案也开始涌现,可编程交换机的特点决定了其在灵活性和性能方面相比原有四层负载均衡方案更具优势。但这些方案都面临服务器状态无感知的问题。
上述的方案大多都只通过简单的ECMP进行负载均衡,即将用户的请求均匀的分配给所有的后台服务器。部分方案可以支持静态加权算法,即将用户的请求按照固定的权值分配给后台服务器。但是由于服务器异构、业务状态的不确定性等原因,按照固定的权值进行分配会导致后台服务器的负载状态在运行中出现很大差异。即这种不考虑后台服务器当前运行状态的策略很容易造成某些服务器已经超载而其他服务器还比较空闲。这种负载状态的不均匀就会导致部分被分配给较重负载服务器的请求响应时间增加。同时这种服务器状态无感知的策略在出现了这种负载状态不均衡的情况后也不会做出改变,而是继续按照固定比例分配新请求。也就是说,这种策略在不均衡的情况出现后也无法为此做出调整从而有效平衡所有服务器上的负载。而实际上,如果可以根据观测到的服务器当前运行状态实时调整权值分配就可以有效降低部分服务器超载的概率,在发生超载后也可以快速进行调整。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种服务器状态可感知的四层负载均衡器,该均衡器可以根据服务器当前运行状态进行智能化负载均衡,降低后台服务器超载概率,同时也可以保持可编程交换机在性能和灵活性上的优势。
本发明的另一个目的在于提出一种服务器状态可感知的四层负载均衡方法。
为达到上述目的,本发明一方面实施例提出了一种服务器状态可感知的四层负载均衡器,包括:通信模块,用于接收服务器的记录消息,并根据所述记录消息将对应的表项插入连接表;数据存储模块,用于每隔预设时长采集DIP资源池的信息,并发布状态更新事件;权值更新模块,用于根据所述状态更新事件进行状态分析,并分配权值,其中,根据所述服务器的当前运行状态得到所述权值,并控制所述通信模块将所述权值分配转化为表项后插入到路由表中,以根据所述当前运行状态实现智能化负载均衡。
本发明实施例的一种服务器状态可感知的四层负载均衡器,通过契合可编程交换机的逻辑,可跨平台部署,既可以运行在软件交换机也可以运行在硬件交换机上。运行在硬件交换机上时具有极高的性能,可以实现线速转发。同时本发明对协议支持、策略更新等后续升级具有很高的灵活性。同时还有效压缩了每条连接占用的存储空间,使得在硬件交换机上可以具有百万级的可同时维持连接数。
另外,根据本发明上述实施例的一种服务器状态可感知的四层负载均衡器还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述权值更新模块进一步用于根据所述状态更新事件周期性的读取其与交换机上的信息,所述信息包括已分配连接数、平均CPU占用率和平均内存占用率中的一项或多项。
进一步地,在本发明的一个实施例中,所述权值更新模块还用于根据所述信息训练权值更新模块机器学习算法,以获取易观测的状态和所述服务器的当前负载之间的关系信息。
进一步地,在本发明的一个实施例中,所述权值更新模块还用于计算所述服务器的预计可服务连接数,以得到周期内的权值分配比例,并且所述预计可服务连接数的计算公式为:
C=(P-B)*A,
其中,C为预计可服务连接数,P为更新周期,B为预计繁忙时间,A为单位时间内服务器可服务的连接数。
进一步地,在本发明的一个实施例中,所述通信模块转化为所述表项后传入到数据平面,使得所述数据平面在预设周期内将根据所述权值分配新连接。
为达到上述目的,本发明另一方面实施例提出了一种服务器状态可感知的四层负载均衡方法,包括:S1,获取服务器的记录消息,并根据所述记录消息将对应的表项插入连接表;S2,每隔预设时长采集DIP资源池的信息,并发布状态更新事件;S3,根据所述状态更新事件进行状态分析,并分配权值,其中,根据所述服务器的当前运行状态得到所述权值,并将所述权值分配转化为表项后插入到路由表中,以根据所述当前运行状态实现智能化负载均衡。
本发明实施例的一种服务器状态可感知的四层负载均衡方法,通过契合可编程交换机的逻辑,可跨平台部署,既可以运行在软件交换机也可以运行在硬件交换机上。运行在硬件交换机上时具有极高的性能,可以实现线速转发。同时本发明对协议支持、策略更新等后续升级具有很高的灵活性。同时还有效压缩了每条连接占用的存储空间,使得在硬件交换机上可以具有百万级的可同时维持连接数。
另外,根据本发明上述实施例的一种服务器状态可感知的四层负载均衡方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述S3还包括:
根据所述状态更新事件周期性的读取其与交换机上的信息,所述信息包括已分配连接数、平均CPU占用率和平均内存占用率中的一项或多项。
进一步地,在本发明的一个实施例中,所述S3还包括:
根据所述信息训练权值更新模块机器学习算法,以获取易观测的状态和所述服务器的当前负载之间的关系信息。
进一步地,在本发明的一个实施例中,所述S3还包括:
计算所述服务器的预计可服务连接数,以得到周期内的权值分配比例,并且所述预计可服务连接数的计算公式为:
C=(P-B)*A,
其中,C为预计可服务连接数,P为更新周期,B为预计繁忙时间,A为单位时间内服务器可服务的连接数。
进一步地,在本发明的一个实施例中,在所述S1中转化为所述表项后传入到数据平面,使得所述数据平面在预设周期内将根据所述权值分配新连接。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的一种服务器状态可感知的四层负载均衡器结构示意图;
图2为根据本发明具体实施例的一种服务器状态可感知的四层负载均衡器架构图;
图3为根据本发明具体实施例的一种服务器状态可感知的四层负载均衡器的结果图;
图4为根据本发明具体实施例的一种服务器状态可感知的四层负载均衡方法流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的一种服务器状态可感知的四层负载均衡器及均衡方法。
首先将参照附图描述根据本发明实施例提出的一种服务器状态可感知的四层负载均衡器。
一个业务从用户的角度看来只具有一个或几个虚拟的IP地址称为VIP(VirtualIP addresses,虚拟IP),VIP用于用户访问业务。而实际上,一个业务可能由数千台服务器提供服务,每台服务器都具有自己的IP地址称为DIP(Direct IP addresses,真实IP)。但用户只能通过DNS获知VIP,而无法知道DIP。VIP本身并不对应真实的服务器,也就是说,VIP只是一种业务标识,只有目的地址为DIP的数据包才能真正被服务。此时就需要四层负载均衡器运行在客户端和服务器之间以实现将目的地址为VIP的数据包转变为目的地址为DIP的数据包,从而使得用户的数据包可以被路由到真正的服务器。
由于后台具有大量的服务器,所以在接收到新请求后,负载均衡器会根据负载均衡算法从相应的DIP池中选择一台服务器,并将该数据包的目的地址改为这个DIP。这样就可以实现大量用户访问同一个VIP但实际上却是由DIP池中所有的服务器共同承担这个负载。一旦创建了客户端和服务器之间的连接,负载均衡器就需要维护它直到这个服务结束,以保证用户的业务不会在中途中断。也就是说四层负载均衡器要做的就是将用户对VIP的访问映射到后台的DIP池中,同时保证用户此次业务的数据包都会被映射到相同的DIP。
图1为根据本发明实施例的一种服务器状态可感知的四层负载均衡器结构示意图。
如图1所示,该一种服务器状态可感知的四层负载均衡器包括:通信模块100、数据存储模块200和权值更新模块300。
其中,通信模块100用于接收服务器的记录消息,并根据记录消息将对应的表项插入连接表。数据存储模块200用于每隔预设时长采集DIP资源池的信息,并发布状态更新事件。权值更新模块300用于根据状态更新事件进行状态分析,并分配权值,其中,根据服务器的当前运行状态得到权值,并控制通信模块将权值分配转化为表项后插入到路由表中,以根据当前运行状态实现智能化负载均衡。
该均衡器可以根据服务器当前运行状态进行智能化负载均衡,降低后台服务器超载概率,同时也可以保持可编程交换机在性能和灵活性上的优势。
进一步地,在本发明的一个实施例中,权值更新模块进一步用于根据状态更新事件周期性的读取其与交换机上的信息,信息包括已分配连接数、平均CPU占用率和平均内存占用率中的一项或多项。
进一步地,在本发明的一个实施例中,权值更新模块还用于根据信息训练权值更新模块机器学习算法,以获取易观测的状态和服务器的当前负载之间的关系信息。
进一步地,在本发明的一个实施例中,权值更新模块还用于计算服务器的预计可服务连接数,以得到周期内的权值分配比例,并且预计可服务连接数的计算公式为:
C=(P-B)*A,
其中,C为预计可服务连接数,P为更新周期,B为预计繁忙时间,A为单位时间内服务器可服务的连接数。
进一步地,在本发明的一个实施例中,通信模块转化为表项后传入到数据平面,使得数据平面在预设周期内将根据权值分配新连接。
下面通过一个具体实施例对本发明的一种服务器状态可感知的四层负载均衡器进行详细说明。
如图2所示,在可编程交换机上通过P4语言编程结合岭回归算法实现智能化的四层负载均衡器,图2描述了本发明基于支持P4语言的可编程交换机的一种实现。其中,数据平面使用支持P4语言的可编程交换机来自定义包处理流程。控制平面则实现在通用服务器上进行数据平面状态管理和实施智能化负载均衡策略。
其中,数据平面完成数据包的高速处理和转发。具体来说,数据平面将新连接按照当前控制平面给出的比例分配给各个后台服务器,同时将这些连接后续的数据包都发送给选定的后台服务器。数据平面主要由四张匹配动作表构成。
(1)服务表和映射表的主要作用是将较长的VIP和DIP压缩为一个较短的在系统内通用的索引。由于数据平面的SRAM受限,所以这种压缩对于提高可存储连接数是非常必要的。具体来说,原本对于一个IPv4地址,DIP一般需要占用48个比特(32比特IPv4地址和16比特),而实际上一个系统不可能服务全部IPv4地址,所以,只需要将系统内存在的DIP进行编号就可以大幅的压缩单个DIP在系统内占用的空间。例如可以通过使用16比特的索引来编号系统内的各个DIP,这样就可以为一个具有65536个后台服务器的业务服务,同时压缩三倍的DIP空间占用。对于VIP来说也是相同的,索引的使用大幅降低了存储单条连接的空间开销。
(2)连接表用于存储已经分配的连接对应的后台服务器。连接表会存储连接与DIP索引的对应关系直到这条连接结束,以保证用户此次业务的所有数据包均发往同一台服务器。而这里的连接是通过哈希值来表示的,原因和DIP索引的使用类似,是为了应对完整的五元组(源地址、目的地址、源端口、目的端口、协议类型)占用的比特数过多而采取的压缩手段。在连接表中没有记录的数据包即为新连接的第一个数据包,此时就通过路由表选择一个后台服务器之后再向控制平面发出记录消息以完成对这条连接的记录。
(3)路由表用于为新连接按比例分配后台服务器。路由表对五元组做哈希并模M然后进行匹配,对不同的结果选择不同的DIP索引,其中M为人为设置的常数。即路由表对将五元组平均的映射为0,1,2…,M-2,M-1这M个数,然后根据控制器下发的表项进行匹配。针对不同的映射结果给出不同的DIP索引,这个DIP索引就是这条连接对应的后台服务器。例如在M=3的时候,将映射结果0和1与服务器1对应起来,而将映射结果2与服务器2对应起来。这样就可以实现将新连接按照2比1的比例分配给服务器1和服务器2。这个分配比例会有控制平面根据当前的服务器状态进行调整从而实现智能化的负载均衡。
控制平面根据当前运行状态完成数据平面内连接表和路由表的表项插入及修改等操作。同时,控制平面还需要周期性收集交换机及服务器上的信息,如已分配连接数、平均CPU占用率、平均内存占用率等等。然后根据收集到的信息对下一个周期内服务器的负载情况做出预测并根据预测出的服务器负载状态给出下一个周期的分配比例。控制平面主要包含三个模块。
(1)thrift API模块(上述的通信模块),负责完成控制平面与数据平面的通信。一是在数据平面为新连接选择了一个后台服务器后接收记录消息并根据此记录消息将对应的表项插入到连接表中以保证连接后续数据包发送到正确的服务器。二是将权值更新模块根据服务器运行状态得出的权值分配转化为表项后插入到路由表中。
(2)redis数据库(上述的数据存储模块),负责进行DIP资源池的状态收集以及发布。负责周期性的收集DIP资源池的信息并发布状态更新事件驱动权值更新模块进行状态分析。
(3)权值更新模块,负责处理收集到的状态并给出合理的权值分配。首先,在系统实际使用之前需要进行权值更新模块机器学习算法的训练。这个训练是为了得出易观测的状态和服务器当前负载情况的关系。由于这种关系明显很难通过人为定义公式的方式明确,所以本发明选择使用机器学习算法进行这种关系的学习。训练后的机器学习算法可以直接根据容易得到的一些状态例如已分配连接数、平均CPU占用率、平均内存占用率等等来预测出服务器上当前运行服务的繁忙时间B。这里繁忙时间B定义为下一个周期内用于服务旧连接消耗的时间。具体来说,首先运行数据收集过程,采集大量的当前状态以及服务器的繁忙时间B的对应关系。然后通过采集到的大量数据训练岭回归算法,在这个过程中调整岭回归算法的参数直至预测效果较好为止。这样就完成了对机器学习算法的训练,权值更新模块也就具有了根据易观测状态进行服务器负载情况预测的能力。
在系统运行过程中,权值更新模块根据redis数据库模块发布的事件周期性的读取其中和交换机上的信息,如已分配连接数、平均CPU占用率、平均内存占用率等等。之后将这些信息输入到训练好的机器学习算法当中由机器学习算法计算出每台服务器的预计繁忙时间B。之后再将预计繁忙时间B带入公式1中得到预计可服务连接数C。其中P为更新周期,A为单位时间内此服务器可服务的连接数。
C=(P-B)*A
在得到了每一台服务器的预计可服务连接数C后,就可以根据C的比例得出此周期内的权值分配比例。之后将此周期内的权值分配比例交由thrift API模块转化为表项传入到数据平面。数据平面在这个周期内将根据这个新的权值进行新连接的分配。到下个周期后,权值更新模块将会重复上述过程,从而保证系统可以持续将数据平面采用的权值以低开销的方式保持在一个较为合理的范围内。
如图3所示,本发明实施例可以实现服务器状态可感知的智能化负载均衡算法,可以有效降低服务器过载的概率,同时可以降低业务的平均完成时间。实验结果如图2所示,本发明相对传统ECMP算法可以降低约22.7%的业务平均完成时间,而相对静态加权算法也可以降低约10.8%的业务平均完成时间。
根据本发明实施例提出的一种服务器状态可感知的四层负载均衡器,通过契合可编程交换机的逻辑,可跨平台部署,既可以运行在软件交换机也可以运行在硬件交换机上。运行在硬件交换机上时具有极高的性能,可以实现线速转发。同时本发明对协议支持、策略更新等后续升级具有很高的灵活性。同时还有效压缩了每条连接占用的存储空间,使得在硬件交换机上可以具有百万级的可同时维持连接数。
其次参照附图描述根据本发明实施例提出的一种服务器状态可感知的四层负载均衡方法。
图4根据本发明一个实施例的一种服务器状态可感知的四层负载均衡方法流程图。
如图4所示,该一种服务器状态可感知的四层负载均衡方法包括以下步骤:
在步骤S1中,获取服务器的记录消息,并根据记录消息将对应的表项插入连接表。
在步骤S2中,每隔预设时长采集DIP资源池的信息,并发布状态更新事件。
在步骤S3中,根据状态更新事件进行状态分析,并分配权值,其中,根据服务器的当前运行状态得到权值,并将权值分配转化为表项后插入到路由表中,以根据当前运行状态实现智能化负载均衡。
进一步地,在本发明的一个实施例中,S3还包括:根据状态更新事件周期性的读取其与交换机上的信息,信息包括已分配连接数、平均CPU占用率和平均内存占用率中的一项或多项。
进一步地,在本发明的一个实施例中,S3还包括:根据信息训练权值更新模块机器学习算法,以获取易观测的状态和服务器的当前负载之间的关系信息。
进一步地,在本发明的一个实施例中,S3还包括:计算服务器的预计可服务连接数,以得到周期内的权值分配比例,并且预计可服务连接数的计算公式为:
C=(P-B)*A,
其中,C为预计可服务连接数,P为更新周期,B为预计繁忙时间,A为单位时间内服务器可服务的连接数。
进一步地,在本发明的一个实施例中,在S1中转化为表项后传入到数据平面,使得数据平面在预设周期内将根据权值分配新连接。
需要说明的是,前述对一种服务器状态可感知的四层负载均衡器实施例的解释说明也适用于该实施例的服务器状态可感知的四层负载均衡方法,此处不再赘述。
根据本发明实施例提出的一种服务器状态可感知的四层负载均衡方法,通过契合可编程交换机的逻辑,可跨平台部署,既可以运行在软件交换机也可以运行在硬件交换机上。运行在硬件交换机上时具有极高的性能,可以实现线速转发。同时本发明对协议支持、策略更新等后续升级具有很高的灵活性。同时还有效压缩了每条连接占用的存储空间,使得在硬件交换机上可以具有百万级的可同时维持连接数。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种服务器状态可感知的四层负载均衡器,其特征在于,包括:
通信模块,用于接收服务器的记录消息,并根据所述记录消息将对应的表项插入连接表;
数据存储模块,用于每隔预设时长采集DIP资源池的信息,并发布状态更新事件;以及
权值更新模块,用于根据所述状态更新事件进行状态分析,并分配权值,其中,根据所述服务器的当前运行状态得到所述权值,并控制所述通信模块将所述权值分配转化为表项后插入到路由表中,以根据所述当前运行状态实现智能化负载均衡。
2.根据权利要求1所述的均衡器,其特征在于,所述权值更新模块进一步用于根据所述状态更新事件周期性的读取其与交换机上的信息,所述信息包括已分配连接数、平均CPU占用率和平均内存占用率中的一项或多项。
3.根据权利要求2所述的均衡器,其特征在于,所述权值更新模块还用于根据所述信息训练权值更新模块机器学习算法,以获取易观测的状态和所述服务器的当前负载之间的关系信息。
4.根据权利要求3所述的均衡器,其特征在于,所述权值更新模块还用于计算所述服务器的预计可服务连接数,以得到周期内的权值分配比例,并且所述预计可服务连接数的计算公式为:
C=(P-B)*A,
其中,C为预计可服务连接数,P为更新周期,B为预计繁忙时间,A为单位时间内服务器可服务的连接数。
5.根据权利要求4所述的均衡器,其特征在于,所述通信模块转化为所述表项后传入到数据平面,使得所述数据平面在预设周期内将根据所述权值分配新连接。
6.一种服务器状态可感知的四层负载均衡方法,其特征在于,包括以下步骤:
S1,获取服务器的记录消息,并根据所述记录消息将对应的表项插入连接表;
S2,每隔预设时长采集DIP资源池的信息,并发布状态更新事件;
S3,根据所述状态更新事件进行状态分析,并分配权值,其中,根据所述服务器的当前运行状态得到所述权值,并将所述权值分配转化为表项后插入到路由表中,以根据所述当前运行状态实现智能化负载均衡。
7.根据权利要求6所述的均衡方法,其特征在于,所述S3还包括:
根据所述状态更新事件周期性的读取其与交换机上的信息,所述信息包括已分配连接数、平均CPU占用率和平均内存占用率中的一项或多项。
8.根据权利要求7所述的均衡方法,其特征在于,所述S3还包括:
根据所述信息训练权值更新模块机器学习算法,以获取易观测的状态和所述服务器的当前负载之间的关系信息。
9.根据权利要求8所述的均衡方法,其特征在于,所述S3还包括:
计算所述服务器的预计可服务连接数,以得到周期内的权值分配比例,并且所述预计可服务连接数的计算公式为:
C=(P-B)*A,
其中,C为预计可服务连接数,P为更新周期,B为预计繁忙时间,A为单位时间内服务器可服务的连接数。
10.根据权利要求9所述的均衡方法,其特征在于,在所述S1中转化为所述表项后传入到数据平面,使得所述数据平面在预设周期内将根据所述权值分配新连接。
CN201910122857.3A 2019-02-19 2019-02-19 一种服务器状态可感知的四层负载均衡器及均衡方法 Active CN109960586B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910122857.3A CN109960586B (zh) 2019-02-19 2019-02-19 一种服务器状态可感知的四层负载均衡器及均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910122857.3A CN109960586B (zh) 2019-02-19 2019-02-19 一种服务器状态可感知的四层负载均衡器及均衡方法

Publications (2)

Publication Number Publication Date
CN109960586A true CN109960586A (zh) 2019-07-02
CN109960586B CN109960586B (zh) 2021-02-12

Family

ID=67023552

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910122857.3A Active CN109960586B (zh) 2019-02-19 2019-02-19 一种服务器状态可感知的四层负载均衡器及均衡方法

Country Status (1)

Country Link
CN (1) CN109960586B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110389839A (zh) * 2019-07-24 2019-10-29 中南民族大学 基于请求的层次结构负载均衡方法及系统
CN110535939A (zh) * 2019-08-29 2019-12-03 深圳前海环融联易信息科技服务有限公司 一种服务发现与抢占方法、装置、计算机设备及存储介质
CN115174583A (zh) * 2022-06-28 2022-10-11 福州大学 基于可编程数据平面的服务器负载均衡方法
CN115297059A (zh) * 2022-07-18 2022-11-04 浙江大学 一种基于p4的传输层负载均衡系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035737A (zh) * 2010-12-08 2011-04-27 北京交通大学 一种基于认知网络的自适应负载均衡方法和装置
CN102710448A (zh) * 2012-06-12 2012-10-03 清华大学 Savi交换机过滤表生存期参数自适应调整方法
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
CN106789648A (zh) * 2016-12-15 2017-05-31 南京邮电大学 基于内容存储与网络状况的软件定义网络路由决策方法
CN106850803A (zh) * 2017-02-06 2017-06-13 上海斐讯数据通信技术有限公司 一种基于sdn的加权轮询系统及算法
CN106878420A (zh) * 2017-02-17 2017-06-20 北京天融信网络安全技术有限公司 一种基于sdn的服务器负载均衡方法及装置
CN105357142B (zh) * 2015-12-02 2018-06-15 浙江工商大学 一种基于ForCES的网络负载均衡器系统设计方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035737A (zh) * 2010-12-08 2011-04-27 北京交通大学 一种基于认知网络的自适应负载均衡方法和装置
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
CN102710448A (zh) * 2012-06-12 2012-10-03 清华大学 Savi交换机过滤表生存期参数自适应调整方法
CN105357142B (zh) * 2015-12-02 2018-06-15 浙江工商大学 一种基于ForCES的网络负载均衡器系统设计方法
CN106789648A (zh) * 2016-12-15 2017-05-31 南京邮电大学 基于内容存储与网络状况的软件定义网络路由决策方法
CN106850803A (zh) * 2017-02-06 2017-06-13 上海斐讯数据通信技术有限公司 一种基于sdn的加权轮询系统及算法
CN106878420A (zh) * 2017-02-17 2017-06-20 北京天融信网络安全技术有限公司 一种基于sdn的服务器负载均衡方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RUI MIAO,HONGYI ZENG,CHANGHOON KIM,JEONGKEUN LEE,MINLAN YU: "SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs", 《ACM》 *
李倩、张凯、魏浩然、张娇: "基于P4和机器学习的路由选择方案探讨", 《智能网络》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110389839A (zh) * 2019-07-24 2019-10-29 中南民族大学 基于请求的层次结构负载均衡方法及系统
CN110389839B (zh) * 2019-07-24 2020-10-09 中南民族大学 基于请求的层次结构负载均衡方法及系统
CN110535939A (zh) * 2019-08-29 2019-12-03 深圳前海环融联易信息科技服务有限公司 一种服务发现与抢占方法、装置、计算机设备及存储介质
CN110535939B (zh) * 2019-08-29 2022-02-11 深圳前海环融联易信息科技服务有限公司 一种服务发现与抢占方法、装置、计算机设备及存储介质
CN115174583A (zh) * 2022-06-28 2022-10-11 福州大学 基于可编程数据平面的服务器负载均衡方法
CN115174583B (zh) * 2022-06-28 2024-03-29 福州大学 基于可编程数据平面的服务器负载均衡方法
CN115297059A (zh) * 2022-07-18 2022-11-04 浙江大学 一种基于p4的传输层负载均衡系统
CN115297059B (zh) * 2022-07-18 2023-11-28 浙江大学 一种基于p4的传输层负载均衡系统

Also Published As

Publication number Publication date
CN109960586B (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
CN109960586A (zh) 一种服务器状态可感知的四层负载均衡器及均衡方法
CN111580970B (zh) 一种联邦学习的模型分发与聚合的传输调度方法
Tang et al. A dynamical and load-balanced flow scheduling approach for big data centers in clouds
JP5324637B2 (ja) 動的フローレットスケジューリングシステム、フロースケジューリング方法、及びフロースケジューリングプログラム
CN103188345B (zh) 分布式动态负载管理系统和方法
CN109547517B (zh) 一种带宽资源调度方法和装置
CN107733689A (zh) 基于优先级的动态加权轮询调度策略方法
US7117242B2 (en) System and method for workload-aware request distribution in cluster-based network servers
CN102035737A (zh) 一种基于认知网络的自适应负载均衡方法和装置
CN103368864A (zh) 一种基于c/s架构的智能负载均衡方法
CN104796422A (zh) 一种在线客服均衡分配的方法及装置
CN104519125B (zh) 对于拓扑变化有弹性的分布式按次序负载分布
CN110191148A (zh) 一种面向边缘计算的统计函数分布式执行方法及系统
CN104011686A (zh) 用于节能分布式和弹性负载均衡的方法和设备
CN103152393A (zh) 一种云计算的计费方法和计费系统
Kim et al. An energy-aware service function chaining and reconfiguration algorithm in NFV
CN103117947A (zh) 一种负载分担方法及装置
CN113014611B (zh) 一种负载均衡方法及相关设备
Guo et al. AggreFlow: Achieving power efficiency, load balancing, and quality of service in data center networks
CN106201356A (zh) 一种基于链路可用带宽状态的动态数据调度方法
JP2015501991A (ja) 地理的に分散されたデータセンタでのレイテンシ短縮および弾力性改善のための最適化機構
Kang et al. Application of adaptive load balancing algorithm based on minimum traffic in cloud computing architecture
Tuncer et al. Scalable cache management for ISP-operated content delivery services
CN116909735A (zh) 算力调度方法及装置、服务器和存储介质
CN113067863B (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