基于特征信息定位的Web服务资源均衡分配模型*

2022-11-09 02:34杨柳青
计算机与数字工程 2022年9期
关键词:列队资源分配队列

杨柳青 王 冲

(1.玉林师范学院教育技术中心 玉林 537000)(2.桂林电子科技大学商学院 桂林 541004)

1 引言

互联网的普及与发展,以及用户服务需求的持续提升,导致互联网中的数据呈指数形式递增[1]。为满足海量用户的访问需要,各种各样的网站层出不穷。然而,面对日益增长的用户访问量,远远超过了网站单个Web服务器的所能承受的能力,因此发展到现在,一个网站的Web服务器并不是只有一个,往往是多个,甚至是十几,几十个,并且仍处在不断增加的状态,以满足海量用户每时每刻的访问请求[2]。在这种背景下,Web服务资源分配成为日渐突出的一个问题,例如经常出现访问请求“扎堆”的现象,即服务资源并不能合理的被分配,用于处理访问请求,可能导致多个访问请求聚集到一个高性能的服务资源上,造成该服务资源繁忙,服务时延问题验证,而有的服务资源未能分配到访问请求,导致服务资源处于“饥饿、闲置”状态,造成服务资源浪费[3]。

面对这种情况,对Web服务资源分配成为相关领域研究的热点问题。很多专家和学者都提出了解决方法,例如,文献[4]提出基于进化多目标优化的分配模型,通过资源空闲率、存储资源的空闲率、微服务的实际空闲率以及负载均衡率组成多目标函数,然后设置四个约束条件,最后利用NSGA-III和MOEA/D组合进化算法求解,得出微服务组合分配方案。文献[5]提出基于二部图最大匹配的分配模型,首先获取服务器所要处理的访问量与访问处理耗时之间的比值,并以此作为负载指标,将其反馈给管理服务器,然后构建二部图。以构建的二部图为基础,采用匈牙利算法求解二部图的并获得最大匹配结果,根据匹配结果进行资源的分配。文献[6]提出基于Nginx服务器的分配模型,首先采集服务资源的负载数据,然后负载均衡器通过计算找到最优节点服务器,然后将访问任务通过动态负反馈调度算法将其分配给转发节点,完成资源的均衡调度。文献[7]研究一种大型集群环境中的资源可扩展性分配方法,构建资源分配的决策框架,结合动态填充决策的方式,以对资源的需求目标进行分析。最后,根据资源的需求特征,进行资源的适应性分配。文献[8]提出一种基于分层DRL的高效资源分配方法,该方法研究分层强化学习资源分配框架,以解决资源分配的功耗问题,并借助时间尺度确定资源分配的最优解,以实现资源的高效分配。

结合当前研究经验,本文研究一种基于特征信息定位的Web服务资源均衡分配模型,并通过实验对所构建模型的性能进行验证,结果表明所构建模型可以在提高资源利用率的基础上,降低服务时延,改善Web服务质量。

2 Web服务资源均衡分配模型设计

2.1 服务需求列队与需求标准

每个用户登录网站的目的是获取资源,而资源在获取前需要用户发送访问请求,根据请求Web服务器搜索资源,最后将其反馈给用户。由此可知,Web服务需求指的是用户访问请求,也可以称为访问任务。用户要访问的资源不同,产生的服务需求相应地也存在差异。基于上述背景,如何进行服务需求列队,并根据自身需求,向Web服务资源发送资源需求标准至关重要,是后续资源分配的重要参考[9]。下面针对上述两个方面进行具体分析。

2.1.1 服务需求列队

服务需求列队的标准有很多,如用户请求时间、用户求取长度等,但是这些列队标准并没有将访问需要的重要性或紧急性考虑在内,因此可能会降低任务完成的实时性,从而影响Web服务器的整体工作质量[10]。针对这种情况,本章节基于任务重要性或紧急性判断任务队列优先级,以此组建服务需求列队。该队列分为三级,如图1所示。

图1 服务需求列队模型

图1中,最上边的一级服务需求按照时限因子进行排队,用户访问任务的时限因子越短,认为该服务需求越紧急,越需要排在队列前[11]。第二级服务需求按照进入队列先后顺序的规则进行排队。第三级的服务需求则是按照优先级先后顺序进行排队,优先级水平越高队列越靠前,即允许服务需求抢占队列位置[12]。抢占策略如下:

