基于深度强化学习算法的高能效数据负载均衡方法
2022-04-15张思松
张思松
(铜陵学院 数学与计算机学院,安徽 铜陵 244061)
在过去的一段时间中,主流的网络处理器多为单核处理器。随着网络结构的不断发展,传统的处理器已经无法适应复杂的网络环境。为了提升网络系统的性能,本研究对系统服务器展开了优化。系统性能的迅猛提升,扩大了并行程序在网络中的应用范围。无论并行程序提供什么类型的服务,都需要物理机与虚拟机进行综合部署,以此实现网络数据的传输与分发。资源调度是提升网络利用率、降低能耗、降低服务成本的重要技术,其目标为提升性能、降低能耗、降低成本[1-3]。
负载均衡可有效避免某些网络资源利用率过低所引发的性能低下问题。以往的研究中设计出多种以不同技术为核心的负载均衡方法,但均存在网络节点吞吐量较小或不稳定的问题。以文献[4]为例,该文提出了一种采用流水线模型分解工作负载从而实现数据负载均衡的方法,此方法提升了数据负载均衡计算速度,但无法避免网络节点吞吐量不均衡的问题,长时间使用此种类型的方法会出现网络运行不稳定的次生问题。鉴此,本文以深度强化学习算法为核心技术设计新型高能效数据负载均衡方法。
1 高能效数据负载均衡方法设计
1.1 网络数据并行程序设计
数据并行处理是数据负载均衡处理的基础。在进行数据负载处理时,有必要首先设计并行程序,同时选择合适的性能指标分析与调节并行程序的性能。在借鉴有关文献[5-6]基础上,本文选择隐式并行程序设计方法,使用传统串行语言编写并行程序,而后利用程序变化技术实现串行代码与并行代码之间的转换。根据网络数据的使用要求,本文将并行程序组成内容设定为任务划分、通信分析、任务整合和服务器映射处理等4个部分。使用C语言完成子程序设计后,将其组合为一个具有整体性的程序组合,将其作为本研究的并行程序。
为保证此并行程序具有研究价值,采用加速比性能定律以及等效比度量[7-8]对并行程序的使用性能进行验证。具体计算过程如下:
其中,A(x)表示并行程序加速比;Tu表示单一处理器运行时间;Tx表示整个网络结构处理器运行时间。使用此公式可对并行程度的加速比展开计算。处理器的计算效率也是对并行程序进行分析的重要指标之一,其计算公式可表示为
其中,Q(x)表示处理器利用率,当0≤Q(x)≤1时,Q(x)取值越高,并行程序的计算速率越快;反之,并行程序的计算速率越慢。
使用公式(3)计算结果绘制成如图1的等效率曲线形式,分析此曲线对并行程序的可扩展性。
图1 等效率曲线示意图
图1曲线a到曲线c分别表示并行程序的扩展性程度。当取值结果绘制曲线为曲线a形式时,并行程序具有良好的扩展性;取值结果绘制曲线为曲线b形式时,并行程序具有可扩展性;取值结果绘制曲线为曲线c形式时,并行程序不具有扩展性。根据上述设定内容对并行程序设计结果进行检测,如并行程序符合检测指标要求,将此程序作为后续处理的基础。
1.2 存储节点数据分配
为保证数据在存储节点时各数据在服务器中能够均衡用户的请求,需对存储节点的数据迁移与分配方式进行设定。
根据各存储节点数据量计算网络结构整体的数据量,计算过程如下:
其中,Wi表示网络结构的数据总负载量;Wall表示网络系统数据总容量。根据公式(4)可得到存储节点的数据负载量:
其中,Wv表示存储节点的数据负载量;Wz表示各个存储节点的可使用数据资源[9];o表示数据异构权值。式(4)、式(5)中W与We用于衡量网络系统的节点负载分配情况;W根据带宽以及网络利用率等因素进行综合设定。根据此设定,将式(4)、式(5)的约束条件设定如下:
当计算过程满足上述约束条件时,迁移存储节点的数据负载。当We≥Wall时,说明网络结构负载加重,需要增加存储节点数量。在存储节点的数据处理过程中,需要处理目标服务器、源服务器以及需处理数据[10-11],具体处理过程设定如下:
设定目标服务器为Q,源服务器为K,需处理数据为L。当约束条件为公式(7)时,需要降低Q的数据处理次数。为实现此目标,K设定为负载最轻的服务器,最大化限额提升数据负载的处理效率,同时保证We≤Wall,V表示K与Q的比值。根据此需求,可得到迁移数据量计算公式:
根据式(9)计算结果,选择可重新分布的数据,并以存储节点为单位完成数据迁移,选择的目标服务器不能为Q。将此数据分配原理作为后续数据负载均衡算法的设计基础。
1.3 数据负载深度强化学习均衡算法设计
上文已经构建了网络数据模型,并设定了存储节点的数据负载迁移条件,根据设定选择深度强化学习算法,设计数据负载均衡算法。
针对当前数据负载均衡方法使用中存在的不足,本研究将对网络中的网关资源消耗进行处理,设定网络节点中包含多个处理器和内存资源。为此,设定网络中含有n个数据出口,其带宽为Si={S0,S1,...,Sn-i},Si表示网络中的第i个出口的带宽。设定Sc为0,1,...,niSSS-的最小公约数[12-13],使用参数Hi描述数据出口i负载能力,则有
根据此公式,设定Hg为网络系统的数据处理能力,则有
根据深度强化学习算法中的贝叶斯计算原理[14-15],选择最佳网络数据出口,以此实现数据负载均衡处理。将网络数据出口设定为Oi={O0,O1,...,On-i},每个数据出口的权值用f(Oi)表示,函数X(Oi)表示数据出口为i时的连接数。数据出口的连接数可表示为
由公式(12)可得到数据出口的新连接数,用J(Oi)表示,则有:
其中,m表示计算中固定比例系数。J(Oi)中取值最高的结果为最优数据负载传输出口。在公式(13)的计算过程中,可将其优化为:
使用公式(14)选择数据负载传输出口,同时根据公式(4)~公式(9)完成数据负载的转移与处理,实现数据负载均衡设计目标。至此,基于深度强化学习算法的高能效数据负载均衡方法设计完成。
2 仿真测试分析
本研究使用深度强化学习算法设计了一种新型的数据负载均衡方法,为探究此方法是否具有现实应用意义,特构建仿真测试环节对其使用效果展开分析。
2.1 测试平台搭建
本文以Matlab网络仿真平台为测试平台,测试网络构建过程设定如图2所示。
图2 Matlab网络仿真过程示意图
根据图2描述的仿真过程,使用编译器以及消息编译器将选定的网络结构编译成C++语言。然后,将网络中各层级的模块使用代码的形式编译,并将其连接为可执行文件,将此部分文件作为独立的仿真程序运行。
2.2 设定测试方案
本次测试中,为充分分析深度强化学习负载均衡方法的使用效果,选择文献[6]多信道协作负载均衡、文献[7]国产化服务器集群与本文提出的深度强化学习负载均衡方法进行对比,确定不同负载均衡方法的使用性能。
本次测试中将数据划分为5个等级,分别对应优秀、良好、一般、差、极差。将表1数据信息输入网络仿真测试平台中作为测试的数据基础,根据处理效果确定不同均衡方法的使用效果。
2.3 测试环境设定
为增强测试的真实性,对仿真测试中的网络拓扑结构进行设定。本次仿真网络中包含512台服务器和220台交换机(64台core-switch、100台edge-switch、56台aggregation-switch)。此外,网络拓扑中包含20台网络节点控制器,每个网络节点控制器包中分别设定有相同台数的coreswitch、edge-switch与aggregation-switch。每个服务器中设定16个数据交换端口。根据此设定绘制仿真网络,并将其结构信息输入Matlab网络仿真平台,构建相应的虚拟测试环境。为保证本次测试结果的代表性,设定了两种网络运行模式:模式a为网络服务器全部运行状态,模式b为网络服务器部分运行状态。
2.4 测试指标选取
本次测试将测试对比指标设定为数据负载均衡后的网络节点吞吐量。本研究指标体现为多个服务器在仿真过程中的数据吞吐量。假设网络中服务器为n个,仿真次数为δ次,则吞吐量计算公式可表示为
其中,∂表示多次处理后的吞吐量,∂i的计算公式可表示为
其中,T表示服务器数据吞吐量。根据公式(16)计算网络的数据吞吐量,将此作为评价数据负载均衡方法使用效果的一组指标。数据吞吐量取值结果越大,说明数据负载均衡方法的使用效果越好,进而说明此方法具有高能效。
2.5 测试结果分析
图3分别为网络服务器全部运行状态下和部分运行状态下的网络节点平均吞吐量。如图3所示,在不同网络服务器运行环境下,文献[6]、文献[7]和本文所构建的深度强化学习算法等3种方法具有不同的节点平均吞吐量。在网络服务器全部运行状态,深度强化学习负载均衡方法使用后,提升了网络节点的数据吞吐量。其他两种方法使用后,网络节点的平均吞吐量并未提升,仅保持了应有的节点吞吐量,对网络数据的均衡处理没有太大的帮助。在网络服务器部分运行状态情况下,上述3种方法的使用差异较大。深度强化学习负载均衡方法在两种测试环境中并未出现较大的变化,具有较为稳定的应用效果。其他两种方法中数据吞吐量差异较大,影响了网络的稳定运行。综合上述测试结果可知,无论是测试环境(a)还是测试环境(b),深度强化学习负载均衡方法的使用效果均优于其他负载均衡方法。
3 结束语
无线网络的发展为数据处理提供了帮助,也为网络数据管理带来挑战,网络中的物理服务器与虚拟机需要一个高效的数据调度方法。本研究提出了一种基于深度强化学习算法的高能效数据负载均衡方法,提高了数据处理性能。在后续研究中还需对网络的数据管理技术进行深入分析。