基于麻雀搜索算法优化的大容量高并发系统负载均衡方法 |
|||||||
申请号 | CN202311846322.3 | 申请日 | 2023-12-28 | 公开(公告)号 | CN118018484A | 公开(公告)日 | 2024-05-10 |
申请人 | 贵州大学; 贵州航天云网科技有限公司; | 发明人 | 李少波; 周鹏; 王堃; 陈光林; 李显超; 蒲睿强; 杨灵运; 张昌福; 张安思; | ||||
摘要 | 本 发明 属于网络优化技术领域,具体涉及基于麻雀搜索 算法 优化的大容量高并发系统负载均衡方法,步骤包括:对于包含应用层、控制层和数据层的 软件 定义网络SDN,构建麻雀搜索算法;在SDN网络中,结合麻雀搜索算法,划分探索者和追随者,更新探索者和追随者的 位置 ,并获得最终输出的最佳位置和最佳适应度值,即为最佳的SDN负载均衡分配方案;将SDN网络引入大容量高并发系统中,从而实现了大容量高并发系统的负载均衡。本发明可以利用麻雀搜索算法计算出最优的一条链路分配给新流,有效的均衡了SDN负载,提高了网络性能,从而实现了大容量高并发系统的负载均衡。 | ||||||
权利要求 | 1.一种基于麻雀搜索算法优化的大容量高并发系统负载均衡方法,其特征在于包括以下步骤: |
||||||
说明书全文 | 基于麻雀搜索算法优化的大容量高并发系统负载均衡方法技术领域[0001] 本发明属于网络优化技术领域,具体涉及基于麻雀搜索算法优化的大容量高并发系统负载均衡方法。 背景技术[0002] 随着计算机技术的高速发展和网络规模的逐渐扩大,网络访问量呈指数形式增长,造成网络拥塞现象的频繁发生。针对拥塞问题,传统网络多采用对链路网络资源进行计算与调度的方法以增强网络数据处理能力并达到负载均衡的目的。这种传统的网络链路负载均衡须在数据传输之前,就需要做好设计规划工作。但是往往在传输时,网络流量存在的局部变化、动态变化以及传输分布不均等问题,无法实时灵活地做出调节,使网络极易发生拥塞。 [0003] 随着软件定义网络(software define networking,SDN)的提出,使目前传统网络构架逐步发生变化。SDN作为一种全新的互联网体系架构,具有集中控制、开放接口和网络虚拟化等特点,其主要特征在于将数据控制与数据转发分离,把控制任务交给其他控制器来完成,既将控制层从数据层中剥离出来,又通过控制器集中控制,达到灵活方便地配置、管理网络的目的,突破了传统网络的许多局限性。 [0004] 然而,由于网络规模、流量规模等动态变化,控制器会出现负载失衡的问题,造成网络不能正常工作,同时,过载控制器也会受到恶意流量的攻击,严重地影响到网络的正常通讯,对稳定、有效的网络业务构成了新的挑战。所以研究基于SDN的负载均衡具有重要意义。 发明内容[0006] 根据以上现有技术中的不足,本发明提供了基于麻雀搜索算法优化的大容量高并发系统负载均衡方法,可以利用麻雀搜索算法计算出最优的一条链路分配给新流,有效的均衡了SDN负载,提高了网络性能,从而实现了大容量高并发系统的负载均衡。 [0007] 为达到以上目的,本发明提供了基于麻雀搜索算法优化的大容量高并发系统负载均衡方法,包括以下步骤: [0008] S1、对于包含应用层、控制层和数据层的软件定义网络SDN,构建麻雀搜索算法: [0009] S11、将麻雀个体分为探索者和追随者,探索者搜索食物并为整个麻雀种群提供觅食区域和方向,追随者追随探索者以此获取食物; [0011] S13、判断追随者的状态,并对追随者的位置进行更新; [0012] S14、判断麻雀个体所处位置是否安全,进一步更新麻雀个体的位置; [0013] S15、获得最佳位置和最佳适应度值,并判断是否终止迭代,如终止迭代,输出最终的最佳位置和最佳适应度值;如不满足终止条件,返回S11重新迭代。 [0014] S2、基于S1中的麻雀搜索算法,进行SDN负载均衡: [0015] S21、SDN网络通信链路的数目为k,将k作为麻雀种群的个体数量; [0016] S22、以链路的带宽使用率作为麻雀的位置坐标,以SDN网络的负载均衡为目标设计适应度函数; [0017] S23、依据麻雀种群的规模进行初始化; [0018] S24、在SDN网络中,结合S1的麻雀搜索算法,划分探索者和追随者,更新探索者和追随者的位置,并获得最终输出的最佳位置和最佳适应度值,即为最佳的SDN负载均衡分配方案; [0019] S25、将SDN网络引入大容量高并发系统中,从而实现了大容量高并发系统的负载均衡。 [0020] 麻雀搜索算法SSA是根据麻雀觅食并躲避捕食者的行为而提出的。在自然状态下,麻雀种群中的个体会监视群体中的其他个体,同时为了提高自身的捕食率,麻雀个体通常会争夺高摄入食量个体的食物资源。 [0021] 在SSA中,在搜索过程中种群内的最优个体会优先获取食物,探索者通常拥有较高的能量储备并相对追随者获得更大的觅食搜索范围。 [0022] 所述的S12中,在每次迭代过程中,判断种群当前位置是否安全,并更新探索者的位置的方式为: [0023] [0024] 式中,中 为第i个麻雀在第j维的个体位置;t为当前迭代次数;itermax为最大迭代次数;α是(0,1]内的一个随机数;R2和ST分别代表预警值和安全值,其中R2∈[0,1],ST∈[0.5,1];Q是服从正态分布的随机数;L是一个每个元素都为1的1×d矩阵; [0025] 当R2 [0026] 所述的S13中,判断追随者的状态,并对追随者的位置进行更新的方式为: [0027] [0028] 式中,XP为最优探索者的位置;Xworst为当前全局最差位置;n是种群规模;A是一个1+ T T ‑1×d的矩阵,其中每个元素随机赋值为1或‑1,并且A=A (AA) ;当i>n/2时,表示适应度值较低的第i个追随者未获得食物,处于饥饿状态,需要飞往其他地方觅食获得更多能量。 otherwise即指除了i>n/2之外的其他情况。 [0029] 所述的S14中,判断麻雀个体所处位置是否安全,进一步更新麻雀个体的位置的方式为,当种群中的10%‑20%的个体意识到危险时,其位置更新方式为: [0030] [0031] 式中, 是当前全局最优位置;γ为步长控制参数,是一个服从标准正态分布的随机数;f是适应度值,fg、fw分别为当前最优适应度值和当前最差适应度值;K是[‑1,1]内的一个随机数,ε是为了避免分母为0而加的一个任意无限小常数; [0032] 当fi [0033] exp即为指数函数。上述更新过程中, 即为更新后的麻雀个体位置,针对不同的场景,代表对应的麻雀个体。 [0034] S15中的判断是否终止迭代可以参照公知的麻雀搜索算法进行判断。 [0035] 应用麻雀搜索算法求解优化问题时,要对麻雀种群进行参数初始化,还要根据优化目标设计相应的适应值函数。以SDN网络通信链路的数目作为麻雀种群规模数,以链路的带宽使用率作为麻雀个体的位置坐标,带宽使用率可以通过专用软件监控得到,带宽使用率的数值范围从0到100。 [0036] 所述的S22中,如果要使SDN网络的负载达到最为均衡的状态,则所有链路的带宽使用率应该最为接近,设计适应度函数为: [0037] f=αf1+βf2(α+β=1) (4); [0038] 其中: [0039] [0040] [0041] 式中,函数f1表示所有链路负载差值平方的和,f1的值越小则链路之间负载的差值越小,f2表示所有链路的负载和整个网络的平均负载差值平方的和,显然f2的值越小,每条链路的负载越接近整个网络的平均值,SDN的负载均衡程度越好;α和β分别是f1和f2的系数,分别表示f1、f2对适应值的贡献程度,α和β的值可调,但要满足α+β=1,li、lj分别代表链路i、j的负载,lmean是整个网络的平均负载。 [0042] 所述的S23中,初始化的参数包括:麻雀种群数量、探索者所占比例、麻雀个体的位置、所需迭代次数。 [0043] 所述的S24中,在SDN网络与麻雀搜索算法的结合中,通过式(1)计算出一个随机的方向向量,引入了一定的随机性,以确保探索者在搜索过程中具有一定的随机性,通过监测SDN网络中的安全情况,判断是否有其他麻雀个体发现了潜在的捕食者,判断方法为比较当前位置附近是否有其他麻雀发出警报,即通过式(1)中的R2和ST进行判断; [0044] 根据捕食者的存在调整探索者的行为:如果没有捕食者的存在,表示探索者可以全局搜索,根据式(1)中的方向向量直接进行位置更新;如果有其他麻雀个体发现了潜在的捕食者,探索者需要迅速做出反应;在这种情况下,探索者向其他安全地点迁徙,以避免潜在的危险,通过在当前位置加上一个动态调整的步长来完成迁徙,即为步长控制参数γ,位置更新通过式(2)和式(3)实现; [0045] 探索者在更新位置时结合了随机性和动态调整,使得其能够在SDN网络中灵活适应不同负载情况,同时对潜在的危险做出了及时的反应。这种智能的位置更新策略有助于提高SDN负载均衡算法的性能和适应性。 [0046] 所述的S24中,在SDN网络与麻雀搜索算法的结合中,通过与其他麻雀个体的相对位置、周围环境的拓扑结构和当前链路的负载情况,针对每个麻雀个体,评估其当前位置的安全度,当评估结果显示当前位置不安全时,麻雀个体根据当前全局最优位置和最优探索者的位置进行调整;直至满足终止条件,或者达到最大迭代次数。同时调整的策略可以根据不同的危险情况进行灵活变化:当个体处于种群的边缘时,可以采取更为激进的调整策略,而在种群内部时,可以采用更为谨慎的调整策略。 [0047] 进行位置调整后,重新评估新位置的安全度,如果新位置依然被认为是不安全的,继续进行调整,直至满足终止条件,或者达到最大迭代次数; [0048] 通过位置更新,麻雀个体能够根据当前情况主动调整位置,使得整个种群更好地适应SDN网络中的动态负载情况,并且在危险情况下能够迅速避开潜在的威胁,提高了算法在实际应用中的鲁棒性和性能。 [0050] 本发明所具有的有益效果是: [0051] 本发明将麻雀搜索算法与软件定义网络(SDN)相结合,致力于解决大容量高并发系统在负载均衡方面的挑战。大容量高并发系统与SDN之间存在着密切的关联,两者的结合为网络架构提供了更高的灵活性、可扩展性和管理效率。在大容量高并发系统中,对网络资源的高效利用和动态管理是至关重要的,而SDN技术的引入为实现这些目标提供了有力的支持。 [0052] 本发明将软件定义网络(SDN)中的负载均衡问题转化为麻雀搜索算法中的食物搜索问题。通过将麻雀个体的位置与SDN网络中链路的带宽使用率相对应,以链路的带宽使用率作为适应度函数的一部分,设计了具体的负载均衡决策方案。这种将生物学启发算法与网络负载均衡相结合的创新思路,能够更灵活地适应SDN网络的特性,提高负载均衡的效果。 [0053] 本发明具备良好的动态适应性。SDN网络中由于新的数据流引入、网络拓扑变化等原因,流量分布可能发生变化。这种动态性要求负载均衡算法能够实时感知并调整,以适应新的流量分布。同时,由于麻雀搜索算法的设计灵感来自于麻雀在自然状态下的觅食行为:在自然环境中,麻雀种群中的个体会相互监视,并根据其他麻雀的发现而调整自己的觅食策略。这种模拟自然行为的设计理念使得算法能够在搜索过程中动态地感知和适应环境的变化。因此,本发明通过在SDN负载均衡中引入麻雀搜索算法,能够实时监测和响应网络中流量的变化,当新流引入时,利用麻雀搜索算法的迭代过程,快速而智能地做出负载均衡决策,将新流分配到最优的链路,从而实现对SDN网络流量动态变化的高效适应。其次,以SDN网络的负载均衡为目标设计了适应度函数,当新的数据流被引入时,可以根据链路的负载情况,利用麻雀搜索算法计算出最优的一条链路分配给新流,从而有效的均衡了SDN负载,提高了网络性能。 [0054] 本发明具备全局搜索能力,其中的探索者在搜索过程中具备全局视野,通过监视整个种群中的最优个体的位置,实现了全局搜索的能力。这使得本发明能够避免陷入局部最优解,而是更加全面地搜索整个解空间。通过这种全局搜索能力,能够更好地发现全局最优的SDN负载均衡分配方案,提高整体性能和网络效率。 [0055] 本发明具有优良的抗攻击性。在面对网络攻击和异常情况时,展现出卓越的鲁棒性。麻雀搜索算法的随机性和全局搜索特性使得本发明对于网络中的异常情况具有一定的抵抗能力。在异常情况下,本发明能够通过重新分配个体的位置,调整整个种群的状态,从而维持负载均衡。这种抗攻击性使得本发明在面对网络攻击和突发异常情况时能够保持网络的稳定性和可靠性,确保SDN网络正常运行。 [0056] 综上,本发明将麻雀搜索算法应用结合在SDN网络中,不仅仅在静态环境下具有卓越性能,更在SDN网络这样动态、开放的环境中展现出强大的适应性、搜索能力和鲁棒性,从而为SDN负载均衡问题提供了一种全新而高效的解决方案。通过将大容量高并发系统与SDN有机结合,可以更好地实现网络资源的高效利用、性能的优化和系统的可扩展性,从而为现代化的网络架构提供更为可靠和高效的解决方案。附图说明 [0057] 图1是本发明进行SDN负载均衡的流程原理图; [0058] 图2是SDN架构示意图; [0059] 图3是本发明实施例中验证过程的测试网络拓扑图。 具体实施方式[0060] 下面结合附图对本发明的实施例做进一步描述: [0061] 基于麻雀搜索算法优化的大容量高并发系统负载均衡方法,包括以下步骤: [0062] S1、对于包含应用层、控制层和数据层的软件定义网络SDN,构建麻雀搜索算法: [0063] S11、将麻雀个体分为探索者和追随者,探索者搜索食物并为整个麻雀种群提供觅食区域和方向,追随者追随探索者以此获取食物; [0064] S12、开始迭代,判断种群当前位置是否安全,并更新探索者的位置; [0065] S13、判断追随者的状态,并对追随者的位置进行更新; [0066] S14、判断麻雀个体所处位置是否安全,进一步更新麻雀个体的位置; [0067] S15、获得最佳位置和最佳适应度值,并判断是否终止迭代,如终止迭代,输出最终的最佳位置和最佳适应度值; [0068] 如图1所示,S2、基于S1中的麻雀搜索算法,进行SDN负载均衡: [0069] S21、SDN网络通信链路的数目为k,将k作为麻雀种群的个体数量; [0070] S22、以链路的带宽使用率作为麻雀的位置坐标,以SDN网络的负载均衡为目标设计适应度函数; [0071] S23、依据麻雀种群的规模进行初始化; [0072] S24、在SDN网络中,结合S1的麻雀搜索算法,划分探索者和追随者,更新探索者和追随者的位置,并获得最终输出的最佳位置和最佳适应度值,即为最佳的SDN负载均衡分配方案,即为对SDN中引入的新的数据流的均衡分配方案; [0073] S25、将SDN网络引入大容量高并发系统中,从而实现了大容量高并发系统的负载均衡。 [0074] S12中,在每次迭代过程中,判断种群当前位置是否安全,并更新探索者的位置的方式为: [0075] [0076] 式中,中 为第i个麻雀在第j维的个体位置;t为当前迭代次数;itermax为最大迭代次数;γ是(0,1]内的一个随机数;R2和ST分别代表预警值和安全值,其中R2∈[0,1],ST∈[0.5,1];Q是服从正态分布的随机数;L是一个每个元素都为1的1×d矩阵; [0077] 当R2 [0078] S13中,判断追随者的状态,并对追随者的位置进行更新的方式为: [0079] [0080] 式中,XP为最优探索者的位置;Xworst为当前全局最差位置;n是种群规模;A是一个1+ T T ‑1×d的矩阵,其中每个元素随机赋值为1或‑1,并且A=A (AA) ;当i>n/2时,表示适应度值较低的第i个追随者未获得食物,处于饥饿状态。 [0081] S14中,判断麻雀个体所处位置是否安全,进一步更新麻雀个体的位置的方式为,当种群中的10%‑20%的个体意识到危险时,其位置更新方式为: [0082] [0083] 式中, 是当前全局最优位置;γ为步长控制参数,是一个服从标准正态分布的随机数;f是适应度值,fg、fw分别为当前最优适应度值和当前最差适应度值;K是[‑1,1]内的一个随机数,ε是为了避免分母为0而加的一个任意无限小常数; [0084] 当fi [0085] S22中,设计的适应度函数为: [0086] f=αf1+βf2(α+β=1) (4); [0087] 其中: [0088] [0089] [0090] 式中,函数f1表示所有链路负载差值平方的和,f2表示所有链路的负载和整个网络的平均负载差值平方的和;α和β分别是f1和f2的系数,分别表示f1、f2对适应值的贡献程度,α+β=1,li、lj分别代表链路i、j的负载,lmean是整个网络的平均负载。 [0091] 通过式(4)‑式(6),可以求出每个麻雀个体的个体极值和整个麻雀种群的全局极值。 [0092] S23中,初始化的参数包括:麻雀种群数量、探索者所占比例、麻雀个体的位置、所需迭代次数。 [0093] S24中,在SDN网络与麻雀搜索算法的结合中,通过式(1)计算出一个随机的方向向量,通过监测SDN网络中的安全情况,判断是否有其他麻雀个体发现了潜在的捕食者,判断方法为比较当前位置附近是否有其他麻雀发出警报,即通过式(1)中的R2和ST进行判断; [0094] 根据捕食者的存在调整探索者的行为:如果没有捕食者的存在,表示探索者可以全局搜索,根据式(1)中的方向向量直接进行位置更新;如果有其他麻雀个体发现了潜在的捕食者,探索者需要迅速做出反应;在这种情况下,探索者向其他安全地点迁徙,以避免潜在的危险,通过在当前位置加上一个动态调整的步长来完成迁徙,即为步长控制参数γ,位置更新通过式(2)和式(3)实现; [0095] 探索者在更新位置时结合了随机性和动态调整,使得其能够在SDN网络中灵活适应不同负载情况,同时对潜在的危险做出了及时的反应。 [0096] S24中,在SDN网络与麻雀搜索算法的结合中,通过与其他麻雀个体的相对位置、周围环境的拓扑结构和当前链路的负载情况,针对每个麻雀个体,评估其当前位置的安全度,当评估结果显示当前位置不安全时,麻雀个体根据当前全局最优位置和最优探索者的位置进行调整; [0097] 进行位置调整后,重新评估新位置的安全度,如果新位置依然被认为是不安全的,继续进行调整,直至满足终止条件,或者达到最大迭代次数; [0098] 通过位置更新,麻雀个体能够根据当前情况主动调整位置,使得整个种群更好地适应SDN网络中的动态负载情况,并且在危险情况下能够迅速避开潜在的威胁。 [0099] 2009年,SDN的概念由Mckeown教授正式提出,是与传统网络架构不同的一种新的架构,它将数据控制与数据转发分离,网络工程师或者管理员可从中央控制台对流量进行调节,不需要与网络上各交换机进行接触,不管服务器与设备的具体连接方式是什么,集中式SDN控制器将引导交换机向任何有要求的场所提供网络服务。SDN的典型架构如图2所示。 [0100] SDN三层网络架构包括对网络可编程的应用层、掌握整个网络状态信息并管理整个网络的控制层、只负责简单的流量转发的基础设施层。其中,应用层和控制层基于北向接口协议进行通信,控制层和基础设施层基于南向接口协议进行通信。 [0101] SDN作为一种全新的互联网体系架构,具有集中控制、开放接口和网络虚拟化等特点,其主要特征在于将数据控制与数据转发分离,把控制任务交给其他控制器来完成,既将控制层从数据层中剥离出来,又通过控制器集中控制,达到灵活方便地配置、管理网络的目的,突破了传统网络的许多局限性。这一优点使得它对于解决流量调度问题具有更明显的技术优势和好处。 [0102] 为验证本申请提出的算法的可行性,在Ubuntu18.04系统上采用ODL(OpenDayLight)控制器和Mininet搭建网络仿真环境,设计了如图3所示的网络拓扑结构。 并使用iperf生成TCP流和UDP流模拟对网络的访问。 [0103] 在同一网络环境中,对负载均衡的随机算法、轮询算法、粒子群优化算法和本文所提出的麻雀搜索优化算法进行了100次的实验,所得的值取平均,结果见表1。从表1可以看出,与随机算法、轮询算法、粒子群优化算法相比,该算法在延迟和丢包两个方面都有显著的改善。 [0104] 表1四种负载均衡算法的性能比较 [0105] [0106] SDN作为一种新型的网络体系结构,其核心思想是将数据流的转发与逻辑判断分开,使得用户能够在控制器上部署新的协议,并对其性能进行优化,从而大大提高了网络的灵活性,是未来网络发展的必然趋势。SDN在运作方式上与传统网络有很大差异,因此其负载平衡也与传统网络有很大区别。在SDN中,当新的数据流被引入时,由于交换机的流表中还没有相应的数据流,所以需要控制器进行转发决策,根据链路的负载情况,利用麻雀搜索算法计算出最优的一条链路分配给新流。通过Mininet仿真模拟实验,验证了该方法的有效性。 [0107] 同时,本发明能够适用于不同拓扑结构的SDN网络(如星型拓扑、网状拓扑)。在星型拓扑中,当新的数据流引入时,本发明可以迅速根据全局最优位置和最优探索者的位置,将流量分配到最适合的链路上,避免了拓扑结构单一导致的负载不均衡问题。而网状拓扑中存在多条路径,麻雀搜索算法通过全局搜索和协同调整,能够更好地适应网络路径的多样性,实现更灵活的负载均衡。 [0108] 本发明通过将麻雀搜索算法与软件定义网络(SDN)相结合,致力于解决大容量高并发系统在负载均衡方面的挑战。大容量高并发系统与SDN之间存在着密切的关联,两者的结合为网络架构提供了更高的灵活性、可扩展性和管理效率。在大容量高并发系统中,对网络资源的高效利用和动态管理是至关重要的,而SDN技术的引入为实现这些目标提供了有力的支持。 [0109] 首先,大容量高并发系统通常需要应对庞大的数据流量和用户请求。传统的网络架构可能面临性能瓶颈和资源分配不足的问题。SDN通过将网络控制平面和数据平面进行解耦,使网络管理更为灵活。可以通过集中的控制器来实现对整个网络的集中控制和编程,从而更加高效地应对大规模数据流量和用户并发。 [0110] 其次,SDN的灵活性使得网络拓扑的调整和配置变得更加容易。在大容量高并发系统中,可能需要根据实时流量情况进行动态的网络调整,以保障系统性能的稳定性。能够通过软件定义的方式对网络进行调整,而无需对硬件进行大规模更改,从而提高了网络的灵活性和可调性。 [0111] 另外,SDN还为大容量高并发系统提供了更为智能的流量管理和负载均衡能力。通过实时监测网络流量并根据应用需求进行智能路由,SDN可以有效地优化网络性能,提高数据传输效率。这对于需要处理大量并发请求的系统来说尤为重要,可以有效地避免网络拥塞和性能下降。 [0112] 在大容量高并发系统中,安全性也是一个至关重要的考虑因素。SDN的集中控制和编程能力使得安全策略的实施更为简便,可以通过软件定义的方式对网络流量进行监控和管理。这样一来,网络管理员能够更加迅速地应对潜在的安全威胁,提高系统的整体安全性。 [0113] 此外,SDN技术还支持网络功能的虚拟化,将原本依赖于专用硬件的网络功能转化为软件,使得网络服务的部署和管理变得更加灵活。这为大容量高并发系统提供了更高的可扩展性,能够更加容易地根据业务需求进行横向扩展。 [0114] 总体而言,SDN的灵活性、智能性和安全性等特点为大规模高并发系统提供了强大的支持,使得这些系统能够更好地适应不断变化的业务需求和应对日益增长的网络流量。通过将大容量高并发系统与SDN有机结合,可以更好地实现网络资源的高效利用、性能的优化和系统的可扩展性,从而为现代化的网络架构提供更为可靠和高效的解决方案。 |