1)当有新服务需求时,若新服务需求的队列优先级与第i个服务需求的队列优先级相等,且新服务需求的编号与第i个服务需求的编号也相同,则不允许新服务需求进入队列;否则,允许新服务需求进入队列。

2)找出队列中所有高于新服务需求队列优先级的服务需求,然后将这些服务需求的执行时间相加。判断执行时间之和是否大于任务周期。若大于,不允许新服务需求进入队列;否则,允许新服务需求进入队列[13]。

3)当新服务需求的队列优先级高于第i个正在执行的服务需求的队列优先级,且任务i平均执行时间与任务已经执行时间的差值再加上新任务执行时间大于等于新任务的截止时间与提交时间的差值,认为新服务需求可以抢占正在执行的服务需求;否则,不允许新服务需求抢占[14]。

2.1.2 需求标准

在服务需求列队之后,为其中每个服务需求向Web服务资源发送资源需求标准,即完成服务需求所需要的Web服务资源量,包括CPU、内存、TCP连接数和网络带宽等[15]。

2.2 Web服务资源特征信息定位

为了提高Web服务资源分配的均衡性,通过特征信息定位可以精准获得用户的资源需求情况,从而提高分配的有效性[16]。特征信息定位主要分为两个环节,一是Web服务资源定位,二是Web服务资源负载特征分析。下面进行具体分析。

2.2.1 Web服务资源定位

Web服务资源定位是指确定Web服务资源的物理存储位置[17]。在这里采用一种基于拓扑发现的定位方法,该方法具体过程如下:

步骤1:采集拓扑信息,即遍历网络中的交换机、路由器等,获取完整的Web服务器连接信息;

步骤2:将拓扑信息以及链路存储到数据表当中,并进行归一化处理;

步骤3:找出服务网络中存在重叠的链路;

步骤4:扫描重叠链路两端Web服务器的端口,判断Web服务器之间连接链路的类型;

步骤5:重复上述过程,直至遍历所有Web服务器节点;

步骤6:完成基于拓扑发现的Web服务资源定位[18]。

2.2.2 Web服务资源负载特征分析

基于上述Web服务资源定位结果,对每个位置的Web服务器当前负载特征进行分析[19]。负载特征指数计算公式如下:

式中,Yi代表第i个服务器的负载特征指数;s0代表校正系数;s1、s2、s3、s4代表各指标对应的权值;x1代表Web服务器CPU;x2代表Web服务器内存;x3代表Web服务器TCP连接数;x4代表Web服务器网络带宽。

其中,s1、s2、s3、s4四个指标的权值通过熵权法来确定[20]。具体过程如下。

步骤1:假设有n个Web服务器,每个服务器有4个指标,则xij为第i个Web服务器第j个指标。

步骤2:对各个指标进行标准化处理,计算公式如下:

式中,代表第j个指标的均值;var(xj)代表第j个指标的均方差;xj代表第j个指标。

步骤3:根据上述标准化处理后获得的数据,进行第j个指标在第i个Web服务器样本中所占有的比重Rij。

步骤4:根据指标比重的计算结果,对第j个指标的熵值进行计算:

式中,Gj代表第j个指标的熵值;n代表样本数量。

步骤5:计算信息熵冗余度。

步骤6:计算各项指标的权重。

通过上述特征信息定位可以明确Web服务资源情况,为后续资源均衡分配提供了重要参考[21]。

2.3 Web服务资源均衡分配模型构建

Web服务资源均衡分配,即如何将服务需求合理分配到各个Web服务资源上,实现Web服务的负载均衡。基于此,构建一种Web服务资源均衡分配模型。该模型的关键是计算服务需求和Web服务资源的匹配度,计算公式如下:

式中,α代表服务需求所需要的Web服务资源量;β代表Web服务器当前负载量,即拥有的资源量;xj代表第j个指标,x′j代表满足服务需求的Web服务器的第j个指标量;m代表指标数量,在这里取值4,分别代表CPU,内存,TCP连接数和网络带宽。

Web服务资源均衡分配过程如下。

步骤1:初始化,并设置相关参数;

步骤2:从服务网络中随机选择一个没有任务的Web服务器资源;

