CN116048801A - 边缘环境下动态负载均衡的深度强话化学习资源调度方法 - Google Patents
边缘环境下动态负载均衡的深度强话化学习资源调度方法 Download PDFInfo
- Publication number
- CN116048801A CN116048801A CN202310039766.XA CN202310039766A CN116048801A CN 116048801 A CN116048801 A CN 116048801A CN 202310039766 A CN202310039766 A CN 202310039766A CN 116048801 A CN116048801 A CN 116048801A
- Authority
- CN
- China
- Prior art keywords
- server
- task
- value
- scheduling
- resources
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出了一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,包括以下步骤:S1,对读取的数据进行预处理;S2,将服务器的状态值转换为Actor网络模型能够处理的格式;S3,初始化Actor网络模型和Critic网络模型的参数值;S4,通过Actor网络模型提供调度决策将任务分配到合理的服务器上;S5,在调度任务执行完成后释放所占用的服务器资源;S6,判断服务器能否执行新的调度任务;S7,更新执行调度任务后服务器资源发生的变化;S8,对于当前调度决策奖励值模块反馈一个奖励值,评价调度决策的好坏。本发明能使得所有服务器在任务调度资源得到充分利用,实现服务器的负载均调度。
Description
技术领域
本发明涉及边缘计算领域,特别是涉及一种边缘环境下动态负载均衡的深度强话化学习资源调度方法。
背景技术
服务器的负载均衡是许多服务提供商都比较关注的问题,如何去解决由于任务调度不合理导致的负载不均衡的情况是目前急需解决的难题。传统的启发式算法在一般环境下表现良好,但是面对复杂环境下启发式算法无法适应系统中的环境的持续变化。传统方法将任务调度到某台服务器上执行。此时服务器的状态发生了改变,但是调度中心并不能接受到这些信息,导致调度中心并不能更新的服务器资源变化做出最优的调度策略。强化学习是基于真实的实际数据建模的,并且可以识别复杂的环境,为解决服务器负载均衡提供了技术支持和解决方案。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种边缘环境下动态负载均衡的深度强话化学习资源调度方法。
为了实现本发明的上述目的,本发明提供了一种边缘环境下动态负载均衡的深度强话化学习资源调度系统,包括:
数据预处理模块:用于对读取的数据进行预处理;
输入状态处理模块:用于将服务器的状态值转换为模型能够处理的格式;
模型初始化模块:用于初始化Actor网络模型和Critic网络模型的参数值;
调度策略模块:用于决定下一个任务将调度到哪一台服务器上执行任务,将任务通过Actor提供调度决策分配到合理的服务器上;
资源释放模块:用于在调度任务执行完成后释放所占用的服务器资源。
服务器资源检测模块:用于判断服务器能否执行新的调度任务;
服务器资源更新模块,用于更新执行调度任务后服务器资源发生的变化;
奖励值模块:对于当前调度决策奖励值模块会反馈一个值,评价其调度的好坏。
本发明还提出一种缘环境下动态负载均衡的深度强话化学习资源调度方法,包括以下步骤:
S1,对读取的数据进行预处理:将源数据集中CPU、IO、MEN这三个不同资源的利用率封装成为新的数据Task,Task代表任务请求;
预处理过程中,将源数据中的每类数据依次按行读取,将每一行的数据封装成一个任务请求,直至源数据读取完毕。
S2,将服务器的状态值转换为Actor网络模型能够处理的格式:先读取服务器状态信息,数据此时为list类型;然后将所述服务器状态信息添加到result数组中,最后转换为numpy类型,使得数据输入符合模型的输入要求;所述状态信息为所有服务器的状态值集合;
S3,初始化Actor网络模型和Critic网络模型的参数值:Actor网络模型初始化输入的服务器状态的维度以及执行动作的维度;所述服务器状态的维度即服务器的数据类型,在本文中为CPU、IO、MEN,则为3;执行动作的维度即服务器的数量。Critic网络模型初始化执行动作的维度;
S4,通过Actor网络模型提供调度决策将任务分配到合理的服务器上:将当前的服务器状态信息以及服务器的个数信息传入Actor网络模型,然后经过Actor网络模型输出调度策略的概率分布,进行选择服务器操作;
S5,在调度任务执行完成后释放所占用的服务器资源;
S6,判断服务器能否执行新的调度任务;
S7,更新执行调度任务后服务器资源发生的变化:对执行调度任务的服务器的资源进行更新,将服务器当前剩余的资源数目减去任务执行时所需要的服务器资源大小得到服务器新的资源信息;
S8,对于当前调度决策,奖励值模块反馈一个奖励值,评价调度决策的好坏。
进一步地,所述Actor网络模型由三层全连接网络构成,先由输入层将服务器的状态信息经过线性转化为隐藏层的输入信息,再通过隐藏层进行映射降维,最后输出层输出选择服务器的概率分布;其中,每一层网络对数据进行压缩,压缩至(0,0.1)之间,这是为了网络能够在合理的时间内收敛;
所述Critic网络模型由三层全连接网络构成,先由输入层将状态信息经过线性转化为隐藏层的输入信息,然后通过隐藏层进行映射降维,将服务器线性变化的状态信息传入输出层,输出层输出对当前动作的价值估即预测的总奖励值。
进一步地,所述S5包括:
首先判断执行任务队列中任务的执行时间是否满足设定的任务截止时间,若满足则代表任务执行完毕,则依次对所有满足释放条件的执行任务的服务器进行资源释放操作;执行完释放操作之后要将该服务器上任务从执行任务队列中移除,最后返回释放过后的资源池的信息。所涉及的资源包括服务器的CPU、IO、内存这三类资源。
进一步地,所述S6包括:
先对任务进行预调度,得到预调度之后的服务器剩余资源,所述剩余资源为服务器的当前资源与任务所需资源的差值;
如果任务的执行时间在任务截止时间内,且服务器的剩余资源都大于0,则可以执行任务的调度操作;
如果任务的执行时间在任务的截止时间内,但是服务器的剩余资源小于0即资源不足则拒绝提供服务;
如果任务的执行时间大于截止时间,则该任务超时拒绝执行任务。
进一步地,所述奖励值模块反馈一个奖励值,包括以下步骤:
首先分别求出CPU、IO、内存的利用率平均值用来计算奖励值:
其中Cr、Ir、Mr分别为CPU、IO、内存的利用率平均值;
N表示总共的资源数目;
然后将CPU、IO、内存的利用率平均值转换为奖励值:
CPU_R=Cr/(max_cpu*servern)
IO_R=Ir/(max_io*servern)
MEN_R=Mr/(max_men*servern*3)
其中CPU_R、IO_R、MEN_R分别为CPU、IO、内存利用率的奖励值;
max_cpu、max_io、max_men分别为CPU剩余资源的最大值、IO剩余资源的最大值以及MEN剩余资源的最大值;
servern表示服务器的数量;
由此,最终的奖励值定义为:
R=CPU_R+IO_R+MEN_R。
由于每个服务器消耗的资源不一样,若单一考虑一个因素可能导致优化只是局部最优解。本方法的整个优化策略同时考虑了CPU、IO、内存这三个方面的影响,使得奖励值更为合理,从而使得调度策略更为合理。
进一步地,还包括:
将服务器的剩余资源先进行归一化操作,再通过Critic网络模型得到预测的奖励值,将所述预测的奖励值与所述奖励值模块反馈的奖励值求取均方误差,利用均方误差评判调度决策的好坏,指导模型进行调度。
进一步地,所述Critic网络模型的训练包括以下步骤:
1)将状态s由numpy类型转换为tensor类型,便于模型处理;
2)Critic网络通过当前的状态s估计当前状态执行某个策略可以获得的价值v;
3)将动作r由numpy类型转换为tensor类型,便于模型处理;
4)将下一时刻状态s_由numpy类型转换为tensor类型,便于模型处理;
5)reality_v=r+Gamma*self.critic(s_).detach(),其中reality_v表示真实价值;r表示真实的奖励值;Gamma表示折扣系数;self.critic(s_).detach()表示无需计算梯度的下一时刻状态s_的预测奖励值;
6)真实价值reality_v=下一时刻的奖励值*折扣系数Gamma+r;
7)将真实价值reality_v和网络预测的预测价值v进行均方误差操作得到td_e,td_e表示TD误差;
8)对td_e进行反向传播更新网络模型的参数;
9)通过多组真实价值reality_v与预测价值v的差值生成优势函数。
综上所述,由于采用了上述技术方案,本发明能在复杂的网络环境下实现服务器负载均衡调度,通过强化学习能够根据动态变化的环境选择最佳的策略执行,使得资源空闲的服务器得到充分利用。防止出现有服务器资源空闲,有的服务器超负荷使用。通过强化学习算法使得所有服务器在任务调度资源得到充分利用,实现服务器的负载均调度。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明的流程示意图。
图2是拒绝数的任务数示意图。
图3是服务器剩余资源的方差值示意图。
图4是任务调度获得的奖励值示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
本发明提供了一种边缘环境下动态负载均衡的深度强话化学习资源调度系统,如图1所示,包括:
数据预处理模块:用于对读取的数据进行预处理;
输入状态处理模块:用于将服务器的状态值转换为模型能够处理的格式;
模型初始化模块:用于初始化Actor网络模型和Critic网络模型的参数值;
调度策略模块:用于决定下一个任务将调度到哪一台服务器上执行任务,将任务通过Actor提供调度决策分配到合理的服务器上;
资源释放模块:用于在调度任务执行完成后释放所占用的服务器资源。
服务器资源检测模块:用于判断服务器能否执行新的调度任务;
服务器资源更新模块,用于更新执行调度任务后服务器资源发生的变化;
奖励值模块:对于当前调度决策奖励值模块会反馈一个值,评价其调度的好坏。本发明还提出一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,包括以下步骤:
S1,对读取的数据进行预处理;
将源数据集中的CPU、IO、MEN三个独立的不同资源的利用率,这三部分的内容封装成为新的数据Task,Task代表任务请求。
预处理过程中,将源数据中的每类数据依次按行读取,将每一行的数据封装成一个任务请求,直至源数据读取完毕。
S2,将服务器的状态值转换为Actor网络模型能够处理的格式;
先读取LIST中的服务器状态信息,数据此时为list类型;然后将其添加到result数组中,最后转换为numpy类型,使得数据输入符合模型的输入要求。
所述状态信息为所有服务器的状态值集合;
S3,初始化Actor网络模型和Critic网络模型的参数值;
Actor网络模型初始化需要输入的服务器状态的维度以及执行动作的维度,它根据输入的状态信息输出调度决策的概率分布。所述状态的维度即服务器的数据类型,在本文中为CPU、IO、MEN,则为3;执行动作的维度即服务器的数量。Critic模型只需要执行动作的维度,它负责评估当前的调度策略的好坏。如果当前的策略得分较高就增加当前动作出现的概率,反之,则减少该动作出现的概率。具体执行步骤为:
所述Actor网络模型由三层全连接网络构成,输入层将服务器的状态信息经过线性转化为隐藏层的输入信息,输出层输出的是选择服务器的概率分布,大小为Actor_dim维。其中,每一层网络对数据进行压缩,压缩至(0,0.1)之间,这是为了网络能够在合理的时间内收敛。
所述Critic网络模型由三层全连接网络构成,输入层将状态信息经过线性转化为隐藏层的输入信息,输出层传入服务器线性变化的状态信息,输出层输出对当前动作的价值估即预测的总奖励值。
Actor网络由全连接层构成,第一层全连接nn.Linear(state_dim,256)。服务器的状态为state_dim维数据经过线性变换转换为256维的输出数据。nn.Linear(256,128)第二层网络将256维数据经过线性变换为128维的数据。第三层全连接网络nn.Linear(128,action_dim)action_dim维的的动作决策。因为采用的是全连接层所以添加nn.Dropout()是为了防止模型过拟合。Dropout在不同训练过程中随机会丢掉一部分神经元。神经元的激活值以一定的概率丢掉,本次训练不更新权值。最后经过forward前向传播将三层网络连接起来实现将信息的前向传播让损失函数调用backward。
Critic网络层同样是由三层全连接层构成,前面两层与Actor网络做的操作相同,只是最后一层网络层输出的对价值的估计。用于计算TD_error,评价当前的决策的好坏程度。
S4,通过Actor提供调度决策将任务分配到合理的服务器上;
通过传入当前的服务器状态信息以及服务器的个数信息,然后经过神经网络模型输出调度策略的概率分布,进行选择服务器操作。
具体为:对服务器信息用Actor调度choose_action()函数得到需要调度的服务器信息。实质是choose_action将当前的服务器状态信息作为参数传入,在中choose_action中调用Actor网络根据当前的状态得到所有服务器被选中的概率分布,从中选择需要执行任务的服务器。
S5,在调度任务执行完成后释放所占用的服务器资源;
首先判断执行任务队列中任务的执行时间是否满足设定的任务截止时间,若满足则代表任务执行完毕,则依次对所有满足释放条件的执行任务的服务器进行资源释放操作。执行完释放操作之后要将该服务器上任务从执行任务队列中移除,最后返回释放过后的资源池的信息。所涉及的资源包括服务器的CPU、IO、内存这三类资源。
S6,判断服务器能否执行新的调度任务,即对要执行的调度任务进行预调度,防止服务器剩余资源不足无法提供调度任务的情况。所述剩余资源为服务器的当前资源与任务所需资源的差值。
先对任务进行预调度,得到预调度之后的服务器剩余资源。如果任务的执行时间在任务截止时间内,且服务器的剩余资源都大于0,则可以执行任务的调度操作。如果任务的执行时间在任务的截止时间内,但是服务器的剩余资源小于0即资源不足则拒绝提供服务。如果任务的执行时间大于截止时间,则该任务超时拒绝执行任务。
S7,更新执行调度任务后服务器资源发生的变化;
对执行调度任务的服务器的资源进行更新,将服务器当前剩余的资源数目减去任务执行时所需要的服务器资源大小得到服务器新的资源信息。
S8,对于当前调度决策奖励值模块会反馈一个值,评价其调度的好坏;
通过将服务器的剩余资源利用率转换为Critic网络模型需要的奖励值,指导模型进行调度。获取所有服务器三方面的平均值Cr、Ir、Mr。分别对其做归一化处理,使其范围在同一个水平。最后获得具有其它三个因素的性质的新奖励值R。整个优化策略的过程同时考虑了三个方面的影响。
具体为:首先分别求出CPU、IO、内存的利用率平均值用来计算奖励值。
其中Cr、Ir、Mr分别为CPU、IO、内存的利用率平均值;
N表示总共的资源数目。
然后将CPU、IO、内存的利用率平均值转换为奖励值:
CPU_R=Cr/(max_cpu*servern)
IO_R=Ir/(max_io*servern)
MEN_R=Mr/(max_men*servern*3)
其中CPU_R、IO_R、MEN_R分别为CPU、IO、内存利用率的奖励值;
max_cpu、max_io、max_men分别为CPU剩余资源的最大值、IO剩余资源的最大值以及MEN剩余资源的最大值。
servern表示服务器的数量;
由此,最终的奖励值定义为:
R=CPU_R+IO_R+MEN_R
进一步地,所述模型是采用训练数据进行训练后得到的。
a)对Critic模型的训练过程如下:
构建critic网络层,需要传入状态的维度信息作为参数。
调用Adam优化器更新critic网络中可学习参数。
计算均方误差(MSE)。
b)对Actor网络模型的训练过程如下:
构建Actor网络层,需要传入状态维度和动作的维度信息作为参数。
调用Adam算法对Actor网络参数进行更新。
调用RMSprop优化器更新Actor网络中的可学习参数。
在训练过程中,网络模型也在更新:
a)Actor网络公式更新:
其中,θ表示网络模型的参数;
α表示学习率;
Q(s,a)表示在当前状态s下,采取动作a将要获得的奖励值。
V(s)表示是指在当前状态s采取所有可能的动作所获得的奖励值期望。
这里用TD误差替代优势函数,因为TD误差是优势函数的无偏估计。TD误差的计算公式如下:
δ=r+γV(s')-V(s)
其中,δ表示TD误差;
r表示真实的奖励值。
γ表示折扣系数。
V(S')表示下一时刻获取的奖励值。
V(s)表示基线值。
因此Actor网络参数的更新公式为:
δ=r+γV(S')-V(s)
其中,Actor学习网络参数的具体步骤为:
Actor.learn(stage_current_state,f,td_error)对Actor网络进行参数更新,
1)s=torch.FloatTensor(s)将状态s由numpy类型转换为tensor类型,便于模型处理。
2)prob=self.Actor(s)通过Actor网络模型输出所有动作的概率分布。
3)log_prob=torch.log(prob),Actor_loss=-log_prob[a]*td根据td_error学习。求出Actor的损失函数。
4)Actor_loss.backward()将Actor的损失函数做反向传播操作,更新Actor的参数。
b)Critic网络公式更新:
一般使用均方误差MSE损失函数来做迭代更新,均方误差损失函数如下:
n表示奖励值的数量;
R表示当前获取的奖励值;
γ表示折扣系数;
V(s')表示Actor网络的预测值;
V(S,w)表示Actor网络的的基线值;
δ表示TD误差;
其中时间差分学习(TD)误差的代码表示为:
td_error=critic.learn(stage_current_state,reward_stage,stage_next_state,Gamma=0.99)
其中td_error为TD误差,即δ;
critic.learn()表示critic网络调用learn函数根据td_error进行学习。
stage_current_state表示当前服务器的状态;
reward_stage表示奖励值;
stage_next_state表示下一时服务器的状态;
Gamma表示折扣系数。
将服务器当前的状态信息,与环境交互获取的奖励值以及下一个状态的服务器状态信息作为critic网络输入。让critic网络通过更新参数的函数learn()更新网络的参数信息。critic网络的输入即为当前状态,奖励值和下一时刻的状态,网络的输出应为对动作的评估结果,即TD误差。
Critic网络模型更新的具体步骤如下:
1)s=torch.FloatTensor(s)将状态s由numpy类型转换为tensor类型,便于模型处理。
2)v=self.critic(s),critic网络通过当前的状态s估计当前状态执行某个策略可以获得的价值v。
3)r=torch.FloatTensor(r)将动作r由numpy类型转换为tensor类型,便于模型处理。
4)s_=torch.FloatTensor(s_)将下一时刻状态s_由numpy类型转换为tensor类型,便于模型处理。
5)reality_v=r+Gamma*self.critic(s_).detach()
其中reality_v表示真实价值;
r表示真实的奖励值。
Gamma表示折扣系数。
self.critic(s_).detach()表示返回一个的tensor,得到新的tensor永远不需要计算其梯度,不具有grad。
6)下一时刻的奖励值*折扣系数Gamma+r就是真实价值reality_v。
7)td_e=self.lossfunc(reality_v,v)将真实价值reality_v和网络预测的预测价值v进行均方误差操作得到td_e,td_e表示TD误差。
8)td_e.backward()对td_e进行反向传播更新网络模型的参数。
9)advantage=(reality_v-v).detach()多组真实价值reality_v-预测价值v得到优势函数。
advantage表示优势函数。
此外,还包括绘图模块,将实验训练得到数据通过可视化图形呈现出来。
实验得到的数据包括服务器拒绝任务数量,服务器剩余资源利用率的方差值以及奖励值三个部分。将这三部分数据通过Tensorboard的writer.add_scalar()方法进行绘图。添加三部分的数据到writer中:
writer.add_scalar("rej_sum",rej_sum,i)
writer.add_scalar("std",self.std,i)
writer.add_scalar("sumreward",sumreward,i)
writer.add_scalar()方法中第一个参数是保存图片的名称,第二个参数表示Y轴,第三个参数表示X轴。
具体实施例的实验数据由贵州白山云科技有限公司的提供数据集,其中该数据集中包含了CPU、IO、内存的利用率。
图中该发明的算法与DQN、Policy Gradient以及Actor Critic进行对比效果更优。最下方的深蓝色就是我们采用基于奖励值聚合的A2C模型训练出的结果。它的任务拒绝率接近于0,波动的范围较小,证明算法对于处理任务请求具有良好的效果。其次该算法的总的方差值最小,对比其他三种方法具有更好的稳定性。
1)通过图2可得知,所有任务序列执行完之后的总拒绝任务数量,经过1000次迭代基于奖励值聚合的A2C模型的任务拒绝数量保持为0左右,比其他三种方法效果都要好。
2)计算所有服务器进行一次调度之后的剩余资源的方差值,对所有的调度任务计算出的方差值求和得到图3:最低的曲线表示该模型执行所有任务计算得到的方差值,该值越低表示所有的服务器资源利用率波动较小,负载均衡效果更好。
3)计算所有服务器进行一次调度之后的获得的奖励值,对所有的调度任务得到的奖励值求和得到图的总奖励值的结果图像,如图4所示:奖励值是由每一次调度决策所共同决定的,奖励值越高越好。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (7)
1.一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,其特征在于,包括以下步骤:
S1,对读取的数据进行预处理:将源数据集中CPU、IO、MEN这三个不同资源的利用率封装成为新的数据Task,Task代表任务请求;
S2,将服务器的状态值转换为Actor网络模型能够处理的格式:先读取服务器状态信息,数据此时为list类型;然后将所述服务器状态信息添加到result数组中,最后转换为numpy类型,使得数据输入符合模型的输入要求;
S3,初始化Actor网络模型和Critic网络模型的参数值:Actor网络模型初始化输入的服务器状态的维度以及执行动作的维度;Critic网络模型初始化执行动作的维度;
S4,通过Actor网络模型提供调度决策将任务分配到合理的服务器上:将当前的服务器状态信息以及服务器的个数信息传入Actor网络模型,然后经过Actor网络模型输出调度策略的概率分布,进行选择服务器操作;
S5,在调度任务执行完成后释放所占用的服务器资源;
S6,判断服务器能否执行新的调度任务;
S7,更新执行调度任务后服务器资源发生的变化:对执行调度任务的服务器的资源进行更新,将服务器当前剩余的资源数目减去任务执行时所需要的服务器资源大小得到服务器新的资源信息;
S8,对于当前调度决策,奖励值模块反馈一个奖励值,评价调度决策的好坏。
2.根据权利要求1所述的一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,其特征在于,所述Actor网络模型由三层全连接网络构成,先由输入层将服务器的状态信息经过线性转化为隐藏层的输入信息,再通过隐藏层进行映射降维,最后输出层输出选择服务器的概率分布;其中,每一层网络对数据进行压缩,压缩至(0,0.1)之间,这是为了网络能够在合理的时间内收敛;
所述Critic网络模型由三层全连接网络构成,先由输入层将状态信息经过线性转化为隐藏层的输入信息,然后通过隐藏层进行映射降维,将服务器线性变化的状态信息传入输出层,输出层输出对当前动作的价值估即预测的总奖励值。
3.根据权利要求1所述的一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,其特征在于,所述S5包括:
首先判断执行任务队列中任务的执行时间是否满足设定的任务截止时间,若满足则代表任务执行完毕,则依次对所有满足释放条件的执行任务的服务器进行资源释放操作;执行完释放操作之后要将该服务器上任务从执行任务队列中移除,最后返回释放过后的资源池的信息。
4.根据权利要求1所述的一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,其特征在于,所述S6包括:
先对任务进行预调度,得到预调度之后的服务器剩余资源,所述剩余资源为服务器的当前资源与任务所需资源的差值;
如果任务的执行时间在任务截止时间内,且服务器的剩余资源都大于0,则可以执行任务的调度操作;
如果任务的执行时间在任务的截止时间内,但是服务器的剩余资源小于0即资源不足则拒绝提供服务;
如果任务的执行时间大于截止时间,则该任务超时拒绝执行任务。
5.根据权利要求1所述的一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,其特征在于,所述奖励值模块反馈一个奖励值,包括以下步骤:
首先分别求出CPU、IO、内存的利用率平均值用来计算奖励值:
其中Cr、Ir、Mr分别为CPU、IO、内存的利用率平均值;
N表示总共的资源数目;
然后将CPU、IO、内存的利用率平均值转换为奖励值:
CPU_R=Cr/(max_cpu*servern)
IO_R=Ir/(max_io*servern)
MEN_R=Mr/(max_men*servern*3)
其中CPU_R、IO_R、MEN_R分别为CPU、IO、内存利用率的奖励值;
max_cpu、max_io、max_men分别为CPU剩余资源的最大值、IO剩余资源的最大值以及MEN剩余资源的最大值;
servern表示服务器的数量;
由此,最终的奖励值定义为:
R=CPU_R+IO_R+MEN_R。
6.根据权利要求1所述的一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,其特征在于,还包括:
将服务器的剩余资源先进行归一化操作,再通过Critic网络模型得到预测的奖励值,将所述预测的奖励值与所述奖励值模块反馈的奖励值求取均方误差,利用均方误差评判调度决策的好坏,指导模型进行调度。
7.根据权利要求1所述的一种边缘环境下动态负载均衡的深度强话化学习资源调度方法,其特征在于,所述Critic网络模型的训练包括以下步骤:
1)将状态s由numpy类型转换为tensor类型,便于模型处理;
2)Critic网络通过当前的状态s估计当前状态执行某个策略可以获得的价值v;
3)将动作r由numpy类型转换为tensor类型,便于模型处理;
4)将下一时刻状态s_由numpy类型转换为tensor类型,便于模型处理;
5)reality_v=r+Gamma*self.critic(s_).detach(),其中reality_v表示真实价值;r表示真实的奖励值;Gamma表示折扣系数;self.critic(s_).detach()表示无需计算梯度的下一时刻状态s_的预测奖励值;
6)真实价值reality_v=下一时刻的奖励值*折扣系数Gamma+r;
7)将真实价值reality_v和网络预测的预测价值v进行均方误差操作得到td_e,td_e表示TD误差;
8)对td_e进行反向传播更新网络模型的参数;
9)通过多组真实价值reality_v与预测价值v的差值生成优势函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310039766.XA CN116048801A (zh) | 2023-01-13 | 2023-01-13 | 边缘环境下动态负载均衡的深度强话化学习资源调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310039766.XA CN116048801A (zh) | 2023-01-13 | 2023-01-13 | 边缘环境下动态负载均衡的深度强话化学习资源调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048801A true CN116048801A (zh) | 2023-05-02 |
Family
ID=86127071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310039766.XA Pending CN116048801A (zh) | 2023-01-13 | 2023-01-13 | 边缘环境下动态负载均衡的深度强话化学习资源调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048801A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194057A (zh) * | 2023-11-08 | 2023-12-08 | 贵州大学 | 一种基于强化学习优化边缘能耗与负载的资源调度方法 |
-
2023
- 2023-01-13 CN CN202310039766.XA patent/CN116048801A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194057A (zh) * | 2023-11-08 | 2023-12-08 | 贵州大学 | 一种基于强化学习优化边缘能耗与负载的资源调度方法 |
CN117194057B (zh) * | 2023-11-08 | 2024-01-23 | 贵州大学 | 一种基于强化学习优化边缘能耗与负载的资源调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112764936A (zh) | 基于深度强化学习的边缘计算服务器信息处理方法及装置 | |
CN115237581B (zh) | 一种面向异构算力的多策略智能调度方法和装置 | |
CN112667400B (zh) | 边缘自治中心管控的边云资源调度方法、装置及系统 | |
CN108845874A (zh) | 资源的动态分配方法及服务器 | |
CN111866187B (zh) | 分布式深度学习推理云平台任务调度方法 | |
CN116048801A (zh) | 边缘环境下动态负载均衡的深度强话化学习资源调度方法 | |
CN111489095A (zh) | 一种风险用户管理方法、装置、计算机设备和存储介质 | |
US20220414470A1 (en) | Multi-Task Attention Based Recurrent Neural Networks for Efficient Representation Learning | |
CN115686846B (zh) | 边缘计算中融合图神经网络和强化学习的容器集群在线部署方法 | |
CN112232887A (zh) | 一种数据处理方法、装置、计算机设备以及存储介质 | |
CN113781002A (zh) | 云边协同网络中基于代理模型和多种群优化的低成本工作流应用迁移方法 | |
CN106874112A (zh) | 一种结合负载均衡的工作流回填方法 | |
CN112990958A (zh) | 数据处理方法、装置、存储介质及计算机设备 | |
CN110971683B (zh) | 基于强化学习的服务组合方法 | |
US20230342626A1 (en) | Model processing method and related apparatus | |
CN117555683A (zh) | 基于深度强化学习的云集群资源调度方法 | |
CN115759672A (zh) | 客服排班方法及装置 | |
CN115237592A (zh) | 隐私感知的混合云服务流程调度方法 | |
CN116204282A (zh) | 一种深度学习算法模型推理调度引擎架构及方法 | |
CN110348681B (zh) | 一种电力cps动态负荷分配方法 | |
CN113010430A (zh) | 一种测试方式推荐方法、装置和电子设备 | |
CN114327925A (zh) | 一种电力数据实时计算调度优化方法及系统 | |
CN112667398B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN111709583B (zh) | 用户留存时间生成方法、装置、电子设备和介质 | |
CN111709787B (zh) | 用于生成用户留存时间的方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |