CN107147734A - 一种基于两级转发的网络流量线程级动态负载均衡方法及系统 - Google Patents
一种基于两级转发的网络流量线程级动态负载均衡方法及系统 Download PDFInfo
- Publication number
- CN107147734A CN107147734A CN201710415776.3A CN201710415776A CN107147734A CN 107147734 A CN107147734 A CN 107147734A CN 201710415776 A CN201710415776 A CN 201710415776A CN 107147734 A CN107147734 A CN 107147734A
- Authority
- CN
- China
- Prior art keywords
- cpu core
- server
- weight
- cpu
- level
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于两级转发的网络流量线程级动态负载均衡方法及系统。本方法为:1)设置一控制器,并在各服务器上设置一状态监控Agent;2)控制器在每个状态采集周期触发采集模块发送采集请求给各Agent采集服务器的CPU核运行状态信息;3)计算模块根据CPU核运行状态信息计算各CPU核的权重;4)执行模块将各核的权重下发到第一级转发设备,如果当前流为新流,则根据核的权重为新流分配目的CPU,然后将该目的CPU所属的服务器序号与CPU核序号填写在输出流量的MAC地址中,并更新流表;如果为已存在流,则按照上一次转发的目的CPU核转发;第二级转发设备根据MAC地址中的服务器序号将流量转发到目的端口。
Description
技术领域
本发明涉及一种网络流量线程级动态负载均衡方法及系统,具体涉及一种基于两级转发的网络流量线程级动态负载均衡方法及系统。
背景技术
在网络流量监控系统中,服务器集群需要获取网络上的流量,并对其进行快速的分析和监测。在这种应用场景下,发送到每一个服务器上的流量必须保证同源同宿,即同一对源IP地址和目的IP地址需要送到同一台服务器上。
目前的方法大多采用一级网络转发设备进行静态调度,选用的网络设备通常为交换机或负载均衡设备。这类设备根据流量的源IP地址和目的IP地址,计算出HASH值,根据HASH值在设备上选择一个端口转发出去。服务器通过网络接口卡接收分配的流量,在网络接口卡上,再计算一遍HASH值,根据HASH值选取一个CPU核对流量进行处理。
然而,在实际应用场景中,服务器各个核之间的负载的大幅波动时有发生,可能导致一部分CPU核负载过高,而此时基于静态的流量调度设备仍然将流量转发至高负载服务器,在服务器上,流量仍然会发给负载高的CPU核,导致流量丢失。因此,必须根据服务器各个核的负载状态进行动态负载均衡。现有的二级交换机只能根据MAC地址将流量转发到某台服务器,无法进行线程级的调度。
同时,在动态调度过程中,为了保证流量同源同宿,需要采用支持大容量流表的负载均衡设备。现有的交换机不支持大容量流表,而一般的负载均衡设备端口数量不能满足大型网络流量处理集群的要求。因此基于一级网络转发设备的静态流量调度系统无法适用于大型网络流量监控系统。
鉴于以上问题,需要基于两级转发的网络流量线程级动态负载均衡方法及系统,来改善网络流量处理集群的性能。
发明内容
本发明提出了一种基于两级转发的网络流量线程级动态负载均衡方法及系统,目的是结合动态负载均衡设备和二层交换设备,实现服务器集群的状态采集和监控,并据此实现服务器集群的动态负载调度。
本发明是通过下述技术方案实现的:
所述方法包括一种基于MAC地址的CPU线程标记方法、基于CPU核的负载采集和调度控制器、基于两级转发设备的流量转发网络。
其中,基于MAC地址的CPU线程级标记方法在MAC地址中选取一段作为CPU核的序号,序号标记的长度和个数可以根据组网拓扑灵活定义。
基于CPU核的负载采集和权重计算控制器通过在服务器上部署采集Agent,采集每个CPU核的利用率及相应的网卡内存队列的利用率,通过加权平均计算出每个CPU核的负载,按照与负载成反比的方法为每一个CPU核分配调度权重。
调度权重下发到两级转发设备的第一级,第一级转发设备需要实时跟踪流量中的流表,根据收到的权重,为新建流分配目的CPU,并将CPU所属的服务器序号与CPU核序号分别填写在输出流量的MAC地址中。而对于当前已经存在的流,按照上一次转发的目的CPU核进行转发,保证同源同宿。
第二级转发设备通常是交换机,根据MAC地址中的服务器序号将流量转发到目的端口。
服务器的网络接口卡根据MAC地址中的CPU核序号将流量转发到目的CPU。
所述方法实现服务器集群监控调度的主要工作流程是:
步骤1:系统初始化阶段,初始化各状态监控Agent、状态采集周期、统计分析配置、调度算法配置、策略配置接口等系统参数和模块。之后,状态监控Agent开始监控运行状态并等待控制器主机采集模块的采集请求,控制器主机开始运行并在每个状态采集周期触发采集模块。初始调度权重为各个CPU核平均接收流量。
步骤2:当到达状态采集周期,控制器采集模块初始化若干状态采集实例,每个实例独立向对应服务器上的Agent请求状态监控结果,从而实现集群中各服务器各个CPU核运行状态的采集,同时将采集结果转译成状态消息,通过内存队列提交给计算模块;
步骤3:控制器计算模块的统计分析子模块根据统计分析配置对状态消息做初步的统计分析产生预处理结果,主要是根据CPU核利用率和网卡各个环的内存利用率计算得到每个CPU核的负载,计算公式如下:
li=kbi+(1-k)ci
其中,li是第i个核的负载,bi是对应的网卡环内存利用率,ci是第i个CPU核利用率,k是0~1之间的系数。
预处理后的负载提交给调度算法子模块,同时定期负责状态消息的管理维护,例如将状态消息更新至管理配置数据库并定期呈现给管理员。
步骤4:控制器计算模块的调度算法子模块负责根据状态消息的预处理结果,以及所配置的调度算法,生成各个CPU核的权重,并将各个CPU核的权重通过内存队列提交给执行模块;
其中:wi(k+1)是第i个CPU核在第k+1个采集周期的权重,wi(k)是第i个CPU核当前的权重,li是第i个核的负载,是所有核负载的平均值,∑li是所有核负载的和。
步骤5:执行模块通过策略配置接口将各个CPU核的权重下发到第一级转发设备,第一级转发设备根据接收的各个CPU核的权重,对新建流量按照新权重进行分发,给权重高的CPU核分发更多流量,给权重低的CPU核分配较少流量。回到步骤2,继续等待下一状态采集周期到达。
本发明的有益效果是:
提出了一种基于两级转发的网络流量线程级动态负载均衡方法及系统,改善了服务器集群的服务器利用率核拥塞率;解决了系统耦合程度高的问题,实现了第一服务器的集群的可管控性、提高了第二调度的效能(例如集群整体丢包率)。
通过实测数据显示,当使用集群整体丢包率指标体现集群运行效能时,本发明所述方法的丢包率降低(优化)幅度为30%左右。
附图说明
图1是本发明中服务器集群监控调度控制器系统的结构示意图。
图2是本发明中服务器集群监控调度控制器方法的工作流程图。
图3为MAC地址示意图。
具体实施方式
下面结合附图和实施例对本发明所述方法进行详细说明。
如图1所示,本发明所述系统由采集模块108、计算模块104、执行模块102和状态监控Agent109组成。采集模块、计算模块、执行模块运行在独立的控制器主机101上,模块间通过内存队列103、107通信。
如图2所示,本发明所述方法在本实施例中的工作流程是:
步骤201、202:系统初始化阶段,初始化各状态状态采集周期、统计分析配置、调度算法配置,以及监控Agent109、策略配置接口113等系统参数和模块。之后,状态监控Agent109开始监控运行状态并等待控制器主机101采集模块108的采集请求,控制器主机开始运行并在每个状态采集周期触发采集模块。
步骤203、204:当到达状态采集周期,采集模块初始化若干状态采集实例,每个实例独立向对应服务器上的Agent请求状态监控结果,从而实现集群110中各服务器运行状态的采集,同时将采集结果转译成状态消息,通过内存队列107提交给计算模块;
步骤205:计算模块的统计分析子模块106根据统计分析配置对状态消息做初步的统计分析产生预处理结果,并将预处理结果提交给调度算法子模块,同时定期负责状态消息的管理维护,例如将状态消息更新至管理配置数据库并定期呈现给管理员;
步骤206:计算模块的调度算法子模块105负责根据状态消息的预处理结果,以及所配置的调度算法,例如Pick-kx算法,生成调度权重,并将调度权重通过内存队列103提交给执行模块;
步骤207:执行模块通过策略配置接口113将调度权重下发到第一级负载分发设备111,例如分流交换机等。
步骤208:第一级负载分发设备接收到调度权重,对新建流量按照各个CPU核的权重进行流量分发,给权重大的CPU分配更多流量。对于当前已经存在的流,按照其上一个包转发的目的进行流量分发,保证同源同宿。转发时,将目的服务器的编号和目的CPU核的编号按照预先约定的格式,填写在输出流量的MAC地址中,如图3所示。
步骤209:第二级转发设备根据MAC地址中的服务器编号将流量转发到目的端口。
步骤210:服务器网络接口卡根据MAC地址中的CPU核编号将流量转发到目的CPU。
回到步骤202,继续等待下一状态采集周期到达。
以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种基于两级转发的网络流量线程级动态负载均衡方法,其步骤为:
1)设置一控制器,并在各服务器上设置一状态监控Agent;
2)控制器在每个状态采集周期触发采集模块发送采集请求给各状态监控Agent;各状态监控Agent将采集所在服务器的CPU核运行状态信息发送给该控制器的计算模块;
3)所述计算模块根据收到各服务器的CPU核运行状态信息计算各CPU核的权重,并将其发送给该控制器的执行模块;
4)所述执行模块将各CPU核的权重下发到两级转发设备的第一级转发设备,如果当前流为一新流,则第一级转发设备根据CPU核的权重为该新流分配目的CPU,然后将该目的CPU所属的服务器序号与CPU核序号分别填写在输出流量的MAC地址中,并更新流表;如果当前流为流表中已经存在的流,则第一级转发设备按照上一次转发的目的CPU核进行转发;第二级转发设备根据MAC地址中的服务器序号将流量转发到目的端口。
2.如权利要求1所述的方法,其特征在于,所述CPU核序号为MAC地址中选取的一段信息。
3.如权利要求2所述的方法,其特征在于,所述第二级转发设备根据流量的MAC地址中的CPU核序号将流量转发到目的CPU。
4.如权利要求1或2或3所述的方法,其特征在于,所述步骤2)中,所述采集模块初始化若干状态采集实例,每个实例独立向对应服务器上的状态监控Agent发送采集请求,状态监控Agent采集所在服务器的CPU核运行状态并将采集结果转译成状态消息,通过内存队列提交给该控制器的计算模块。
5.如权利要求1或2或3所述的方法,其特征在于,所述步骤3)中,所述计算模块根据第i个CPU核利用率及其对应网卡的内存利用率计算得到该CPU核的负载li;然后根据公式计算该CPU核的权重;其中,wi(k+1)是第i个CPU核在第k+1个采集周期的权重,wi(k)是第i个CPU核当前的权重,是所有CPU核负载的平均值。
6.一种基于两级转发的网络流量线程级动态负载均衡系统,其特征在于,包括一控制器和多个状态监控Agent;所述控制器包括采集模块、计算模块和执行模块,各所述状态监控Agent分别设置在不同服务器上;其中,所述控制器在每个状态采集周期触发采集模块发送采集请求给各状态监控Agent;各状态监控Agent将采集所在服务器的CPU核运行状态信息发送给该控制器的计算模块;所述计算模块根据收到各服务器的CPU核运行状态信息计算各CPU核的权重,并将其发送给该控制器的执行模块;所述执行模块将各CPU核的权重下发到两级转发设备的第一级转发设备,如果当前流为一新流,则该第一级转发设备根据CPU核的权重为该新流分配目的CPU,然后将该目的CPU所属的服务器序号与CPU核序号分别填写在输出流量的MAC地址中,并更新流表;如果当前流为流表中已经存在的流,则该第一级转发设备按照上一次转发的目的CPU核进行转发;第二级转发设备根据MAC地址中的服务器序号将流量转发到目的端口。
7.如权利要求6所述的系统,其特征在于,所述CPU核序号为MAC地址中选取的一段信息。
8.如权利要求7所述的系统,其特征在于,所述第二级转发设备根据流量的MAC地址中的CPU核序号将流量转发到目的CPU。
9.如权利要求6或7或8所述的系统,其特征在于,所述采集模块初始化若干状态采集实例,每个实例独立向对应服务器上的状态监控Agent发送采集请求,状态监控Agent采集所在服务器的CPU核运行状态并将采集结果转译成状态消息,通过内存队列提交给该控制器的计算模块。
10.如权利要求6或7或8所述的系统,其特征在于,所述计算模块根据第i个CPU核利用率及其对应网卡的内存利用率计算得到该CPU核的负载li;然后根据公式 计算该CPU核的权重;其中,wi(k+1)是第i个CPU核在第k+1个采集周期的权重,wi(k)是第i个CPU核当前的权重,是所有CPU核负载的平均值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710415776.3A CN107147734A (zh) | 2017-06-05 | 2017-06-05 | 一种基于两级转发的网络流量线程级动态负载均衡方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710415776.3A CN107147734A (zh) | 2017-06-05 | 2017-06-05 | 一种基于两级转发的网络流量线程级动态负载均衡方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107147734A true CN107147734A (zh) | 2017-09-08 |
Family
ID=59780500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710415776.3A Pending CN107147734A (zh) | 2017-06-05 | 2017-06-05 | 一种基于两级转发的网络流量线程级动态负载均衡方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107147734A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351380A (zh) * | 2019-06-03 | 2019-10-18 | 武汉纺织大学 | 一种新存储节点同步任务的分配方法和系统 |
CN111708676A (zh) * | 2020-06-18 | 2020-09-25 | 北京金山云网络技术有限公司 | 实例集群的监控方法、装置和服务器 |
WO2020211408A1 (zh) * | 2019-04-17 | 2020-10-22 | 浙江禾川科技股份有限公司 | 一种图像采集过程中的数据传输方法、系统及相关装置 |
CN112911007A (zh) * | 2021-02-04 | 2021-06-04 | 上海七牛信息技术有限公司 | 一种pcdn资源管理系统及pcdn资源管理方法 |
CN115664951A (zh) * | 2022-12-08 | 2023-01-31 | 中冶南方(武汉)自动化有限公司 | 一种自适应工业数据采集方法、系统及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504620A (zh) * | 2009-03-03 | 2009-08-12 | 华为技术有限公司 | 一种虚拟化集群系统负载平衡方法、装置及系统 |
CN102035737A (zh) * | 2010-12-08 | 2011-04-27 | 北京交通大学 | 一种基于认知网络的自适应负载均衡方法和装置 |
CN103428102A (zh) * | 2013-08-06 | 2013-12-04 | 北京智谷睿拓技术服务有限公司 | 在分布式网络中实现动态负载平衡的方法和系统 |
CN103812750A (zh) * | 2014-02-21 | 2014-05-21 | 上海斐讯数据通信技术有限公司 | 数据通信设备cpu收发报文保护系统及方法 |
CN104158718A (zh) * | 2014-08-25 | 2014-11-19 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
CN106034084A (zh) * | 2015-03-16 | 2016-10-19 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN106502786A (zh) * | 2016-10-08 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种中断分配方法及装置 |
-
2017
- 2017-06-05 CN CN201710415776.3A patent/CN107147734A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504620A (zh) * | 2009-03-03 | 2009-08-12 | 华为技术有限公司 | 一种虚拟化集群系统负载平衡方法、装置及系统 |
CN102035737A (zh) * | 2010-12-08 | 2011-04-27 | 北京交通大学 | 一种基于认知网络的自适应负载均衡方法和装置 |
CN103428102A (zh) * | 2013-08-06 | 2013-12-04 | 北京智谷睿拓技术服务有限公司 | 在分布式网络中实现动态负载平衡的方法和系统 |
CN103812750A (zh) * | 2014-02-21 | 2014-05-21 | 上海斐讯数据通信技术有限公司 | 数据通信设备cpu收发报文保护系统及方法 |
CN104158718A (zh) * | 2014-08-25 | 2014-11-19 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
CN106034084A (zh) * | 2015-03-16 | 2016-10-19 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN106502786A (zh) * | 2016-10-08 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种中断分配方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020211408A1 (zh) * | 2019-04-17 | 2020-10-22 | 浙江禾川科技股份有限公司 | 一种图像采集过程中的数据传输方法、系统及相关装置 |
CN110351380A (zh) * | 2019-06-03 | 2019-10-18 | 武汉纺织大学 | 一种新存储节点同步任务的分配方法和系统 |
CN111708676A (zh) * | 2020-06-18 | 2020-09-25 | 北京金山云网络技术有限公司 | 实例集群的监控方法、装置和服务器 |
CN112911007A (zh) * | 2021-02-04 | 2021-06-04 | 上海七牛信息技术有限公司 | 一种pcdn资源管理系统及pcdn资源管理方法 |
CN115664951A (zh) * | 2022-12-08 | 2023-01-31 | 中冶南方(武汉)自动化有限公司 | 一种自适应工业数据采集方法、系统及存储介质 |
CN115664951B (zh) * | 2022-12-08 | 2023-05-16 | 中冶南方(武汉)自动化有限公司 | 一种自适应工业数据采集方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147734A (zh) | 一种基于两级转发的网络流量线程级动态负载均衡方法及系统 | |
CN108566659A (zh) | 一种基于可靠性的5g网络切片在线映射方法 | |
CN107659419A (zh) | 网络切片方法和系统 | |
CN106130796B (zh) | Sdn网络拓扑流量可视化监控方法及控制终端 | |
CN104468353A (zh) | 基于sdn的数据中心网络流量管理方法 | |
CN109067579A (zh) | 面向底层节点失效的5g网络切片拓扑设计及可靠映射方法 | |
CN103825838B (zh) | 一种数据中心去带宽碎片化流调度方法 | |
CN103294521A (zh) | 一种降低数据中心通信负载及能耗的方法 | |
CN103873523B (zh) | 客户端集群访问方法及装置 | |
CN107579922A (zh) | 网络负载均衡装置和方法 | |
CN110213175A (zh) | 一种面向知识定义网络的智能管控系统及管控方法 | |
CN107465765A (zh) | 一种基于容器云的智能应用网关实现方法 | |
CN107172187A (zh) | 一种负载均衡系统和方法 | |
CN109947574A (zh) | 一种基于雾网络的车辆大数据计算卸载方法 | |
CN104468390B (zh) | 软件定义网络中基于分布‑集中式架构模型的多控制器负载均衡的方法 | |
CN107948103A (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
Guo et al. | AggreFlow: Achieving power efficiency, load balancing, and quality of service in data center networks | |
CN113810205A (zh) | 服务算力信息的上报、接收方法、服务器及数据中心网关 | |
CN106027288A (zh) | 一种配电线路信息监测业务通信流量预测方法 | |
CN106161284B (zh) | 一种资源调度方法及系统 | |
CN107846365A (zh) | 一种基于sdn的负载均衡实现系统及方法 | |
CN107018018A (zh) | 一种基于sdn的服务器增量在线升级方法及系统 | |
CN106648905A (zh) | 一种电力大数据分布控制系统及其构建方法 | |
CN109257282A (zh) | 一种数据传输方法及装置 | |
CN110177056B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170908 |