步骤3:计算服务需求与Web服务器资源量的CPU,内存,TCP连接数和网络带宽等四个指标对应的相似度。

步骤4:将四个对应指标的相似度与设定的4个阈值进行对比,全部大于4个阈值,则进行以下一步;否则,回到步骤3;

步骤5:按照上述式(4)计算服务需求与Web服务器资源量的总匹配度。

步骤6:判断总匹配度是否小于设定的阈值?若小于阈值,则判定服务需求与资源之间不匹配,并回到步骤2重新选择资源;若大于阈值,则判定服务需求与资源互相匹配。

步骤7:重复上述过程,直至队列中所有服务需求都分配给相似度超过设定阈值的Web服务器资源,完成Web服务资源均衡分配。

服务需求与Web服务资源匹配程度越高,说明二者之间越能达到“供需平衡”,既能实现Web服务资源的合理利用,又能完成用户的访问需求。

3 仿真实验与性能分析

基于Apache JMeter仿真平台测试所研究分配模型以及三个对比模型(基于进化多目标优化的分配模型、基于二部图最大匹配的分配模型、基于Nginx服务器的分配模型)的应用效果,分析分配方案的合理性。

3.1 Web服务器集群

仿真实验开展所使用的环境为一个拥有15个Web服务器的集群系统,如图2所示。

图2 Web服务器集群系统

该集群系统中每个Web服务器基本参数情况如表1所示。

表1 Web服务器基本参数表

3.2 服务需求列队

选择10个人模拟向服务器发送1000条访问请求。按照2.1章节研究将1000条访问请求组成服务需求列队,如图3所示。

图3 服务需求列队

从图3中可以看出,一级服务需求有254个,二级服务需求有425个,三级服务需求有321个。

3.3 Web服务资源负载特征

按照2.2章节研究流程,计算每个Web服务器的负载特征,结果如表2所示。

表2 Web服务器负载特征

3.4 Web服务资源分配结果

将图3列队中的1000条服务需求分配给Web服务器,完成Web服务资源分配,结果如图4所示。

图4 Web服务资源分配结果

从图4中可以看出,Web服务器5分配到的服务需求量最多,其中二级服务占比最大,其次是服务器2、12、7、6、1/10、3/11、4/14、9、15、13、8。

3.5 分配均衡效果分析

相同测试条件下,利用基于进化多目标优化的分配模型、基于二部图最大匹配的分配模型、基于Nginx服务器的分配模型同样对1000条服务需求进行分配。并统计分配方案下Web服务器空闲率、负载均衡率,结果如表3所示。

从表3中可以看出,与基于进化多目标优化的分配模型、基于二部图最大匹配的分配模型、基于Nginx服务器的分配模型相比,所研究模型应用下,Web服务器空闲率达到0.45%、负载均衡率达到90%以上,说明所构建模型设计的分配方案更为合理。

表3 Web服务器空闲率、负载均衡率

4 结语

综上所述,现代很多网站都是以Web服务器作为访问需求处理工具。随着用户访问量的逐渐增多,单个Web服务器负载压力过大,出现严重的延迟问题。针对这种情况,多Web服务器并行处理模式出现,虽然极大分担了负载压力,但是资源均衡分配问题随之出现。针对上述问题,构建一种基于特征信息定位的Web服务资源均衡分配模型。该模型主要通过计算服务需求和服务资源的匹配度来设计分配方案,只有匹配度合格,才能进行需求分配。经过仿真实验测试,所构建模型应用下服务器空闲率更低、负载均衡率更高,证明了模型的有效性。然而,本研究仅考虑小型服务器集群,当服务器数量更大时,该模型均衡分配性能可能降低,因此需要进一步研究,使得适用于大型集群。

猜你喜欢
列队资源分配队列
核心三音列及其发展与织体形态
——史蒂芬·哈特克《列队》的音高组织方法之一
新研究揭示新冠疫情对资源分配的影响 精读
队列里的小秘密
基于多队列切换的SDN拥塞控制*
途经澳门殡仪馆
金溢参加自动驾驶列队跟驰标准公开试验
在队列里
一种基于价格竞争的D2D通信资源分配算法
丰田加速驶入自动驾驶队列
云环境下公平性优化的资源分配方法