CN110086731B - 一种云架构下网络数据稳定采集方法 - Google Patents
一种云架构下网络数据稳定采集方法 Download PDFInfo
- Publication number
- CN110086731B CN110086731B CN201910338575.7A CN201910338575A CN110086731B CN 110086731 B CN110086731 B CN 110086731B CN 201910338575 A CN201910338575 A CN 201910338575A CN 110086731 B CN110086731 B CN 110086731B
- Authority
- CN
- China
- Prior art keywords
- kafka
- network data
- columns
- cloud architecture
- orthogonal matrix
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种云架构下网络数据稳定采集方法,其中,包括:OPENVSWITCH虚拟交换机对OVS核心态流表的匹配及更新,并保留OpenvSwitch对Openflow上层协议的支持,进行硬件与OVS用户态之间的流表的访问;kafka消息队列集群采集OPENVSWITCH虚拟交换机中发送的网络数据,在kafka消息队列集群中进行数据分片,并设置多个数据流量接口,进行负载均衡;对KAFA集群的写入量、积压量、消费量以及ISR列表,进行监控,同时对OPENVSWITCHE虚拟交换机进行流量监控;进行kafka集群吞吐量优化。本发明提出一种云架构下网络数据稳定采集方法,对云架构下三层体系结构统筹规划,分别做出了优化,利用机器学习算法最大限度发挥硬件的性能,有效改善云架构下的网络性能,保证网络数采集的稳定性。
Description
技术领域
本发明属信息安全技术领域,特别涉及一种云架构下网络数据稳定采集方法。
背景技术
云计算技术日趋成熟,公认的云架构划分为基础设施层、平台层和软件服务层三个层次。对应名称为IaaS,PaaS和SaaS。目前成熟的云计算平台包括OpenStack,Zstack等。众多企业开始依托于云架构建立自主可控的网络数据采集***。云架构中网络数据采集的稳定性将直接影响企业中其他业务发展和云平台的安全性。随着业务发展,企业云平台中网络数据量呈几何倍增长,在没有任何网络攻击的情况下,其数据采集***就频频出现问题,包括数据采集延迟、数据丢包、甚至采集***瘫痪。很多企业也采取了各种方法来优化数据采集的问题,例如,为云平台重要节点虚拟机分配更多的资源,使用消息队列缓存数据等,但实际效果不佳。因此,云架构下网络数据稳定采集问题受到众多学者的关注。近年来,相关的研究已经取得了一系列重要的成果,但是仍存在以下三点不足之处:
(1)现有方法仅针对云架构单一层次中的网络数据稳定采集问题进行优化,缺少对云平台三层架构的统筹规划,方法适用范围有限,在实际应用中很难保证数据采集的稳定性。
(2)现有方法过度依赖虚拟网络设备,例如OPENSTACK所提供的SDN(软件定义网络)相关虚拟网络设备,网络中重要数据交换节点依旧使用虚拟设备完成,造成网络传输性能瓶颈,给网络数据采集造成困难。
(3)现有方法缺少网络流量监控和主机报警机制,不能对云架构中的网络问题做出及时预警,在某一网络设备已经出现过载问题时,不能及时告警,***依旧向其发送网络数据包,造成网络数据采集不稳定。
发明内容
本发明的目的在于提供一种云架构下网络数据稳定采集方法,用于解决现有技术中存在的问题。
本发明一种云架构下网络数据稳定采集方法,其中,包括:OPENVSWITCH虚拟交换机对OVS核心态流表的匹配及更新,并保留OpenvSwitch对Openflow上层协议的支持,进行硬件与OVS用户态之间的流表的访问;kafka消息队列集群采集OPENVSWITCH虚拟交换机中发送的网络数据,在kafka消息队列集群中进行数据分片,并设置多个数据流量接口,进行负载均衡;对KAFA集群的写入量、积压量、消费量以及ISR列表,进行监控,同时对OPENVSWITCHE虚拟交换机进行流量监控;进行kafka集群吞吐量优化包括:将与Kafka性能无关的特征筛选掉,完成特征初步筛选;根据每个特征对性能的影响程度级别进行特征再次筛选;获得了特征的样本集合之后,搭建Kafka服务器集群作为测试平台,编写代码,并依次修改样本集合中的特征值进行测试,获取每个样本对应的吞吐量;将获得的样本集合与实验获得的吞吐量合并作为一个新的样本集合,通过SVM算法进行学习,并进一步挑选特征值,获得预测模型,验证预测模型的误差值,如果误差值大于一定阈值,则生成新的样本集合并进行实验获得对应的吞吐量,然后重新学习,直到满足误差要求为止;并得到Kafka性能与特征之间的初步预测模型,然后通过加入特征之间相关性与特征边界,重复进行SVM学习,从而得到最终性能预测模型;将预测模型代入到遗传算法中,获得最优解,完成kafka集群吞吐量优化。
本发明提出一种云架构下网络数据稳定采集方法,对云架构下三层体系结构统筹规划,分别做出了优化,利用机器学***台构建时,在满足稳定性要求的同时,能够大量节约资金成本。
附图说明
图1是云平台下网络数据稳定采集模型的总体架构图;
图2是网络基础设施层中OPENVSWITCH虚拟交换机进行稳定性优化的流程图;
图3是KAFKA消息队列集群实现负载均衡示意图;
图4是KAFKA消息队列集群吞吐量优化过程流程图;
图5是云架构软件应用层进行网络流向监控预警过程流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1是云平台下网络数据稳定采集模型的总体架构图,云架构下网络数据稳定采集架构包括:OPENVSWITCH虚拟交换机、kafka消息队列集群、流量监控模块、以及kafka集群吞吐量优化模块。
网络数据基于OPENVSWITCH定义的OPENVSWITCH虚拟交换机进行转发,使用硬件完成对OVS核心态流表的匹配及更新。保留OpenvSwitch对Openflow等上层协议的支持,实现硬件与OVS用户态之间的流表的访问。提高底层网络传输的稳定性。通过软件采集OPENVSWITCH虚拟交换机中发送的网络数据,转发到kafka消息队列集群,在kafka消息队列集群中进行数据分片,并设置多个数据流量接口,进行负载均衡。并可以通过机器学习的方法设置性能参数,提高KAFKA集群的吞吐量。流量监控模块对KAFA集群的写入量、积压量、消费量、ISR列表,进行监控。同时对OPENVSWITCHE虚拟交换机进行流量监控,如发现异常情况及时告警。
图2是网络基础设施层中OPENVSWITCH虚拟交换机进行稳定性优化的流程图,具体流程为:
(1)OPENVSWITCH虚拟交换机的接收流程包括:FPGA板卡收到数据包后,直接在FPGA板卡内部进行查表,然后对数据包进行重新封装,当积攒到一定数量后,硬件发生FPGA中断通知软件,软件根据对应信息,启动DMA将数据从FPGA板卡传输到内存,DMA完成后,软件将一块中的每一条消息拷贝出来重新封装,根据硬件查表结果,通过对应的VPORT发送到对应的OPENVSWITCH虚拟交换机的VM中。
(2)OPENVSWITCH虚拟交换机发送流程包括:OPENVSWITCH虚拟交换机通过虚拟网卡及其绑定的vport,将数据包发送到OPENVSWITCH中,然后对数据包进行重新封装,当积攒到一定数量的数据后,软件启动DMA将数据从内存传输到FPGA板卡上,硬件对每一条数据进行解析,查表,得到对应的输出端口号,最后将数据包从对应的端口发送出去。
图3是KAFKA消息队列集群实现负载均衡示意图,采用多通道方式生产和消费数据实现负载均衡,图4是KAFKA消息队列集群吞吐量优化过程流程图,KAFKA消息队列集群吞吐量优化过程包括:
(1)通过Kafka的官方文档获取其所有的特征,这些特征以表格的形式给出,对每个特征都包括有详细的介绍;
(2)特征初步筛选:关注点是Kafka的吞吐量与相关特征之间的关系,将与Kafka性能无关的特征筛选掉。根据每个特征的描述与作用,将如主机名称配置、主机端口配置等无关特征进行过滤;
(3)特征再次筛选:初步筛选之后,剩余的特征仍然比较多,需要对特征进一步筛选,根据Kafka官方定义,每个特征对性能的影响程度级别,以及专家的推荐,将对性能影响程度最小及专家研究得到的对性能几乎没有影响的特征过滤掉。
(4)进行实验:获得了特征的样本集合之后,需要搭建Kafka服务器集群作为测试平台,然后编写消息源代码、Producer端消息发送代码、Consumer消息消费代码,最后依次修改样本集合中的特征值进行测试,通过Kafka的实时监控工具Kafka Offset Monitor来获取每个样本对应的吞吐量。
(5)SVM建模:将获得的样本集合与实验获得的吞吐量合并作为一个新的样本集合,通过SVM算法进行学习,并进一步挑选特征值,获得预测模型。验证预测模型的误差值,如果误差值较大,说明样本数量太小,需要生成新的样本集合并进行实验获得对应的吞吐量,然后重新学习,直到满足误差要求为止。通过学习,初步得到Kafka性能与特征之间的预测模型,然后通过加入特征之间相关性与特征边界,重复进行SVM学习,从而得到最终性能预测模型;
(6)遗传算法获得最优解:将预测模型代入到遗传算法中,通过遗传算法的各个步骤的处理过程后,从而获得最优解,即Kafka性能最优对应的一组特征。
图5是云架构软件应用层进行网络流向监控预警过程流程图,如图5所示,通过Kafka Offset Monitor,SFLOW进行流量监控,若云平台网络数据采集过程中出现丢包和服务器过载情况,则发出预警信息。以便***维护人员进行KAFKA集群扩容及网络限流操作。
如图2所示,OPENVSWITCH虚拟交换机的稳定性优化流程中包括转换模块、驱动模块、流表模块、动作模块以及端口模块。
如图2所示,datapath模块是OVS用户态的主要模块,包含其他端口模块、流表模块、动作模块和转换模块。由于OVS用户态完全没有修改,所以datapath模块中用于与OVS用户态通信的netlink接口需要全部保留,这是保证硬件对用户态透明的关键。之前OVS用户态下发的datapath,flow,table,vport,execute四种命令,加速后的Openvswitch依然支持。
Datapath模块去掉了table字段。FPGA板卡上只实现了一个“flowtable”。对应的,核心态也只有一个“flowtable"实例,将其挂在了datapath的父节点ovs_net上。其他的变化,例如统计信息stats。在内核线程运行在多CPU环境中时,datapath会对每个内核线程进行数据的统计,而加速后的OPENVSWITCH,真正进行数据转发的发生在FPGA板卡上,所以这里统计信息stats只需要记录一份硬件的数据即可。
如图2所示,端口模块,端口模块现在只负责内部通信,即与虚拟机VM和主机host建立数据连接,所以端口模块还需要完整保留与虚拟机通信Netdev端口以及与主机本身通信的Internal端口。而对于VXLAN端口,只有外部通信才会使用Vxlan协议,端口模块只保留了其创建,删除和统计功能。端口的数据结构与原来一样,没有变化。我们将一部分软硬件端口固定映射。0号端口vport是datapath的默认端口,无法修改配置,所以从1号开始进行固定映射。映射关系如表1:
表1
也就是说,1,2,3号端口vport是固定配置,在新建一个datapath的后,第一件事是去按顺序手动创建两个Netdev端口和一个VXLAN端口。这样软硬件之间才能形成逻辑对应,相当于欺骗OVS用户态,目的是让用户态能下发正确的流表项。这样可以极大简化FPGA硬件的处理逻辑。当FPGA硬件做转发的时候,如果目的端口号是1,那么就将数据包有FPGA板卡上的1号光口发送出去;如果3号,说明这个数据包需要进行VXLAN封装,那么就将其发送给VXLAN处理模块;如果是1,2,3这三个号,那么就发送给PCIE侧处理,发送给软件核心态,再交给虚拟机或者主机。硬件是无法直接与虚拟机进行数据交换的,中间除了需要设备驱动程序和端口以外,由于会有多个虚拟机与同一个FPGA板卡交互,必须还要有一个“中间交换”的过程。例如,FPGA硬件在对一个数据进行查表操作后,会得到该数据包应该转发的端口号,如果是发给host内部的,就会将这个数据包和要发送的端口号一起上传给核心态,在通过对应的端口发送。端口的存储方式由原来的链表修改为数组方式。具体实现的时候,将端口表作为一个hash表来使用。表长为1024,一方面是为了使用位运算“a&(b-l)”去替代“a%b”以加速计算,另一方面是经过调研,一般情况下是不可能使用超过一千多个端口的,所以1024的表长足够。这样当FPGA硬件上传一个数据包后,可以0(1)定位到端口,进行转发。
如图2所示,流表模块主要用于实现核心态的流表的dump功能。其实软件的流表己经不会被用于查询功能,软件侧的流表实际上是硬件上流表的一“影子表”。OPENVSWITCH中,dump操作非常重要,是OVS用户态和核心态之间实现信息同步的关键。在实际运行中,OVS用户态会不断的下发针对datapath,端口和流表的dump命令,主要目的是同步统计信息,用户使用“ovs-dpctl dump-flows”就是通过下发流表的dump命令实现的。根据运行时的打印日志,发现OVS用户态下发dump命令的频率非常高,平均一秒钟3到5次。这其实是合理的,例如,流表中流表项,默认老化时间是2秒,即如果这条流表项空闲时间超过2秒,就需要被删除,OVS用户态就会下发流表的delete命令,所以下发dump命令的间隔就需要在2秒以内,并且频率越高,误差就越小。但是在软硬件结合***中,流表的统计信息由硬件统计维护的,如果依然使用如此高的频率不断的从FPGA硬件中,将整个流表的统计信息读上来,这样会占用很多的带宽,并且会需要经常对表进行加锁(软件中可以使用RCY锁,允许同时读写,而硬件是无法实现这样的功能的)。若希望将软硬件之间更多的带宽用于数据的转发,所以在软件部分,实现一个与硬件结构相同的流表影子表。这样,对ovs用户态的dump命令的响应,还是完全由软件流表来实现,以减轻硬件的负担。对于流表的实时统计信息,硬件会定期上报,但是频率要比用户态的dump频率低很多。这样会时流量统计信息,老化时间等有一定的延迟,但经讨论认为,这是可以接受的。
在硬件上流表是顺序存储结构,与之对应,在软件中流表使用数组进行存储,根据硬件资源,目前最多支持1024条流表项。硬件中流表给每条流表项进行唯一标识符,根据流表项存储位置,从0开始编号,正好对应软件中流表数组的下角标。当硬件定时上传流表统计信息后,软件的流表根据对应的标识进行数据更新。
如图4所示,KAFKA集群吞吐量优化步骤的一实施例,其中性能预测模型的建立和最优解选择包括:
性能预测模型的建立:根据Kafka官方给出的定义以及专家给出的建议,每个特征的水平取3个,其中默认值作为一个,剩余两个需要在满足每个特征的取值范围的基础上,一个要小于默认值,另外一个要大于默认值,这两个水平的取值需要根据每个特征的特性,比如buffer.memory这个特征,默认值为33554432Byte,而剩下的两个水平的差距以16为倍数,他们分别是2097152Byte与536870912Byte。而producer.type这个特征的水平取值仅有sync和async两种。
接下来需要对选择出来的平台性能特征进行组合,19个特征,每个特征的水平数为3,那么组合样本为319个,已经达到了亿级别,所以需要通过正交试验设计挑选出部分具有代表性的样本集合加以实验。当实现次数非常多时,就需要选择一部分有代表性的样本进行试验。正交试验设计可以根据正交性从所有的样本中挑选出最具有代表性的样本进行试验,具有高效、经济、快速的特点。
使用L表示正交矩阵,N表示样本的组合个数,即正交矩阵的行数,M表示特征个数,S表示特征的水平数,那么正交试验设计的结果正交矩阵的表示方式如下所示公式:
LN(SM)=[ai,j]N×M 公式1
其中[ai,j]M×N表示在第i个特征组合的样本中,第j个特征的水平取值为ai,j。根据正交表的特性,试验次数(正交矩阵的行数)=Σ(每列水平数–1)+1公式如下:
为了方便进行正交矩阵的求解,用SH替代N其中H表示一个正整数,替代之
后的结果如下式:
公式进一步转换,去掉求和符号,那么转换之后的公式如下:
基于本次试验,S的取值为3,M的取值为19,将S与M的实际值代入公式,接下来需要根据公式就可以求出H的取值,H的求解结果为4,N的求解结果为81。这样就得出了正交矩阵的行数为81,那么最后的正交矩阵为81行19列的正交矩阵,接下来需要根据j进行求解正交矩阵,那么在正交矩阵[ai,j]M×N中用aj表示第j列,j=1,2(S2-1)/(S-1)+1,(S3-1)/(S-1)+1,...,(SJ-1-1)/(S-1)+1表示的列成为基本列,剩余列成为非基本列,首先求解正交矩阵的基本列,
然后求解非基本列。
第一步求解正交矩阵的基本列,其求解过程的基本操作如表2所示。
表2
求解正交矩阵基本列步骤如表2所示,由于H的取值已经由公式4取得,接下来需要嵌套两次循环,其中外部循环的次数由H来控制,求得的结果为正交矩阵的第几列,所有求出的列为基本列,第二层的循环次数仍由H来控制,不过循环的次数与矩阵的行数相等,最终求得的结果为第j列特征的每一行水平取值。本次试验的正交矩阵为L81(319),以构造正交矩阵的基本列a1,a2为例,当k的取值为1时,那么得到的结果为a1=[000...000111...111222...222]T,其中0、1、2分别代表第1个特征的第一个、第二个、第三个水平,出现0、1、2的个数是相等的。当k的取值为2时,得到的结果为:当k的取值为2时,得到的结果为:a2=[0...01...12...20...01...12...20...01...12...2]T;
第二步求解正交矩阵的非基本列,基本操作如表3所示:
表3
求解正交矩阵的非基本列的步骤如表3所示,其中包含了三层循环,第一层循环求解正交矩阵的第几列,第二层与第三层循环的结果是求解该列特征每一层的水平取值。以构造正交矩阵的非基本列为例,a3,a4为例,a3经过计算后的求解结果为:a3=[0...01...12...21...12...20...02...20...01...1]T,a4经过计算后的求解结果为:a4=[0...01...12...22...20...01...11...12...20...0]T。
第三步求解正交矩阵的最后结果,求解正交矩阵的最后一步是对所有的基本列与非基本列的所有的水平都自动添加值1,进行这一步主要是为了跟水平对应起来,这样最后结果求得的第一列的水平为1,其代表的含义是第一列表示的特征的水平为其第一个水平值。以a3,a4为例,在步骤二基础上添加1之后,最后的对应矩阵为:a3=[1...12...23...32...23...31...13...31...12...2]T a4=[1...12...23...33...31...12...22...23...31...1]T。
通过以上三步算法,就可以得到从319个样本空间中选择出具有代表性的81组样本集合,即L81(319)的正交矩阵结果,接下来需要根据样本集合进行相关的实验获取对应性能,然后将性能与其对应的特征样本作为一个整体构成一个新的样本,作为接下里机器学习的训练样本。
本发明一种云架构下网络数据稳定采集方法,该方法涵盖云架构三层体系中网络数据采集的分层优化流程,依次为基础设施层优化、平台层优化和软件服务层优化。本发明认为云平台数据采集的稳定性是云架构下三层体系结构共同维护的,单一优化某一层不能有效保证数据采集的稳定性,例如,单纯的加大平台层中虚拟服务器的带宽,但是基础架构层所依赖的虚拟网络路由器已经达到性能极限,不能支持平台的正常网络通信,同样是造成网络数据采集不稳定的重要因素。因此本方法通过统筹规划云架构各层次中网络数据采集所涉及的问题,分层优化,实现云架构下网络数据的稳定采集。
本架构方法在基础设施层(IaaS),基于OPENVSWITCH组建网络,使用软硬件结策略,依靠硬件完成OVS核心态流表的查找过程,解决SDN(软件定义网络)的性能瓶颈,使得云平台底层网络稳定可控,并通过QOS对网络设备流量进行统计,以便在数据量过大的情况下对底层网络进行限流。在平台层(PaaS)依靠KAFKA集群缓存采集到的网络数据,解决网络数据通过LOGSTASH等软件采集后直接存储ELASTICSEARCH(数据库)***资源占用率过高的问题。并且基于KFAKA特征参数及专家经验组成训练样本,训练基于SVM(支持向量机)的KAFKA集群参数性能预测模型,使用遗传算法在预测模型中找到KAFKA集群参数的最优匹配,有效提高KAFKA集群的吞吐量。在软件层(SaaS)对基础设施层和平台层KAFKA集群采集到的数据进行监控,实现网络流量预警。
本发明使用遗传算法对KAFKA性能预测模型进行优化,从而实现性能最优的目标。遗传算法以群体为基础,实现对参数进行编码,而且可以同时进行搜索多个点的编码,采用了随机策略,具有自适应和自主学习的特性。遗传算法主要实现包括参数编码、初始化种群、解码、适应度函数、选择、交叉、变异、生成最优个体等几个方面的内容。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种云架构下网络数据稳定采集方法,其特征在于,包括:
在基础设施层,OPENVSWITCH虚拟交换机对OVS核心态流表的匹配及更新,并保留OpenvSwitch对Openflow上层协议的支持,进行硬件与OVS用户态之间的流表的访问;在平台层,kafka消息队列集群采集OPENVSWITCH虚拟交换机中发送的网络数据,在kafka消息队列集群中进行数据分片,并设置多个数据流量接口,进行负载均衡;在软件层对KAFA集群的写入量、积压量、消费量以及ISR列表,进行监控,同时对OPENVSWITCHE虚拟交换机进行流量监控;
在平台层进行kafka集群吞吐量优化包括:将与Kafka性能无关的特征筛选掉,完成特征初步筛选;根据每个特征对性能的影响程度级别进行特征再次筛选;获得了特征的样本集合之后,搭建Kafka服务器集群作为测试平台,编写代码,并依次修改样本集合中的特征值进行测试,获取每个样本对应的吞吐量;将获得的样本集合与实验获得的吞吐量合并作为一个新的样本集合,通过SVM算法进行学习,并进一步挑选特征值,获得预测模型,验证预测模型的误差值,如果误差值大于一定阈值,则生成新的样本集合并进行实验获得对应的吞吐量,然后重新学习,直到满足误差要求为止;并得到Kafka性能与特征之间的初步预测模型,然后通过加入特征之间相关性与特征边界,重复进行SVM学习,从而得到最终性能预测模型;将预测模型代入到遗传算法中,获得最优解,完成kafka集群吞吐量优化;
在基础设施层,OPENVSWITCHE虚拟交换机使用硬件完成对OVS核心态流表的匹配及更新,在软件层,对OPENVSWITCHE虚拟交换机进行流量监控,如发现异常情况及时告警。
2.如权利要求1所述的云架构下网络数据稳定采集方法,其特征在于,OPENVSWITCH虚拟交换机的接收流程包括:FPGA板卡收到数据包后,在FPGA板卡内部进行查表,然后对数据包进行重新封装,当积攒到一定数量后,硬件发生FPGA中断,并启动DMA将数据从FPGA板卡传输到内存,DMA完成后,软件将一块中的每一条消息拷贝出来重新封装,根据硬件查表结果,通过对应的端口发送到对应的OPENVSWITCH虚拟交换机的VM中。
3.如权利要求1所述的云架构下网络数据稳定采集方法,其特征在于,OPENVSWITCH虚拟交换机发送流程包括:OPENVSWITCH虚拟交换机通过虚拟网卡及其绑定的端口,将数据包发送,并对数据包进行重新封装,当积攒到一定数量的数据后,软件启动DMA将数据从内存传输到FPGA板卡上,对每一条数据进行解析和查表,得到对应的输出端口号,将数据包从对应的端口发送出去。
4.如权利要求1所述的云架构下网络数据稳定采集方法,其特征在于,KAFKA消息队列集群吞吐量优化过程中通过Kafka的官方文档获取其所有的特征。
5.如权利要求1所述的云架构下网络数据稳定采集方法,其特征在于,KAFKA消息队列集群吞吐量优化过程中,编写代码包括编写消息源代码、Producer端消息发送代码以及Consumer消息消费代码。
6.如权利要求1所述的云架构下网络数据稳定采集方法,其特征在于,性能预测模型的建立和最优解选择包括:
对选择出来的平台性能特征进行组合;
使用L表示正交矩阵,N表示样本的组合个数,即正交矩阵的行数,M表示特征个数,S表示特征的水平数,那么正交试验设计的结果正交矩阵的表示方式如下所示公式:
LN(SM)=[ai,j]N×M 公式1;
其中[ai,j]N×M表示在第i个特征组合的样本中,第j个特征的水平取值为ai,j;根据正交表的特性,试验次数=Σ(每列水平数–1)+1公式如下:
用SH替代O其中H表示一个正整数,替代之后的结果如下式:
公式进一步转换,去掉求和符号,转换之后的公式如下:
根据公式就可以求出H的取值,根据j进行求解正交矩阵,那么在正交矩阵[ai,j]N×M中用aj表示第j列,j=1,2(S2-1)/(S-1)+1,(S3-1)/(S-1)+1,...,(SJ-1-1)/(S-1)+1表示的列成为基本列,剩余列成为非基本列,求解正交矩阵的基本列以及非基本列;
得到样本空间中选择出具有代表性的样本集合的正交矩阵结果,根据样本集合进行相关的实验获取对应性能,然后将性能与对应的特征样本作为一个整体构成一个新的样本,作为机器学习的训练样本。
7.如权利要求6所述的云架构下网络数据稳定采集方法,其特征在于,每个平台性能特征的水平取3个,其中默认值作为一个,剩余两个需要在满足每个特征的取值范围的基础上,一个要小于默认值,另外一个要大于默认值。
8.如权利要求6所述的云架构下网络数据稳定采集方法,其特征在于,求解正交矩阵的基本列包括:由于H的取值已经由公式4取得,嵌套两次循环,其中外部循环的次数由H来控制,求得的结果为正交矩阵的第几列,所有求出的列为基本列,第二层的循环次数仍由H来控制,循环的次数与矩阵的行数相等,最终求得的结果为第j列特征的每一行水平取值;
求解正交矩阵的非基本列,求解正交矩阵的非基本列的步骤包含三层循环,第一层循环求解正交矩阵的第几列,第二层与第三层循环的结果是求解该列特征每一层的水平取值;
求解正交矩阵的结果,求解正交矩阵对所有的基本列与非基本列的所有的水平都自动添加值1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910338575.7A CN110086731B (zh) | 2019-04-25 | 2019-04-25 | 一种云架构下网络数据稳定采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910338575.7A CN110086731B (zh) | 2019-04-25 | 2019-04-25 | 一种云架构下网络数据稳定采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110086731A CN110086731A (zh) | 2019-08-02 |
CN110086731B true CN110086731B (zh) | 2021-09-17 |
Family
ID=67416708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910338575.7A Active CN110086731B (zh) | 2019-04-25 | 2019-04-25 | 一种云架构下网络数据稳定采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110086731B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115486046B (zh) * | 2020-05-14 | 2024-06-11 | 深圳市欢太科技有限公司 | 基于开放虚拟软交换机ovs的数据包处理方法及设备 |
CN114489574B (zh) * | 2020-11-12 | 2022-10-14 | 深圳先进技术研究院 | 一种基于svm的流处理框架的自动调优方法 |
CN116723162B (zh) * | 2023-08-10 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种网络首包处理方法、***、装置、介质及异构设备 |
CN117033158A (zh) * | 2023-10-09 | 2023-11-10 | 深圳市金众工程检验检测有限公司 | 一种基于云平台的综合性能监测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984600A (zh) * | 2014-05-07 | 2014-08-13 | 丽水桉阳生物科技有限公司 | 一种基于云计算的财务数据处理方法 |
CN105023100A (zh) * | 2015-07-17 | 2015-11-04 | 云南电网有限责任公司信息中心 | 针对平台软件的数据库与中间件非指标量化管理平台 |
CN106716404A (zh) * | 2014-09-24 | 2017-05-24 | 甲骨文国际公司 | 计算机子网内的代理服务器 |
CN107748943A (zh) * | 2017-12-01 | 2018-03-02 | 沈阳工程学院 | 一种基于云计算的电网电力负荷管理预测方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8660129B1 (en) * | 2012-02-02 | 2014-02-25 | Cisco Technology, Inc. | Fully distributed routing over a user-configured on-demand virtual network for infrastructure-as-a-service (IaaS) on hybrid cloud networks |
CN104298543A (zh) * | 2014-11-07 | 2015-01-21 | 陈桂芳 | 一种openflow交换机一虚多的实现方法 |
CN106293872A (zh) * | 2016-07-27 | 2017-01-04 | 云南电网有限责任公司信息中心 | 一种基于资源池化的sla资源均衡管控方法 |
CN106254181A (zh) * | 2016-08-16 | 2016-12-21 | 浪潮(北京)电子信息产业有限公司 | 虚拟交换机流量监控的方法、***及虚拟交换机 |
CN107360026B (zh) * | 2017-07-07 | 2020-05-19 | 西安电子科技大学 | 分布式消息中间件性能预测与建模方法 |
CN108153918B (zh) * | 2018-02-05 | 2021-07-30 | 北京工业大学 | 基于自适应正交交叉的多目标优化算法的个性化电影推荐方法 |
CN109218161A (zh) * | 2018-10-24 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种虚拟交换机转发数据的方法及装置 |
-
2019
- 2019-04-25 CN CN201910338575.7A patent/CN110086731B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984600A (zh) * | 2014-05-07 | 2014-08-13 | 丽水桉阳生物科技有限公司 | 一种基于云计算的财务数据处理方法 |
CN106716404A (zh) * | 2014-09-24 | 2017-05-24 | 甲骨文国际公司 | 计算机子网内的代理服务器 |
CN105023100A (zh) * | 2015-07-17 | 2015-11-04 | 云南电网有限责任公司信息中心 | 针对平台软件的数据库与中间件非指标量化管理平台 |
CN107748943A (zh) * | 2017-12-01 | 2018-03-02 | 沈阳工程学院 | 一种基于云计算的电网电力负荷管理预测方法 |
Non-Patent Citations (3)
Title |
---|
《Design and implementation of a cloud-based IoT scheme for precision agriculture》;Ahmed Khattab; Ahmed Abdelgawad;《2016 28th International Conference on Microelectronics (ICM)》;20170209;全文 * |
《云环境下无线传感器网络服务研究》;冯黎明;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140215;全文 * |
《云计算架构研究》;陆红;《河南科技》;20130430;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110086731A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110086731B (zh) | 一种云架构下网络数据稳定采集方法 | |
Hsieh et al. | Gaia:{Geo-Distributed} machine learning approaching {LAN} speeds | |
Liu et al. | Content popularity prediction and caching for ICN: A deep learning approach with SDN | |
US9819731B1 (en) | Distributing global values in a graph processing system | |
CN109104373B (zh) | 网络拥塞的处理方法、装置及*** | |
US11652744B1 (en) | Multi-stage prefix matching enhancements | |
CN103886508A (zh) | 海量农田数据的监控方法和*** | |
CN110347636A (zh) | 数据执行体及其数据处理方法 | |
Li et al. | A survey of sketches in traffic measurement: Design, optimization, application and implementation | |
CN110912826A (zh) | 利用acl扩充ipfix表项的方法及装置 | |
US20160142316A1 (en) | Apparatus and method for scalable and flexible table search in a network switch | |
CN114357676A (zh) | 一种针对层次化模型训练框架的聚合频率控制方法 | |
CN108519994A (zh) | 基于Pregel的分布式起源保障正则路径查询算法 | |
Cen et al. | Developing a disaster surveillance system based on wireless sensor network and cloud platform | |
US11809421B2 (en) | System and method for data analytics | |
CN112199154B (zh) | 一种基于分布式协同采样中心式优化的强化学习训练***及方法 | |
CN111221646A (zh) | 分布式机器学习的参数同步方法及装置 | |
Zhou et al. | TSEngine: Enable efficient communication overlay in distributed machine learning in WANs | |
Yang et al. | SwitchAgg: A further step towards in-network computing | |
CN103078808B (zh) | 适用于多流正则表达式匹配的数据流交换复用***及方法 | |
CN114895985A (zh) | 一种面向基于采样的图神经网络训练的数据加载*** | |
CN111835791B (zh) | 一种bgp安全事件快速检测*** | |
Liu et al. | Distributed and real-time query framework for processing participatory sensing data streams | |
CN108491167B (zh) | 一种工业过程工况数据快速随机分布存储方法 | |
CN112134738A (zh) | 基于复合二维Sketch的网络多维度数据流仿真装置 |
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 |