没有合适的资源?快使用搜索试试~ 我知道了~
埃及信息学杂志22(2021)417基于软件定义网络的云数据中心分布式应用异常检测与瓶颈识别Ahmed M.放大图片作者:El-Shamya,Nawal A.El-Fishawyb,Gamal Attiyab,Mokhtar A.A. 穆罕默德ba埃及开罗加拿大国际学院商业技术系b埃及梅努夫梅努菲亚大学电子工程学院计算机科学与工程阿提奇莱因福奥文章历史记录:2020年9月30日收到2020年12月18日修订2021年1月5日接受2021年1月20日在线提供保留字:云数据中心网络软件定义网络异常检测瓶颈识别机器学习分布式应用支持向量机A B S T R A C T云计算应用在过去十年中迅速增长,许多组织正在将其应用迁移到云数据中心,因为他们期望高性能,可靠性和最佳服务质量。数据中心部署各种技术,例如软件定义网络(SDN),以有效地管理其资源。SDN方法是一种高度灵活的网络架构,其使用集中式控制器来自动化网络配置以克服传统网络限制。提出了一种基于SDN的云数据中心分布式应用性能异常监测算法,利用支持向量机算法检测云数据中心分布式应用的性能异常,识别云数据中心分布式应用的瓶颈。它从网络设备收集数据,并计算用于训练SVM算法的分布式应用组件的性能度量,并构建分布式应用的正常行为的基线模型。SVM模型使用单类支持向量机(OCSVM)和多类支持向量机(MCSVM)算法检测性能异常行为并识别瓶颈的根本原因。所提出的方法不需要任何知识的运行应用程序或依赖于静态阈值的性能测量。仿真结果表明,与统计方法、朴素贝叶斯分类器和决策树机器学习方法相比,该方法能有效地检测和定位故障,且精度高、开销小。©2021 THE COUNTORS.出版社:Elsevier BV代表计算机和人工智能学院开罗大学法律系这是一篇CC BY-NC-ND许可证下的开放获取文章(http://creative-commons.org/licenses/by-nc-nd/4.0/)上提供。1. 介绍云计算(CC)依赖于数据中心(DC)网络来使用不同的网络设备(如交换机、路由器、防火墙和负载均衡器)连接服务器和存储系统。云计算托管各种类型的分布式应用,例如搜索引擎、社交网络服务、金融服务、高性能计算和大数据分析应用[1]。分布式应用程序在多个服务器上运行,以提供高可伸缩性、可靠性和性能,从而支持增加的工作负载容量。这些应用程序产生大量的流量,必须由处理请求的服务器和承载流量的网络*通讯作者。电子邮件地址:ahmed_elshamy@cic-cairo.com(A.M. El-Shamy),nelfisha-wy@hotmail.com(N. A. El-Fishawy),gamal. yahoo.com(G. 阿提亚),莫赫塔尔。 mohamed@el-eng.menofia.edu.eg(M. A. A. Mohamed)。开罗大学计算机和人工智能系负责同行审查因此,如果云数据中心(CDC)资源管理不善,应用程序性能可能会受到影响和降低,并可能导致服务器过载或网络拥塞。在过去的十年中,个人、公司和组织越来越多地依赖云计算来运行规模和复杂性不断增长的各种应用程序。应用程序开发人员和云运营商正在寻找一种解决方案来监控应用程序、检测性能异常并识别僵尸网络[2]。分布式系统的监控和故障排除是困难的,因为潜在的问题可能是由于不同的原因,包括硬件故障、软件错误配置、应用程序错误或网络问题[3]。大多数Web应用程序体系结构由多个分布式组织层组成,这些分布式组织层相互交互,并通过CDC网络基础设施交换大量数据。因此,应用性能高度依赖于连接应用组件的网络性能在CDC上部署分布式应用是一项具有挑战性的任务,https://doi.org/10.1016/j.eij.2021.01.0011110-8665/©2021 THE COMEORS.出版社:Elsevier BV代表开罗大学计算机和人工智能学院。这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表埃及信息学杂志杂志主页:www.sciencedirect.comA. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417418阶段必须同时考虑应用程序工作负载和DC基础架构配置。为了在CDC上托管分布式应用程序,云计算租户根据其设计目标(如高性能和可用性)从云提供商租用具有所需数量和硬件规格的一组虚拟机(VM)[4]。在CDC上部署分布式应用程序有几个选项,如下所示:1)简单的配置是每个层只有一个VM,如图1所示。 1-a。2)用于前端Web服务器层的两个或更多个VM的集群,并使用负载均衡器在它们之间分配传入负载以支持大量请求,而用于另一层的单个VM,如图所示。 1-b 3)用于前端Web服务器和应用服务器层的两个或更多个VM的集群,并使用负载平衡在它们之间分配负载,并且数据库层只有一个VM,如图1-c所示。4)每个层(包括数据库层)有两个或更多VM的集群,并在数据库VM之间实现复制,以提高可用性和可靠性,如图所示。 1-d。由于上述实现场景,分布式应用程序设计是复杂的,并且可能在其组件的任何层中遭受性能瓶颈。云提供商应优化应用程序性能,避免组件之间的瓶颈。但是,他们不知道这些虚拟机是如何配置的,其中运行的是什么,逻辑上是联系在一起的,最后是应用需求。同时,云提供商有更多的选择来将这些VM分配到实际的物理服务器中,将它们设置在同一服务器上或将它们放置在不同的服务器中,以减少物理服务器崩溃的影响。出于节能或维护原因,VM可以从当前物理服务器迁移到另一台服务器[5]。根据最近的研究[6],与数据中心间流量和面向用户的流量相比,数据中心内流量以令人难以置信的增长持续增长。 数据中心内的流量产生于服务器和分布式应用组件之间,给网络设备带来了很大的负载。云运营商必须拥有监控和管理工具,以避免任何性能下降,提高应用程序的服务质量(QoS),并提高资源利用率。网络监控工具的主要功能包括检测有害的性能行为,识别瓶颈 DC网络必须满足各种应用要求,例如低延迟、高数据速率和带宽保证,以实现高效的应用云服务提供商面临的最大挑战是检测性能异常,并为在DC上运行的各种应用程序提供所需的QoS。这些应用具有不同的特性和不同的负载。分布式应用程序组件部署在多个物理和虚拟机上。它们可以通过DC网络调整大小或移动,这使得很难找到性能问题的根源[5]。 Web应用程序开发人员和企业面临的最著名的挑战之一是充分调整其基础设施的规模,以提供租户所需的QoS。因此,监控DC基础结构并分析性能指标对于发现异常行为并确保通过提供不同级别的优先级、带宽和延迟,根据应用程序的要求[9]。基于软件定义网络(SDN)的云数据中心越来越被接受,并提供了许多好处,包括网络可编程性、资源的有效利用、减少运营成本、成本,更好的网络管理和鼓励创新[10]。基于SDN的网络监控解决方案通过使用OpenFlow协议向交换机发送指令来仔细选择要监控的流量流,从而快速、灵活且可扩展,且不会影响网络性能[11,12]。分布式应用程序的有效性能监控提供了许多宝贵的好处,例如1)跟踪运行中的应用程序性能,以确保业务关键型应用程序按预期执行,并以所需的质量交付给最终用户。2)通过了解以前和当前的状态、调查错误并采取适当的措施以避免将来发生故障或从故障中快速恢复,有助于对应用程序问题和网络配置错误进行故障排除和诊断。3)改进容量规划流程以确定DC基础架构的未来资源需求。4)增强网络安全性并提高分布式系统的可靠性。5)计费目的和财务会计服务[13]。本文的主要贡献包括一个算法,发现性能异常行为和识别瓶颈,在分布式应用程序使用SDN。所提出的方法监视应用程序和网络基础设施的实时性能,而无需事先了解正在运行的应用程序或应用程序插装的需要。SDN控制器从各种网络交换机收集数据并计算以下性能指标:(1)对于应用,我们计算每个应用层的响应时间、吞吐量和会话数量,(2)对于网络,我们计算每个网络链路的分组丢失、延迟和可用带宽。(1) 应用程序和网络性能指标,用于训练SVM算法并构建DC上分布式应用程序正常行为的基线模型该算法分两步检测性能异常行为并(2) 异常检测采用单类支持向量机(OCSVM)算法,通过跟踪前端服务器的响应时间,对前端服务器的性能进行分类,判断应用程序的行为是正常还是异常。使用多类支持向量机(MCSVM)算法确定瓶颈的根本原因,该算法确定问题是由于网络问题(数据包丢失、延迟或带宽)或终端主机问题。该算法使选择性监控,ING只在交换机端口上与此应用程序的流量,以尽量减少收集的数据,并加快识别过程。最后,该算法通知瓶颈源的管理员采取纠正措施。本文的其余部分组织如下。第2概述了SDN技术和应用性能检测方法。第三部分介绍了分布式应用程序异常检测方法的研究现状。第4节描述了所提出的算法的设计。第5节讨论并分析了仿真结果。最后,第6节对本文进行了总结。2. 背景本节概述SDN技术和应用性能检测方法。2.1. 软件定义网络SDN是一种高度灵活的网络管理技术,可以实现更自动化的配置和基于策略的A. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417419Fig. 1. 分布式应用程序部署方案。网络资源管理[13]。它将网络设备的网络控制平面与转发网络流量的底层数据平面SDN控制器是SDN技术中的核心元件,其集中管理网络设备以使用分组报头信息(如MAC地址、IP地址、端口号、协议类型和许多其他信息)来转发业务流。而在传统的网络架构中,各个网络设备使用目的地IP地址在IP网络之间路由数据包,并使用目的地MAC地址在LAN网络中交换数据包[14]。SDN框架由三层组成[15],如图2所示。(1)基础设施层,也称为数据平面,包含交换机和路由器等网络设备它转发了根据从所述控制器接收到的规则来生成网络分组(2)控制层是SDN网络的大脑,通过OpenFlow协议将规则安装到转发表中,集中管理所有网络设备。(3)应用层定义网络行为,并使用北向API接口与控制器通信,作为代表性状态传输[16],以发送指令并从控制器检索信息。为了有效地管理DC网络,SDN控制器具有所有网络组件的全局视图。它通过南向接口建立与网络设备的连接,作为开放流协议,以监控和收集关于网络拓扑和链路利用率的信息[17]。A. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417420图二. SDN框架[10]。2.2. 分布式应用性能异常检测方法有效的分布式应用程序监控解决方案需要从DC的基础设施和性能指标分析中收集现有的监控方法分为两大类:基于网络的解决方案和基于主机的解决方案,如下一节所述。2.2.1. 基于网络的监控使用网络流量监控应用程序依赖于捕获流量信息并对其进行分析以评估其性能。这些方法分为两种技术[18]。(1)被动监测方法观察跨网络节点传输的流量。这些方法不会影响网络性能,因为它们不会注入额外的网络流量,并且通常用于运营数据中心网络。但是,他们需要安装多个难以实现的监控点,并且可能需要很长时间才能发现静默应用程序。(2)主动方法通过向网络中注入数据包或修改数据包来监控网络性能。这种额外的负载会影响测量的准确性,并可能导致网络过载。这种方法的假阳性率较低;但是,它不能用于生产DC,因为它可能会降低其性能[19]。2.2.2. 基于主机的监控基于主机的监控方法可分为(1)应用程序检测方法,在应用程序级别注入软件代码以监控和收集应用程序性能指标[20]。(2)系统监控方法在操作系统级安装软件代理,收集性能指标关于系统资源,如处理器、内存、硬盘和网络流量[21]。虽然基于主机的监控方法比基于网络的方法更准确,但检测过程可能会影响终端主机的性能,使其不太实用。此外,这种方法很难在DC网络中实现,因为它会修改应用程序的源代码[22]。2.3. 应用程序性能异常检测技术有许多方法可以检测性能异常,包括统计分析、机器学习、信息理论[23]和基于k-最近邻的技术[24]。前两种技术在大多数以前的研究中常用,并且与本文主题相关,因此接下来的两节将对这两种技术进行描述。2.3.1. 统计分析统计方法观察系统行为随时间的变化,并分析数据之间的关系,以建立模型来了解潜在的系统动态[25,26]。统计方法可以分为两类:(1)参数技术是基于被称为先验的收集数据的一些特性。这些方法的例子是; Tukey非参数技术基于对所收集数据的一些假设,例如用于估计数据分布的直方图[27]。2.3.2. 机器学习有三种类型的机器学习方法:(1)监督学习方法在训练阶段使用标记数据,其中包含正常和异常数据。这些的实例A. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417421方法是支持向量机,决策树,回归和朴素贝叶斯。虽然这些方法实现了高精度,但它们不能检测到训练数据中不存在的未知异常。很难获得包含所有异常类型的训练数据[28]。(2)半监督学习方法在训练过程中将少量标记数据与大量标记数据相结合。(3)无监督学习方法开发了一个模型来描述未标记数据的隐藏结构。它不需要任何标记数据进行训练。主成分分析,关联规则挖掘和聚类方法是这种方法的例子。由于缺乏标签数据,这些方法适用于实际环境,但它们的效率低于监督方法[29]。3. 相关工作本节概述了使用SDN进行网络监控的情况,SDN在过去十年中一直在研究,下一部分将对此进行解释Liu等人[30]提出了NetAlytics,一个使用SDN的云数据中心的网络监控框架他们的系统在处理引擎中收集但对该搜索有一些评论,包括他们没有定义监控系统和处理引擎的位置和所需数量。所提出的算法没有提出计算平均值的算法或诊断应用程序最后,他们没有提出任何行动或建议来改进低性能的应用程序层。Chowdhury等人。[31]关注监控准确性、及时性和网络开销之间的权衡。该模型支持各种监控目标,如性能,容错和安全。但他们的模型并没有将网络和运行应用程序的性能指标联系起来。他们没有提出一种方法来计算性能指标的正常值,以检测异常。Fu等人[32]提出了一种测量丢包率的监控方法。同时,Yuan等人[33]通过将模糊逻辑与OpenFlow消息相结合来监测链路利用率,以观察网络流量并获得流量统计数据。Megyesi等人[34]测量任意两台交换机之间链路的可用带宽。这些解决方案主要关注单个流或数据包,而不分析它们之间的关系。Peng等人[35]提出了一种基于SDN的流检测方法,使用K-最近邻算法的转导置信度机器的双P值来检测和分类分布式拒绝服务(DDoS)攻击。Granby等人[36]提出了一种基于SDN的集中式平台,用于检测DC异常,并通过实时反应性地识别威胁来减轻现有分布式监控技术的局限性。Suarez-Varela 和 Barlet-Ros[37] 使 用 基 于 采 样 的 方 法 为OpenFlow交换机提出了一种可扩展的流监控和分类解决方案对于监控过程,SDN控制器在网络交换机中安装一组规则以启用流量采样。DC交换机匹配传入的数据包,以检查它们是否是流监控条目的一部分如果匹配,则更新数据包计数器流分类方法使用深度包检测和机器学习技术的组合,专注于Web和加密流量识别。Elsaadawy等人[38]提出了一种使用自定义端口检测技术的网络监控方法,并使用定量比较来比较不同的交换机端口镜像方法,如端口镜像、选择性镜像、隧道镜像和截断镜像Van Adrichemet等人[39]提出了一种用于网络流的QoS监控方法,称为OpenNetMon,通过使用自适应速率采样在源和目的交换机处收集数据。它们计算延迟、吞吐量和数据包丢失,以决定是否满足QoS要求。Siniarski等人[40]提出了一种基于SDN的轻量级监控解决方案,名为FlowVisa,通过直接与关键应用程序交互来识别属于关键应用程序的网络流。所提出的方法可以分析业务流,并发现服务于这些流的交换机。Tahari等人[41]提出了一种同步机制,用于聚合来自管理DC网络的分布式SDN控制器的流量统计数据所提出的解决方案由两层组成;第一层从网络交换机收集流统计数据,并将其发送到第二层的协调器,以聚合流信息。Liu等人[42]将OpenMeasure作为一个流测量和推理框架,通过持续在线学习来跟踪信息量最大的网络流。他们提出了两种用于设计自适应流量测量规则的在线学习算法:一种基于加权线性预测的算法和另一种采用多臂强盗问题中使用的策略的算法[43]。Lazaris和Prasanna[44]提出了DeepFlow,一种基于SDN的流量测量框架。它们在交换机的空闲内存空间(TCAM)中安装一组规则来测量关键业务流。长短期记忆-递归神经网络Yang和Yeung[45]提出了孤独流优先(LFF)算法来监控仅通过单个交换机的网络流,以最小化监控流量所消耗的带宽。它们将直流开关分为有或没有孤独流。此外,他们使用一个权重函数来决定轮询顺序和流轮询的成本,并定义的距离和消息开销作为两个通信成本来决定是否使用轮询单或轮询所有开关。该方法通过比较每个交换机组的开销来决定轮询方式,如果轮询全部开销较大则采用轮询单消息方式,反之则采用轮询单消息方式,直到覆盖所有流。Garget等[46]提出了一种基于深度学习的混合异常检测系统,用于检测社交多媒体应用中的可疑流。该系统由两个模块组成:(1)基于受限玻尔兹曼机(RBM)和支持向量机(SVM)的异常检测模块,用于检测异常活动;(2)端到端数据传输算法,用于满足多媒体应用对高带宽、低延迟的QoS要求。Tang和Haque[47]提出了一种名为ReMon的弹性监控框架,该框架可以通过将网络数据包测量与聚合网络统计数据合并来有效地从链路故障中恢复,以提高测量精度并最小化测量成本。他们的解决方案包括三个算法。(1)权重辅助选择(WAS)算法选择一组要监控的交换机,以最小化监控成本,并使用sFlow协议轮询来自这些交换机的流统计数据[48]。(2)锚点辅助恢复(AAR)和权重辅助恢复(WAR)算法,并将它们集成到ReMon框架中,以在链路故障的情况下提供测量弹性。Rezeland等人[49]提出将SDNMon作为SDN控制器的扩展模块,以监控数据计划中的网络设备,并改进有关网络拓扑的控制计划信息SDNMon可以监控每个端口和流量的带宽和延迟。SDNMon利用线程收集选定端口A. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417422以及基于网络拓扑使用sFlow协议和轮询机制的流统计。Shen[50]提出了一种基于SDN的监控方法,用于观察OpenFlow交换机的选定组,以减少资源消耗。所提出的方法包括两个阶段。1)监控阶段根据以下步骤选择被监控的交换机:扫描所有网络交换机,统计它们的流,根据它们的流数量对它们进行排序,并选择具有最高流数量的交换机在该阶段结束时,覆盖的流从PSTN网络交换机中移除。2)流重新路由阶段尝试组合具有最低重新路由成本的交换机,以重新路由由所选择的网络交换机覆盖的流Wang和Su[51]提出了一个灵活的基于SDN的监控框架,称为FlexMonitor,通过使用选择性监控策略来检测DDoS攻击,该策略选择交换机和终端主机对选择。FlexMonitor由四个模块组成1)监控模块解释上层管理应用请求并基于应用需求选择适当的监控策略。2)监控策略部署模块通过部署特定的监控策略来实现网络监控3)采集模块定期从网络交换机和主机上准确采集监控数据。4)分析模块聚集和分析所收集的数据。Xing等人。[52]提出了一种基于采样和提取机制的FlowMon来检测大流量。它包括两个阶段。1)采样阶段使用分组采样来检测大象流。2)计数阶段采用流表计数法确定可疑流中的最大流。 Afeket等人[53]提出了一种采样和挑选算法来检测SDN网络中的大流量。它由两部分组成;第一部分是采样方法,定义了在交换机中创建计数规则的速率和使用不同数据包采样方法的数据包采样速率第二部分重点介绍了大流量检测方法。Madanapalli等人[54]设计了一种保护DSN控制器的解决方案。它监视网络链路上的流量,软件检测引擎接收并检测数据包,以保护SDN控制器免于过载。Cohen和Moroshko[55]提出了一种按需采样监控框架,该框架允许SDN控制器设置每个交换机处每个流速率的采样速率,因为网络运营商根据监控目标设置该速率。我提出了一个按需采样监控框架,其中SDN控制器选择每个交换机上每个流的采样速率,因为网络运营商根据监控目标设置了这个速率他们提出的框架包括三个组成部分。第一个组件,采样管理模块,部署在SDN控制器中,基于指定的速率对流进行采样。第二个组件是采样模块,在网络交换机中实现第三个组件是收集服务器收集和处理采样的数据包。他们的框架定义了一个新的OpenFlow消息,称为Santos等人[56]提出了一种使用OpenFlow消息来收集网络统计数据以测量QoS度量的方法(例如,端口带宽和损耗的利用),并使它们可用于诸如流量工程的上层应用这些消息在预定义的轮询间隔内周期性地发送(即,每5秒)。在OpenTM[57]中,在每个轮询间隔(5 s)期间,针对每个不同的源目的地对发出单个查询。他们使用在[58]中,SDN控制器每隔500 ms周期性地从网络交换机提取端口统计数据,以获得准确性。率结果。任何两个相邻交换机之间消耗的带宽可以使用每个网络交换机传输的字节来计算。在[59]中,控制器周期性地轮询网络交换机(即,每秒)收集队列统计信息。4. 建议的系统架构该方法基于SDN,利用支持向量机技术(SVM)对分布式应用性能进行评估SDN控制器从SDN交换机收集统计数据,并计算分布式应用组件和网络设备的性能度量。我们计算每个应用层的响应时间、吞吐量和会话数,同时计算每个网络链路的丢包、延迟和我们使用性能指标数据训练SVM算法,并在不同的网络和终端主机负载下建立正常应用程序行为的基线模型。该方法监测前端服务器的响应时间,并使用单类支持向量机(OCSVM)算法将其性能分类为正常或异常。我们选择响应时间,因为它代表了应用程序和网络的整体性能如果性能被归类为正常,则意味着所有应用程序组件和网络设备都能有效运行否则,性能将偏离基线模型。这意味着网络设备或应用程序组件运行不正常。在这种情况下,我们启动多类支持向量机(MCSVM)算法,以确定性能瓶颈,并发现负责任的应用程序层或网络设备,降低了整体应用程序的性能。所有模块的详细说明将在以下部分中介绍。4.1. 监测模块SDN控制器可以发现网络拓扑并测量网络参数,而监测节点(MN)监测应用响应时间并发现其组件。 SDN控制器将TOR交换机配置为将所有分组的副本转发到MN,以收集关于其机架服务器的每个流的信息,如图2所示。 3. 监控模块作为单独的虚拟机运行,以最大限度地减少SDN控制器的负载以下部分将详细讨论如何计算应用程序和网络指标。4.1.1. 网络拓扑发现SDN控制器使用OpenFlow协议与网络设备通信以管理、配置网络设备,并且具有最新的网络拓扑。以下步骤描述了SDN控制器如何发现整个数据中心基础设施,包括网络设备、它们的连接方式以及终端主机。4.1.1.1. 发现交换机。网络管理员使用SDN交换机的IP地址和端口号来配置SDN交换机。SDN控制器通过传输层安全(TLS)建立安全连接。在启动时,控制器可以通过向每个设备发送图4显示了一个简单的SDN网络拓扑结构,使用mininet模拟[67],三个OpenFlow交换机连接四个主机。控制器可以显示-A. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417423图三. 监控数据中心网络。覆盖交换机S1、S2和S3及其活动端口,但不能检测交换机间连接链路[60]。4.1.1.2. 发现交换机间链路。SDN控制器可以通过为在步骤1中学习的每个交换机上的每个活动端口创建单独的链路层发现协议(LLDP)分组[61],LLDP数据包包含交换机ID、端口号和时间生活(TTL)控制器将“OFPT_PACKET_OUT”消息中的LLDP数据包发送当交换机从相邻交换机接收到LLDP数据包时,它会根据默认规则将数据包转发到OFPT_PACKET_IN消息中的控制器;这使控制器能够发现交换机间链路[60]。当S1交换机从控制器接收到“OFPT_PACKET_OUT”数据包时,它会通过所有活动端口发送这些数据包。然后,S2交换机接收该分组并将其返回给控制器。这样,控制器可以发现S1和S2交换机之间的链路。在S2和S3交换机中重复该过程去发现它们4.1.1.3. 探索号。当主机开始向网络发送数据包时,控制器可以发现网络中的分布式应用程序组件以及连接它们的交换机见图4。使用mininet对简单SDN网络进行仿真。A. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417424¼----.Σ交换机将第一个数据包封装在“OFPT_PACKET_IN”消息中这样,控制器可以识别连接到任何交换机的主机。“OFPT_PACKET_IN”包含与主机相关的信息,4.1.2. 网络参数测量本部分介绍测量网络性能指标的步骤,包括延迟、带宽和数据包丢失。4.1.2.1. 计算延迟。S1和S2交换机之间链路的链路延迟(L s1-s2),如图所示。 4,可以使用以下等式计算:Ls1s2¼ t2- t1-RTTcs1=2-RTTcs2=214.1.3.1. 应用程序已提交。应用吞吐量是指在一个时间间隔内的流大小。它可以使用由控制器发送到交换机的请求关于特定业务流的信息的“STATISTICS_REQUEST”消息和由交换机发送到控制器的具有所需信息统计的“STATISTICS_REPORT”应答消息来计算。对于每个流,可以使用在采样间隔(T)期间的分组的数量(S)来计算吞吐量,如等式(1)中所示(七)、输入/输出¼S= T字节=秒4.1.3.2. 应用程序响应时间。通过检查TCP数据包报头并检查指示应用程序层之间TCP会话开始和结束的TCP SYN/ACK/FIN标志,可以计算每层的应用程序响应时间细分。这里本文主要研究TCP流量。TCP会话有三个其中t1是如步骤(发现交换机间链路)中所解释的从控制器到S1交换机的“OFPT_PACKET_OUT”分组的传输时间RTT是控制器和任何交换机之 间 通 道 的 往 返 时 间 , 可 以 使 用 时 间 戳 计 算在“OFPT_ECHO_REQUEST”和“OFPT_ECHO_REPORT”消息中RTTc-s1¼ tr1- ts12RTTc-s2¼ tr1- ts13其中RTT c-s1和RTT c-s2分别是控制器与S1和S2交换机之间的往返时间,t s1和t s2分别是由控制器发送到S1和S2交换机的“OFPT_ECHO_REQUEST”消息的时间戳,t r1和t r2分别是由S1和S2交换机发送到控制器的“OFPT_ECHO_REPORT”分组的时间戳。4.1.2.2.计算可用链路带宽。连接S1和S2交换机的链路Ls 1-s2的可用带宽BWs 1-s2,如图4所示,可以使用如下面的等式[60]所示,由控制器发送到交换机的请求其端口统计的”_REQUEST“BWs1-s2¼端口速度--消耗带宽1.4GHz阶段:(1)连接建立,以使用三次握手消息建立连接,(2)数据传送,(3)连接拆除,以使用四次握手消息终止连接。然后,每层的响应时间可以近似地通过SYN和FIN消息之间的时间间隔来计算,如图5所示。4.1.3.3.应用范围应用程序工作负载是指与承载应用程序层的服务器的并发会话数。它可以通过将规则应用于TOR交换机来计算,以仅选择该服务器是目的地的所有流,然后计算每个时间间隔的流的数量4.2. 分析模块该模块提出了一个动态的基线模型来评估应用程序的性能指标,而不是使用一个静态的和固定的阈值来分类的应用程序的性能。我们使用SVM模型构建基线模型,并使用性能指标数据对其进行训练。性能指标数据是使用变化的工作负载来收集的,以模拟负载不时变化的真实数据中心性能度量(M)可以表示为以下各项的集合:(n)网络和应用程序的度量,如等式2所示(八)、M½ fmijnPiP 1g对于时间j处的每个度量mi,算法使用滑动赢-消耗带宽:1/4 TRt2-TRt1 =dow Sij,大小为t,包含一组收集的值vij,如等式2中所示。(九)其中TRt1和TRt2分别是在时间t1和t24.1.2.3.计算数据包丢失。通过轮询源交换机和目的交换机的流统计信息,减去在两个不同的时间t1、t2,源交换机中发送的分组计数器(TX)的增加与目的交换机的接收的分组计数器(RX)的增加,如等式2所示。(6)[62]。Si j<$vi j;vij1;. . . ::;vijt9n个度量Sij的集合描述了在时间间隔t期间的时间j处的分布式应用行为ABj,如等式(1)所示。(十)AB j¼Sij16i6n10将特征提取技术应用于所收集的数据集ABj以使用统计分析导出一些相关性质这种技术最小化了计算开销,提高了算法精度,最小化了存储空间,并减少了计算开销。数据集维度从t到dk,同时保留时间序列PL1RXs2- 1-RXs2-1- 2TXs1t2-TXs1t14.1.3. 应用参数测量ð6Þ特色从Sij提取的特征集Sf可以表示为等式(1)。(十一)其中fx:Rt!Rdx100本部分说明了从网络角度计算应用程序性能指标的步骤,包括应用程序吞吐量、应用程序响应时间和按分布式应用程序的每一层计算的数据标准化是数据处理的最后一步,然后将数据输入SVM算法。由于存在不同范围的特征向量值,并且SVM假设数据A. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417425-.X2X我l ll图五. 使用TCP标志测量响应时间。与的工作在标准范围(0到1)或(1到1)内。因此,使用将输入数据转换为0(十二)径向基函数(RBF)核函数被广泛用于在m维空间中构建超平面以分离数据集类别。RBF定义为Eq. (十六)x01其中xi-x均值12Kx;x0exp-ckx-x0k216i¼1a1/4x标准品SVM决策函数将未标记向量xjSVM分类器训练阶段找到最佳超平面使用一组标记向量L根据它们相对于超平面的位置,使用下面的等式:(十七)Lfxx i;y ij 1 6i 6ng;其中x是 2Rn和yi1/4 f-1; 1gLfxisgn1/1我爱你!ð17Þ找到最优超平面需要最小化||W||2,where w is a vector normal tothe hyperplane that can be expressed as the optimization problemas in Eq. (十四)4.3. 性能异常检测与瓶颈识别模块l l ll性能异常检测和瓶颈识别Xai-1X Xaiajy xi:xj服从aiP0和Xaiy1/11/1j11/1¼0ð14Þ其中ai和aj是拉格朗日乘子。对于非线性模型,使用核技巧,因为它是通过用如等式中的核函数替换(xi.xj)来将数据变换成更高维度的更(十五)Xai-1X Xaiajy yuxi:uxj服从ai使用SVM算法[63],tion模块由两个步骤组成:1- 单类支持向量机(OCSVM)将前端服务器的响应时间性能分为正常和异常。2- 多类支持向量机(MCSVM)识别异常的类型,并确定瓶颈的根本原因。算法1的以下伪代码描述了所提出的异常检测和瓶颈识别算法:1/12升1I jj1L算法1. 分布式 应用性能异常检测-P0和aiyi<$0其中u:R n! R m151/1问题与瓶颈识别我A. M. El-Shamy,N.A. El-Fishawy,G.Attiya等人埃及信息学杂志22(2021)417426≥输入:使用SDN控制器从交换机收集的流信息输出:检测性能异常,找出分布式应用步骤:1- SDN控制器发现网络拓扑2- SDN使用OpenFlow协议3- SDN控制器从DC交换机收集OpenFlow统计信息4- SDN为网络中的每个TOR交换机构建DC网络6-SDN启用端口镜像以将流量转发到监控节点(MN)7-MN开始收集流信息8-发现分布式应用程序组件9-计算网络性能指标(延迟、可用带宽和数据包丢失)10-计算应用程序性能指标(吞吐量、响应时间和工作负载)11-如果网络状态稳定(稳态)12-则13-禁用端口镜像14-其他15-端口镜像仍启用16-End if17- 端18- 对于CDC19-计算应用程序性能指标20-使用SVM技术构建基线模型21-使用不同的工作负载22- 端23- 检测模式24- 对于分布式应用程序中的每个前端服务器25-监视响应时间26-使用OCSVM模型27-如果应用程序响应正常28-则29-应用程序性能符合SLA 30-保持监控前端服务器31-其他32-应用程序响应异常33-设置鲁棒性因子C34-if计数连续检测C(鲁棒性因子)35-然后36-仅在与此应用程序37-使用MCSVM模型确定瓶颈原因:网络或终端主机问题38-提醒管理员39-End if40- 端分布式应用性能异常检测和瓶颈识别算法1的工作原理如下。在算法启动时,SDN控制器发现网络,建立与每个网络设备的会话,使用OpenFlow协议从DC交换机收集数据,并最终在线(1-4)中构建最新的DC网络拓扑SDN控制器使每个TOR交换机中的端口镜像能够将流量转发到监控节点(MN),并开始收集关于应用流的信息以发现应用流的组件。第5-8行中的分布式应用程序。该算法基于收集的网络和应用数据,计算网络性能指标,包括每个网络设备的延迟、可用带宽和分组丢失。此外,该算法计算应用程序性能指标,包括第(9-10)行中分布式应用程序的每个组件的吞吐量、响应时间和工作负载。第(11-13)行在收集所有必需的信息并发现所有应用程序组件之后禁用端口镜像设置。 通过这种方式,我们可以最大限度地减少TOR交换机的开销。如果网络中有变化并且实现了新的应用,则端口镜像仍然是活动的,以跟踪DC网络中的新变化,如第(14-17)行中所示。使用计算的分布式应用程序的性能指标,我们建立了一个基线模型,使用SVM技术的所有运行的分布式应用程序每层。该模型用表示不同工作负载的数据来训练,以模拟真实的DC网络,如线(18-22)中所示。 异常检测模块监测分布式应用中前端服务器的响应时间性能。它使用单类支持向量机(OCSVM)算法将其性能分为正常或异常。如果应用程序响应正常并且符合SLA,那么我们将继续只监视前端服务器的性能,如第(23-30)行所示。如果检测到异常行为,则算法在将其视为异常之前等待对连续检测次数C的相同异常进行计数。这一步骤对于增强所提出的算法对虚警的鲁棒性是重要的。变量C被称为鲁棒性因子,增加C的值会增加检测时间,但会使虚警率最小化。在实验部分中,我们定义了C的最佳值,它使算法的鲁棒性最大化,如行(31-34)所示。如果检测到异常,我们将仅在与此应用程序相关的交换机端口中启动选择性监控过程,以进一步调查每层的行为,并找出此瓶颈的原因,无论是网络问题还是主机问题。MCSVM模型用于确定瓶颈的根本原因。最后,向网络管理员发送一个警告,指出缺陷的类型,如图35-39所示。整个系统架构如图所示。第 六章5. 仿真评估与结果分析本节介绍对所提出的异常检测方法的评估。5.1. 试验台设置为了模拟多层Web应用程序,我们将RUBiS应用程序部署在一个三层架构中,将其组件安装在三台单独的机器上;每台机器都有4 GB的RAM和2个CPU核心。Web服务器上安装A
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功