网络服务信息系统自适应负载均衡测试方法
2022-09-07王鑫章崔泽昊
杨 波,萧 阳,邓 欣,王鑫章,崔泽昊,彭 程
(中海油能源发展股份有限公司采油服务分公司 天津 300451)
0 引言
信息技术的发展加快了网络的普及,各种各样的网络服务信息系统应运而生[1],这些系统在给用户提供良好服务的同时也面临着严重的负载均衡问题。研究表明[2],目前超过八成的网络服务信息系统的主要业务流量均已超出了自身的承受能力,给网络服务信息系统的运行带来很大的压力[3],甚至部分系统承载过高,直接崩溃,带来难以估计的损失,面对这种情况,需要定期进行自适应负载均衡测试[4],并根据测试结果控制网络负载,直至满足系统的运行需求,降低系统的运行损失。
常规的网络服务信息系统负载自适应均衡测试方法主要利用均衡测试器进行负载均衡测试[5],但这些均衡测试器存在极限值,随着负载总量的增加,测试的效率逐渐低下[6],测试的延时也越来越差,无法满足目前网络服务信息系统的负载自适应均衡测试需求,因此,本文结合网络服务信息系统的运行现状[7],设计了新的网络服务信息系统负载自适应均衡测试方法,为降低网络维护损失,提高网络服务信息系统的运行可靠性做出了一定的贡献。
1 负载自适应均衡测试方法设计
1.1 搭建负载自适应均衡架构
为了提高自适应负载均衡测试效果,需要提高负载均衡测试利用率,合理地分配测试节点[8],提高测试速度,保证测试的有效性,因此本文设计的负载均衡测试方法搭建了负载自适应均衡架构,为后续的测试做基础,如下图1所示。
由图1可知,在负载自适应均衡的过程中,客户端需要不断生成本地服务器,发送均衡请求,再由相应的服务器接收请求,完成测试反馈,但在测试的过程中,服务器的CPU占用率及内存会发生一定的改变,因此需要定期进行计算[9],判断服务器的负载均衡情况,再结合客户端请求比例完成负载均衡测试。
根据搭建的自适应负载均衡架构,可以细化设计内部的测试服务器,首先设计DNS服务器,该服务器可以实时进行域名解析[10],实现负载转换,因此在设计该服务器时需要结合客户端交互现状,使用local进行访问,实现负载均衡,该服务器内部的功能解析示意图如下图2所示。
由图2可知,该服务器可以进行内部域名转换,实时调整测试参数,提高测试效率。为了降低测试资源的内部占比,提高测试的有效性,本文设计的方法结合BIND软件对该服务器进行了二次开发,赋予每个IP相应的均衡权值,在保证权值分配特性的基础上完成改进,从而提高了负载均衡测试信号的收发速度。
在负载均衡测试的过程中,需要不断与互联网连通记录测试结果,因此本文对原有的Web服务器进行了优化,即使用Python搭建测试架构内的Web服务器,再按照相应的比例访问负载信息,得到负载均衡指标。使用上述设计的服务器可以有效进行负载均衡测试,降低测试延时,提高测试的有效性。
1.2 设计负载均衡测试算法
仅使用与负载均衡相关的测试服务器无法从根本上提高测试的有效性,因此本文设计了符合测试需求的负载均衡测试算法。在负载均衡测试的过程中,需要不断判断各个服务器之间的流量负载关系,计算负载利用率,从而完成均衡测试,这个过程也可以用一种权值评价函数来表示,本文根据权值评价函数的动态化分配特征,设置了初始的服务器节点,设计了节点测试服务式S,如下(1)所示。
公式(1)中,C(Si)代表服务器节点,Csum代表测试常量,W(Si)代表均衡条件,此时可以假设均衡的负载均处于常态化状态,对上述节点服务式进行简化,简化后的服务式S0如下(2)所示。
根据公式(2)的计算结果,结合负载均衡加权最小连接原则可知,在测试的各个阶段都需要计算均衡内核,保证测试权值始终在一个范围内,基于此,可以判断节点之间的均衡关系Q,如下(3)所示。
公式(3)中,C(Sm)代表服务器被调用的均衡节点,此时测试节点均需要满足上述测试关系,为避免测试服务器超载,还需对现有的函数进行优化描述,描述式如下(4)所示。
公式(4)中,n代表测试次数,经过若干次测试发现,上述设计的负载均衡算法存在几个明显的问题,首先该算法计算出的权重于实际服务器节点处理的能力存在一定差异,因此其无法准确地描述节点的均衡状况,因此其存在较大的测试误差,面对这种情况,本文对上述负载均衡算法进行了优化,首先在原有算法的基础上设置了一个负载均衡周期性参数,接下来分析此时的信息反馈情况,若此时的反馈加权值为0则证明此时的权值合格,反之需要持续进行修改,直至权值变成0,此时可以结合网络服务信息系统内部现状设计权值表达函数f(s),如下(5)所示。
公式(5)中,k1、k2均代表节点的利用率,且二者的和始终为1,此时该表达函数存在均衡极值,因此需要额外设置一个边界条件式W,如下(6)所示。
公式(6)中,F(Si)代表周期性权值表达函数,在实际的负载均衡测试中,网络服务信息系统和内存可能会同时达到峰值,此时的CPU空闲概率最低,无法为用户提供相应的服务,因此还需要结合用户的使用标准重新对权值表达函数进行定义,定义式G如下(7)所示。
公式(7)中,m(Si)代表IPVS调度参数,使用该公式可以有效地判断网络服务信息系统内部的自适应负载均衡状况,完成负载均衡测试。
1.3 构建负载自适应均衡测试模型
在进行负载均衡测试时,经常会受测试总量影响,降低测试效率,带来较高的均衡测试延时,因此本文根据上文中设计的负载自适应均衡测试算法,构建了负载自适应均衡测试模型E,如下(8)所示。
公式(8)中,b代表均衡判断参数,使用该模型可以有效地收集网络流量负载信息,再根据计算的权值进行任务参考分配,并与原有的负载权值进行对比,若计算的权值高于原有权值,则需要使用IPVS进行调度改变,反之则需要保持原有的调度值不变,此时可以设计模型服务器端的处理流程,如下图3所示。
由图3可知,经过上述模型服务器端处理的负载均衡数据存在三种不同的状态,即用户状态、系统内部状态、系统空闲状态,三个状态的负载均衡状况存在一定的差异,因此本文利用了/proc/meminfo文件,获取了相关的信息,计算了内存空闲率,如下(9)所示。
公式(9)中,MemFree代表网络服务信息系统的内部总空间,MemTotal代表低位空闲内存,此时可以根据计算出的内存空间利用率设置负载测试的通信原则,由于负载调度服务器与各个服务器之间都存在UDP通信原则,因此可以预先设定一个初始的时间间隔,按照该时间间隔发表参考权值请求,设置相应的测试端口,再将测试的值与参考值进行对比,输出到测试结果分析中心,经过多次测试发现,不同的负载权值具有不同的处理能力,为了更好地进行负载均衡测试,在面临较新的测试负载时需要预先将其与IPVS进行调度对比,判断负载的调度状态,再结合计算出的权值进行负载均衡测试。
在测试的过程中,测试服务器会不停地接收来自用户的测试请求,此时为了提高测试效率,有效降低测试延时,需要设置一个Server Pool集群节点,来自用户的测试请求可以先储存在Server Pool集群节点中,再进行一一转换,传输到均衡测试中心,这样所有测试数据的基础格式全部一致,输出的测试代码也一致,其测试起来更容易,消耗的测试时间较短,产生的负载均衡测试延时自然较低,但在测试的过程中,如果存在LVS转换误差,需要立即更新测试服务器地址,重新设置集群中点,最大程度上保证测试结果的有效性,实现实时负载均衡测试。
2 实验
为了验证本文设计的信息系统负载自适应均衡测试方法的测试效果,本文将其与常规的负载自适应均衡测试方法对比,进行实验,如下。
2.1 实验准备
为了提高实验的可靠性,本文使用节点模式搭建实验环境,设置了符合要求的测试服务器,该测试服务器由一台主服务器和多台子服务器组成,需要结合实验测试需求进行统一配置,设置合理的测试参数。首先根据用户的使用需求设置负载连接特征,配置符合该特征的连接参数,接下来再设置不同连接特征的负载指令,计算其占总指令的比重,从而确定主服务器和各个子服务器的实时状态及各个服务器的资源分配率,此时结合负载的任务处理过程,搭建负载均衡测试实验示意图,如下图4所示。
由图4可知,用户发布的任务会通过请求任务队列进行排序,确定消耗负载的总数量,再通过服务器队列进行等待,从而分配到各个服务器当中。为了提高实验的测试效果,在用户发送请求后,处理中心需要对发送的请求预处理,按照顺序进行排列,降低任务分配的难度。本实验总共设置了10个不同类型的并发请求,这些并发请求分配的任务总数及其负载消耗权重如下表1所示。
表1 并发请求参数
由表1可知,设置的并发请求参数满足主服务器及子服务器的连接调度需求,可以进行后续的自适应负载均衡测试。
本实验使用LVS体系搭建实验架构,设置了VS/NAT、VS/TUN、VS/DR几种不同的转换模式,直接由发送中心传输需要测试的负载,发送相应数据包,降低任务响应延时,提高了实验的测试效率。除此之外,测试实验室内设置了一台性能良好的PC机,能迅速形成一个待测局域网环境,并与外部环境交叉互联,为了便于测试,本实验还配置了一个虚拟的测试IP地址,供测试端进行访问,本实验设置的服务器硬件配置如下表2所示。
表2 服务器硬件配置
由表2可知,上述服务器满足LVS集群需求,可以在此基础上设置一个CentOS 6.3操作中心,不断检查互联网的连接状态,为后续的负载均衡测试做基础。
在开始测试前,还需要选择Linux2.6进行IPVS集成,并使用ipvsadm管理负载资源配置模块,上述步骤完毕后,为了保证测试的可靠性,还需要额外进行IPVS操作检查,即使用modprobe-l|grep ipvs检查测试环境的支持状态,安装ipvsadm测试文件,在通过CentOS 6.3终端执行ln-s kernels/2.6.32-279.el6.i686 linux测试命令,完成测试,测试结果表明,搭建的测试空间满足ipvsadm测试文件的测试支持要求,证明搭建的测试空间具有有效性。
2.2 实验结果与讨论
在上述实验准备的基础上可以进行负载均衡测试,即分别使用本文设计的负载自适应均衡测试方法及常规的负载自适应均衡测试方法进行负载均衡测试,并使用上述搭建的实验环境记录两者的测试延时,实验结果如下表3所示。
表3 实验结果
由表3可知,本文设计的负载自适应均衡测试方法在多次测试中的测试延时始终较低,而常规的负载均衡测试方法的测试延时始终较高,证明设计的负载均衡测试方法的测试效果较好,满足负载均衡测试的实时性需求,具有有效性。
3 结语
综上所述,随着信息技术的发展,我国的互联网越来越普及,相关的服务信息系统数量越来越多,但受用户量影响,各个服务信息系统的负载越来越高,急需进行负载均衡测试,常规的负载均衡测试方法的测试延时较高,不满足目前信息系统的运行需求,因此本文设计了一种新的自适应负载均衡测试方法,进行实验,结果表明,设计的自适应负载均衡测试方法的测试延时较短,具有实时性,有一定的应用价值,为维护网络服务信息系统的稳定性做出了一定贡献。