针对云计算环境下传统负载均衡方法难以对蕴含在历史数据中的流量信息进行知识分析与智能利用问题,提出一种基于AI知识分析的云平台负载智能均衡方法LSTM-TD3 (Long Short Term Memory and Twin Delayed Deep Deterministic policy gradient algorithm)。LSTM-TD3以资源利用率、服务器连接数、响应时间、请求历史数据等为知识参数输入,首先通过LSTM进行任务数预测建模;紧接着以初始化预测数据强化学习模型TD3,形成基于AI分析与评估的优化负载均衡计算模型;最后通过实际训练以及仿真实验对LSTM-TD3的负载均衡效果进行验证测试。实验结果表明,相比传统的无负载均衡、轮询算法、Q-learning和TD3算法等云环境负载均衡方法,LSTM-TD3负载均衡性能分别提高25.4%,6.41%,3.56%和2.85%,能达到更好的资源负载均衡效果,资源利用率更高。 In view of the difficulty of traditional load balancing methods in intelligent utilization of traffic information contained in historical data, a cloud load balancing method LSTM-TD3 (Long Short Term Memory and Twin Delayed Deep Deterministic policy gradient algorithm) based on AI knowledge analysis is proposed. LSTM-TD3 takes resource utilization, number of server connections, response time, request history data, etc. as knowledge parameters input. First, it uses LSTM to predict and model the number of tasks; then, the initialization prediction data is used to strengthen the learning model TD3 to form an optimized load balancing calculation model based on AI analysis and evaluation; finally, the load balancing effect of lSTM-TD3 is verified and tested through actual training and simulation experiments. Experimental results show that compared with traditional cloud environment load balancing methods such as no load balancing, polling algorithm, Q-learning and TD3 algorithm, the performance of LSTM-TD3 load balancing is improved by 25.4%, 6.41%, 3.56% and 2.85% respectively, which can achieve better resource load balancing effect and higher resource utilization.
针对云计算环境下传统负载均衡方法难以对蕴含在历史数据中的流量信息进行知识分析与智能利用问题,提出一种基于AI知识分析的云平台负载智能均衡方法LSTM-TD3 (Long Short Term Memory and Twin Delayed Deep Deterministic policy gradient algorithm)。LSTM-TD3以资源利用率、服务器连接数、响应时间、请求历史数据等为知识参数输入,首先通过LSTM进行任务数预测建模;紧接着以初始化预测数据强化学习模型TD3,形成基于AI分析与评估的优化负载均衡计算模型;最后通过实际训练以及仿真实验对LSTM-TD3的负载均衡效果进行验证测试。实验结果表明,相比传统的无负载均衡、轮询算法、Q-learning和TD3算法等云环境负载均衡方法,LSTM-TD3负载均衡性能分别提高25.4%,6.41%,3.56%和2.85%,能达到更好的资源负载均衡效果,资源利用率更高。
云计算,AI,负载均衡,知识分析,TD3,强化学习
Ying Li, Xin Liu, Yang Qiu*, Yang Wu
Bingo Software Co., Ltd., Guangzhou Guangdong
Received: Jul. 20th, 2022; accepted: Aug. 19th, 2022; published: Aug. 24th, 2022
In view of the difficulty of traditional load balancing methods in intelligent utilization of traffic information contained in historical data, a cloud load balancing method LSTM-TD3 (Long Short Term Memory and Twin Delayed Deep Deterministic policy gradient algorithm) based on AI knowledge analysis is proposed. LSTM-TD3 takes resource utilization, number of server connections, response time, request history data, etc. as knowledge parameters input. First, it uses LSTM to predict and model the number of tasks; then, the initialization prediction data is used to strengthen the learning model TD3 to form an optimized load balancing calculation model based on AI analysis and evaluation; finally, the load balancing effect of lSTM-TD3 is verified and tested through actual training and simulation experiments. Experimental results show that compared with traditional cloud environment load balancing methods such as no load balancing, polling algorithm, Q-learning and TD3 algorithm, the performance of LSTM-TD3 load balancing is improved by 25.4%, 6.41%, 3.56% and 2.85% respectively, which can achieve better resource load balancing effect and higher resource utilization.
Keywords:Cloud Computing, AI, Load Balancing, Knowledge Analysis, TD3, Reinforcement Learning
Copyright © 2022 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
随着分布式技术的发展,当前大数据计算处理服务都在云环境上实现。云计算平台可以将大量数据计算任务通过网络分发到多个计算实例中进行处理,最终将各个实例的运算结果汇总返回给用户。云计算通过调用庞大的运算资源更高效地解决以往单机难以处理的复杂计算任务,因此,平台中负载分布是否均衡是评估云计算平台是否可靠可用可扩展的关键。在云计算环境中,负载均衡通过算法动态地对运算资源进行调度,以最大限度地提高集群总体性能 [
1) 对大量的用户请求进行合理分发,减少用户等待响应时间;
2) 将过载服务器上的任务分割转移到其他节点进行处理,提高资源利用率。
当前云环境下负载均衡算法依据触发方式可以分为主动式、被动式以及对称式 [
通过判断系统当前负载状态是否动态调整,负载均衡也可分为静态负载均衡策略与动态负载均衡策略 [
从表1可以看出,静态负载均衡算法相对动态负载均衡算法更简单,但是无法将计算资源最大化利用,造成资源浪费。动态负载均衡算法由于需要考虑的参数指标较多,因此更复杂 [
随着人工智能技术(AI)的发展,结合AI的负载均衡算法研究取得了较大进步。Wang等 [
分类 | 算法名 | 算法简介 | 优点 | 缺点 |
---|---|---|---|---|
静态 | 随机法 | 随机抽取可用服务实例 | 简单,易扩展 | 没有考虑机器性能问题 |
轮询法 | 按顺序分发请求 | 简单,易扩展 | 没有考虑机器性能问题 | |
加权轮转调度法 | 轮询的升级版,根据服务器性能区别设置权重 | 适合服务器性能不一致的情况 | 不适用于任务需求规格不一致的情况 | |
优先权法 | 对服务器分组,请求优先分配给优先级高的服务器组,当高优先级所有服务故障时,请求分发给此优先级服务器 | 容灾能力强 | 此优先级服务器闲置时间长,造成资源浪费 | |
动态 | 最少连接法 | 传递新的连接给那些进行最少连接处理的服务器 | 简单,负载平滑分布 | 服务器性能不同,算法不理想 |
最快响应速度法 | 将请求分发给响应最快的服务器 | 简单,动态平衡 | 需要实时监控,具有延迟 | |
负载最轻综合均衡法 | 对服务器负载性能数据实时采集并对轻载服务器周期性判断进行动态负载均衡 | 动态平衡 | 复杂,需要实时监控 | |
观察法 | 连接数目合响应时间两项的最佳平衡为依据进行服务器选择 | 相对简单,动态平衡 | 实时监控,动态迁移 | |
综合负载基准对比 | 对服务器负载性能实时采集并对服务器进行动态平衡 | 动态权重设置,动态平衡 | 复杂度较高,动态迁移,需要实时监控 |
表1. 常见负载均衡算法对比
总之,当前云环境下负载均衡算法还没有形成统一的规范,某些研究尝试从某个角度切入对负载均衡问题开展研究,但总体来说仍然有所欠缺,主要体现在以下几点。
1) 不同云环境下实例或节点不同,例如系统、配置、网络带宽与任务需求存在很大差异,并且随着时间的变化而变化。
2) 云环境下负载均衡的细粒度实时性要求高。尽管当前算法对资源状态进行了实时评估,但仍无法对实时变化的请求进行预测,常常需要进行二次调度或多次调度,造成资源浪费。
针对以上问题,结合长短时记忆网络与强化学习技术,提出云环境下基于AI知识分析的负载均衡方法LSTM-TD3 (Long Short Term Memory and Twin Delayed Deep Deterministic policy gradient algorithm)。LSTM-TD3以资源利用率、服务器连接数、响应时间、请求历史数据等为知识参数输入,首先进行任务数预测建模;以预测数据初始化强化学习模型TD3,形成AI分析与评估优化负载均衡计算模型;通过算法训练以及仿真实验对LSTM-TD3的负载均衡效果进行实际验证。实验结果表明,相比传统的云环境负载均衡方法,LSTM-TD3对比无负载均衡、轮询算法、Q-learning和TD3算法分别提高了25.4%,6.41%,3.56%和2.85%,能达到更好的资源负载平衡效果,资源利用率更高。
图1. 云计算任务请求资源负载均衡框架
本文所提出的云计算资源负载均衡框架如图1所示,其核心为基于AI知识分析的负载均衡器。监控单元实时采集的实例单元信息以及部署在实例上的容器信息,结合历史知识汇总到负载均衡器中进行动态分析,最终根据分析模型计算的结果分配计算资源。当前大多数负载均衡算法都考虑了时间、成本、能耗、连接数等指标,但是较少会结合对历史数据的知识进行融合分析。本文在常用指标上创新性地结合历史任务数进行AI知识分析建模,通过学习不同时间段的任务量,预测下一个时间段的任务量,提前做出预测,并及时启用备用实例资源,应对可能的请求高峰,以提高云平台服务质量。
对云环境下的负载均衡问题进行抽象,其本质实则为多目标优化问题,数学模型定义如下。
1) 任务集合定义为 T = t 1 , t 2 , ⋯ , t n ,其中 t i 代表第i个子任务t,n为任务数;
2) 本文通过容器对服务进行部署,容器集合定义为 C = c 1 , c 2 , ⋯ , c m ,其中 c j 中j代表容器的序号,且 m < n ;
3) 集合 x i j 定义任务的分配情况,若 x i j = 1 ,则表示任务 t i 被分配到容器 c j 进行处理,若 x i j = 0 ,为其他;
4) 每个容器需要多种不同类型的资源为任务提供服务,以cpu、内存以及网络宽带作为指标建立资源利用率模型 R u 。其中,cpu表示CPU利用率,mem表示内存利用率,net表示网络带宽使用率。资源利用率可以比较准确的反应负载变化的趋势,当资源利用率 R u 较大时候,当前实例负载较大,反之较小。通过负载均衡指标探测模块可以对相关指标数据实时获取。负载均衡指标计算如公式(1)所示;
R u = 1 1 − c p u ∗ 1 1 − m e m ∗ 1 1 − n e t (1)
5) 资源需求评分 R s c o r e (公式2所示),资源需求评分 B s c o r e 如公式(3)所示,用来衡量实例的负载均衡程度,实现迁移容器时目标的优选;
R s c o r e = C P U ( c a p a c i t y − s u m ( r e q u e s t e d ) c a p a c i t y ) + M E M ( c a p a c i t y − s u m ( r e q u e s t e d ) c a p a c i t y ) (2)
B s c o r e = 1 | c p u − m e m | (3)
6) 结合资源需求评分 R s c o r e 和资源负载均衡度 B s c o r e ,最终状态价值评价函数定义如公式(4)所示,
E s t ( P i ) = ( 1 − w ) R s c o r e ( P i ) + w B s c o r e ( P i ) (4)
其中, P i 为达到当前状态S所采取的负载均衡策略, w ∈ [ 0 , 1 ] 。
随着AI技术的发展和应用,长短时记忆网络被广泛应用于文本分类、机器翻译、语音识别等时序问题。相较于传统回归算法,它引入类似“记忆”的概念,用于处理和“记忆”有关的各种任务。本文引入LSTM [
图2. 强化学习中代理与环境的交互过程
几乎所有的强化学习过程都可以用马尔可夫决策过程来进行描述。本文使用一个五元组 { S , A , P , R , y } 来对此过程进行表示。其中,S代表环境状态的集合,即当前云环境下各个实例,各个容器负载程度集合,用负载均衡指标 R u 进行描述;A表示代理所能采取的动作集合,即负载均衡器所进行的调度操作;P表示状态转移概率,如: P s s ′ a = P ( S t + 1 = s ′ | S t = s , A t = a ) ,即负载均衡器在状态s下采取调度操作a后变为状态 s ′ 的概率;R是奖励函数,即状态s下采取操作a时能获得的奖励;y为衰减因子,取值为[0, 1],用于调整不同训练回合的奖励权重。强化学习中还有一个重要的概念是策略 π ,即云环境下不同的负载均衡执行操作的依据。如,负载均衡器在t时刻的 S t 状态下,根据策略 π 执行动作 A t ,接下来环境(各个实例中不同服务的指标 R u 、 R s c o r e 、 B s c o r e 变化)通过状态转移概率概率P和奖励函数R得到新的状态 S t + 1 和奖励 r t 。状态s下的策略选取如公式(5)。
π * ( a | s ) = arg max a E ( R ) (5)
通过寻找最优价值函数 V * 来寻找最优策略, V π 表示在策略 π 下的价值函数。相关计算如公式(6)所示。
{ V * ( a | s ) = max π V π ( s ) V π ( s ) = E π ( r t + 1 + y V π ( S t + 1 ) | S t = s ) (6)
TD3即Twin Delayed Deep Deterministic policy gradient algorithm [
图3. TD3算法结构框架
TD3算法结构如图3所示,Actor与Critic分别称为演员网络与评论家网络,Actor根据策略,结合当前状态 s t ,输出动作 a t ,Actor目标网络用作对未来可能的动作 s t + 1 进行模拟,输出目标动作 a ˜ t 。Critic网络与Critic目标网络则分别对Actor网络和Actor目标网络的动作进行评判,计算出 Q θ i ( s t , a t ) ,以及目标动作 a ˜ t 下目标Q值 Q θ ′ i ( s t , a ˜ t ) 。图中 ϕ 、 θ i 、 ϕ ′ 和 θ ′ i ( i = 1 , 2 ) 分别代表Actor网络、Critic网络、Actor目标网络和Critic目标网络的参数。Critic网络每一回合都会进行更新,并采取最小Q值策略,即选取Critic目标网络中最小的Q值作为目标值 γ t ,即公式(7)所示。
{ Δ θ i = ∇ θ i ( y t − Q θ i ( s t , a t ) ) 2 y t = r t + γ min i = 1 , 2 Q θ ′ i ( s t + 1 , a ˜ t ) a ˜ t = C ϕ ′ ( s t + 1 ) + ε ′ (7)
其中, ε ′ 为随机噪声,服从截断正态分布 c l i p ( N ( 0 , σ ) , − c , c ) , c > 0 。Actor网络和四个目标网络参数根据公式(8)进行更新。
{ Δ ϕ = ∇ ϕ Q θ 1 ( s t , C ϕ ( s t ) ) θ ′ i ← τ θ i + ( 1 − τ ) θ ′ i ϕ ′ ← τ ϕ + ( 1 − τ ) ϕ ′ (8)
云环境中,排除特殊情况,每天不同时间段、每年不同时期的任务数量波动的具备一定的规律性 [
LSTM-TD3算法伪代码展开如算法1和算法2所示:
算法1:LSTM预测网络
1) 输入历史任务量数据 T h i s t o r y ,作为LSTM的输入。
2) 设置LSTM网络相关参数:input_size = 10、hidden_size = 20、num_layers = 2、bias = 0、dropout = 0.4。
3) 将当前时刻神经网络的输入和下一时刻输入作交叉熵构建损失函数,交叉熵公式如(9),p为真实概率分布,q为预测概率分布:
H ( p , q ) = − ∑ i = 1 n p ( x i ) log ( q ( x i ) ) (9)
4) 按照步骤2循环更新,直至迭代完成,loss值完成收敛。
5) 输出LSTM网络模型参数,用作TD3模型初始化。
算法2:强化学习TD3
1) 初始化Critic网络 Q θ 1 、 Q θ 1 以及Actor网络 C ϕ 参数 θ 1 、 θ 2 、 ϕ 。
2) 使用算法1中的LSTM网络输出的预测任务数,组成预测状态 S t + 1 ,初始化Actor和Critic目标网络参数 θ ′ 1 、 θ ′ 2 、 ϕ ′ 。
3) 初始化经验池M。
4) 对每个episode循环执行以下步骤:
a) 获取云环境下的初始状态 s 0 ,由每个实例不同容器的资源负载度组成。
b) 初始化每一个episode中的临时经验池 M t e m p 。
图4. 本文LSTM-TD3模型结构
c) 若 R u 没有超过系统承载阈值(设定90%的实例资源综合评价指标 R u > 0.9 ,则集群暂停处理请求)并且系统任务转移时间小于限定值,循环执行以下步骤:
i) 于状态 s t 下,选择带有噪声的动作 a t :
a t ~ C ϕ ( s t ) + ε , ε ~ N ( 0 , σ ) 。
ii) 根据策略执行动作 a t ,得到环境反馈的奖励 r t 和新状态 s t + 1 。
iii) 将 ( s t , a t , r t , s t + 1 ) 存入临时经验池 M t e m p 。
iv) 从经验池M进行随机采样,用于Actor,Critic目标网络训练。
v) 重新计算在经验池的随机样本TD误差,更新Sum Tree节点优先级。
vi) 每i步,使用确定性策略梯度更新Actor网络参数 ϕ 。
vii) 结束step循环。
viii) 若 E s t < k ,则 M t e m p 存入经验池,k为负载均衡评价标准的阈值。
5) 结束episode循环。
本实验环境配置如表2所示。负载均衡实验使用CloudSim4.0进行云平台模拟,实验用计算机节点总数设置为50,具体配置如表3所示。共分为五组节点,其中N11-N30为2个处理单元,但是组内节点执行效率有差别,N31-N50采取同样的配置方式,目的是增加云环境的多样性,增加负载均衡的复杂度。
配置 | 参数 |
---|---|
JAVA版本 | 1.7 |
CPU型号 | AMD Ryzem 5 3600X |
内存 | 32 G |
操作系统 | Windows10 |
Paddlepaddle | 2.2.2 |
显卡 | Nvidia 2060super 8 G |
Cuda | 11.2 |
表2. 实验配置
资源节点 | 处理单元数量(个) | 执行效率(MIPS) | 内存(GB) |
---|---|---|---|
N1-N10 | 1 | 500 | 2 |
N11-N20 | 2 | 700 | 4 |
N21-N30 | 2 | 800 | 4 |
N31-N40 | 4 | 1000 | 8 |
N41-N50 | 4 | 1200 | 8 |
表3. 节点参数设置
本文分别在50、100、200和400个任务下进行负载测试实验。取该仿真环境中不同任务下的50次历史实验数据用作LSTM-TD3算法历史数据,对Q-learning、TD3、LSTM-TD3展开训练,根据不同任务,分别训练250个回合。其中,在400个任务的情况下,Q-learning、TD3、LSTM-TD3算法随着迭代回合数的增加,奖励值的收敛结果实验如图5所示。
从图5中可以看出,LSTM-TD3的奖励值在50个回合内,相较于TD3、Q-learning能获得较为稳步上升的奖励,表明基于LSTM预测数据进行初始化的Actor不会出现过大的Q值偏移,因而奖励值也不需要产生过大的波动。同时从50回合到100回合区间内,LSTM-TD3与Q-learning均能较快地到达奖励稳定值(−250)左右,TD3则是在100回合左右突然奖励值达到该稳定值,表明在本实验环境下,三个强化学习模型均能在100回合以内学习完毕。随着回合数的不断增加,能看出TD3与Q-learning的奖励值变化会出现突然的降低情况,证明TD3与Q-learning相比LSTM-TD3,由于缺乏对任务数的预测,缺乏历史知识的分析,对某些环境突变的因素没能做出很好的预测,因此模型相对来说不够稳定。整体上看,在当前实验环境下的负载均衡任务下,传统的Q-learning算法与TD3算法最后都能达到较好的效果,相较于LSTM-TD3,传统的Q-learning与TD3奖励的收敛速度较慢,缺乏历史知识分析也导致了模型的学习速度相对来说较慢,当面临更多任务的时候可能会出现难以收敛的情况。因此,以上实验能够表明,结合LSTM的TD3网络LSTM-TD3能更好地进行负载均衡。
图5. 不同算法下奖励随着回合的变化(400个任务)
图6. 不同任务数下不同负载均衡策略完成任务所需时间
本文对50、100、200和400个任务下的负载测试实验分别消耗的时间进行展示并分析,结果如图6所示。在任务数为50个时,无负载、轮询算法、Q-learning、TD3、LSTM-TD3算法分别消耗的时间为602 ms、529 ms、520 ms、541 ms、以及530 ms。各个算法下完成任务消耗时间接近,表明在此环境下基于强化学习的负载均衡算法并没有提供比传统轮询算法更好的负载效果。但由于任务数的增加,传统轮询算法属于静态算法,无法对环境的变化做到动态的负载。因此,在400个任务下传统的算法完成任务需要的时间比基于强化学习算法完成任务需要的时间多得多,例如轮询算法在400个任务下所需时间为13,901 ms,LSTM-TD3为12,473 ms,两者相差1428 ms。
以上结果可以看出,使用训练好的强化学习模型进行负载均衡,相比无负载均衡算法以及静态负载均衡算法更能有效对资源进行调度,达到资源利用均衡的状态。LSTM-TD3相比传统轮询方法、Q-learning [
任务数 算法 | 50 | 100 | 200 | 400 | 平均 |
---|---|---|---|---|---|
无负载均衡 | 11.96% | 25.82% | 24.53% | 25.85% | 25.4% |
轮询 | −0.18% | 6.67% | 8.91% | 10.27% | 6.41% |
Q-learning | 1.92% | 2.80% | 5.39% | 4.13% | 3.56% |
TD3 | 2.03% | 2.70% | 3.13% | 3.54% | 2.85% |
表4. 性能比较
由表4可以看出,LSTM-TD3相比其他算法能更有效地进行负载均衡。与传统的云环境负载均衡方法对比,在本文的实验环境下,LSTM-TD3相比无负载均衡、轮询算法、Q-learning和TD3算法平均分别提高了25.4%,6.41%,3.56%和2.85%,能达到更好的平衡效果,资源利用率更高。
针对云计算环境下传统负载均衡方法难以对蕴含在历史数据中的流量信息进行知识分析与智能利用问题,对蕴含在云平台历史运行过程中的流量信息进行知识分析,用于预测云计算环境下新到任务的请求量,并提出一种基于AI知识分析的负载均衡方法LSTM-TD3。LSTM-TD3结合LSTM用于预测模型训练进而对TD3进行初始化,以资源利用率、服务器连接数、响应时间、请求历史数据等为知识参数输入,进行任务数预测建模,紧接着以预测数据初始化强化学习模型TD3,形成AI分析与评估优化负载均衡计算模型,并通过算法训练和仿真实验对模型和负载均衡结果进行实际验证。在CloudSim4.0进行云平台模拟,对比了Q-learning、TD3、LSTM-TD3模型奖励值的收敛结果,以及传统负载均衡算法与强化学习负载均衡算法完成任务所消耗的时间。实验结果表明,相比传统的云环境负载均衡方法,LSTM-TD3对比无负载均衡、轮询算法、Q-learning和TD3算法分别提高了25.4%,6.41%,3.56%和2.85%,能达到更好的资源负载均衡效果,资源利用率更高。
李 莹,刘 忻,邱 洋,武 扬. 云环境下基于AI知识分析的负载均衡方法Load Balancing Based on AI Knowledge Analysis in Cloud Environment[J]. 计算机科学与应用, 2022, 12(08): 2050-2061. https://doi.org/10.12677/CSA.2022.128208
https://doi.org/10.1145/3014812.3014852
https://doi.org/10.4028/www.scientific.net/AMR.915-916.1382
https://doi.org/10.1007/978-3-319-64861-3_30
https://doi.org/10.1109/GLOCOM.2018.8647718
https://doi.org/10.1109/IPDPS.2000.845974
https://doi.org/10.18653/v1/D16-1053
https://doi.org/10.1155/1999/386856
https://doi.org/10.1007/BF00992698