一种云计算资源池动态调度方法
文献发布时间:2024-04-18 19:58:26
技术领域
本发明属于云计算技术领域,更具体地,涉及一种云计算资源池动态调度方法。
背景技术
云计算是数据处理和数据存储中最常用的分布式系统之一。数据处理和数据存储的分布式系统之一。由于云计算处理的数据规模不断扩大、调度多个任务以保持效率并减少空闲变得越来越具有挑战性。
云计算是一种基于需求的网络访问模式,可共享一组配置好的资源,包括网络、服务器、存储位置、应用程序和服务,同时最大限度地减少延迟,降低管理需求以及与服务提供商的交互。
云计算实现了分布式和并行计算,使其成为单机和有限内存无法处理的大数据处理的常见选择。在使用云计算进行大数据处理时,用户总是希望在短时间内以最低成本完成工作。另一方面,云服务提供商的目标是最大限度地提高资源效率和利润。因此优化云计算中的资源分配是其中的一个主要挑战。由于云计算用户的增长和满足现代技术计算需求的需要,这一问题正变得越来越重要。目前,由于车载设备的空间和计算能力有限,不断增长的车辆流量和广泛的云应用给车载网络带来了网络安全挑战。这种限制增加了网络在潜在网络威胁(如分布式拒绝服务(DDoS)攻击和数据泄露)面前的脆弱性。此类应用需要高效的云调度来增强其安全性。
目前,某些方案提出了基于贪婪算法和遗传算法的神经网络任务调度方法,从而提供最佳解决方案。然而,这些方法的一个显著局限是遗传算法需要较长的执行时间,任务调度的计算成本高。
发明内容
本发明的目的是提出一种云计算资源池动态调度方法,实现更智能地分配云计算资源,提高系统整体性能并降低成本。
为实现上述目的,本发明提出了一种云计算资源池动态调度方法,包括:
计算新加入云计算的任务的权重属性;
利用完成训练的神经网络,根据每个任务的权重属性将不同的任务加入至不同优先级的类别中;
判断云计算资源池中闲置资源的数量是否小于或等于属于最高优先级类别的任务的数量,若是,则直接对最高优先级类别的任务进行云计算资源的分配,否则,对最高优先级类别和次高优先级类别的任务同时进行云计算资源的分配;
在对任务进行云计算资源的分配过程中,采用遗传算法基于适应度为任务分配适应的云计算资源。
可选地,所述计算新加入云计算的任务的权重属性包括:
利用历史数据,估算新加入云计算的任务的参数值,所述参数值包括执行时间、成本和系统效率;
基于所述参数值,计算任务的总权重。
可选地,所述任务的总权重通过以下公式计算:
;
式中,TW[i]是任务 i 的总权重,WP(ET)为执行时间权重,WP(C)为成本权重,WP(SE)为系统效率权重,ET[i]是任务 i 的执行时间,C[i]是成本,SE[i]是系统效率。
可选地,根据每个任务的权重属性将不同的任务加入至不同优先级的类别中,包括:
将一项任务的权重与不同优先级类别任务的平均权重进行比较,若该项任务的权重与某个优先级类别中任务的平均权重的差值的绝对值小于设定值,则将该项任务划分为对应的优先级类别中。
可选地,在判断云计算资源池中闲置资源的数量是否小于或等于属于最高优先级类别的任务的数量之前,还包括:
判断任一项任务在上次调度中是否一直在队列中等待,若是则提高该任务所属类别的优先级。
可选地,所述神经网络为前馈反向传播神经网络,所述神经网络的隐藏层数量为20层;
所述神经网络的传递函数为:
;
其中,X
所述神经网络的性能函数为:
;
其中,Y
可选地,采用遗传算法基于适应度为任务分配适应的云计算资源包括:
随机构建初始种群,计算每个染色体的适应度函数值,其中,使用十进制方法来表示染色体,所有资源都有一个十进制数字,染色体中的每个基因都存储了该十进制数字,任务和计算资源作为染色体的基因,染色体的适应度函数值基于组成该染色体的基因的适应度函数值获得;
根据适应度函数值对染色体进行排序,将适应度函数值较高的染色体用于后代的生成;
使用两点交叉法,选择亲代染色体的不同部分来产生子代;
应用突变算子,对所需基因进行变异;
在突变基因周围进行局部搜索,如果有适应度函数值更高的基因,则选择该基因;
重复上述过程,直到找到最优集或迭代次数超过预定的迭代次数为止;
按照遗传算法输出结果为任务分配适应的云计算资源。
可选地,在根据适应度函数值对染色体进行排序之前还包括:
如果上一次调度的队列中还有任务在等待,则将该任务对应的基因的适合度值将增加 10%。
可选地,根据响应时间和成本确定每项任务的适应度函数值;
任务的适应度函数值通过以下公式计算:
;
SC[r]是r类的大小,q是优先级类别编号,p是任务编号,TC[q,p]表示q类中的任务p,RT表示响应时间,F 是公平性参数,C是成本。
可选地,在确定每个基因的适应度函数后,通过询问每项任务是否一直保持在最优状态,来提高公平性参数。
本发明的有益效果在于:
本发明的云计算资源池调度方法,利用完成训练的神经网络根据每个任务的权重属性将不同的任务加入至不同优先级的类别中,通过判断云计算资源池中闲置资源的数量是否小于或等于属于最高优先级类别的任务的数量,若是,则直接对最高优先级类别的任务进行云计算资源的分配,否则,对最高优先级类别和次高优先级类别的任务同时进行云计算资源的分配,可以保持云计算资源的利用最大化,同时在对任务进行云计算资源的分配过程中,采用遗传算法基于适应度为任务分配适应的云计算资源,可以更智能地分配云计算资源,提高系统整体性能并降低成本。
进一步,本方法通过判断任一项任务在上次调度中是否一直在队列中等待,若是则提高该任务所属类别的优先级,同时通过增加上一次调度的队列中仍在等待的任务的适合度值(增加 10%),提高该任务被执行的机会,防止任务出现饥饿状态,以及避免任务始终无法执行导致饿死情况的发生。
本发明的系统具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本发明的一种云计算资源池动态调度方法的步骤图。
具体实施方式
由于遗传算法所需的执行时间较长,为了降低任务调度的计算成本,本申请将神经网络和遗传算法相结合,为有效的资源分配开发出一种综合解决方案。事实证明,本方法在解决大数据问题时特别有效,既能优化时间,又能优化空间。本方法优化了系统性能,提高了云计算的资源利用率。
云计算资源的分配会间接影响性能和负载平衡等其他指标。但在本文中,只重点关注资源分配和任务调度。调度的目的是以适当的方式将任务分配给有限的资源。需要考虑的参数包括:
公平性: 这意味着所有任务都应平等使用资源,或根据任务的权重分配资源。
最佳能耗: 这意味着关闭一些服务器和主机,以减少云计算的能源浪费。
时间跨度: 间隔时间越短,任务越早完成。
负载平衡: 这意味着任务分配给资源的方式要防止一些资源闲置,而另一些资源超载。
成本: 从云消费者处获取所需服务的总成本。该参数可包括不同部分,包括处理器成本、数据存储成本和网络数据传输成本。
系统效率:是指最大限度地利用资源 浪费最少的资源和时间
在上述参数中,以往有关云计算资源分配的方案并未考虑防止饥饿的任务公平性参数。
现有的一些方案只关注了少数参数,而另一些方案则忽略了一些对系统整体效率有影响的参数。例如,某些调度方法只关注了服务质量,而没有关注每个任务的执行成本。此外,在许多使用遗传算法和神经网络提出组合解决的方案的中,神经网络的参数都是通过遗传算法确定的。这可能导致两种方法之间的依赖关系,遗传算法的错误可能导致神经网络的配置不正确;因此,结果可能达不到预期。
本申请提出了一种新的云计算资源池动态调度方法,本方法结合了遗传算法和神经网络技术。与现有的方法不同,本申请使用神经网络来选择要发送给遗传算法进行资源池调度的任务。本方法是可定制的,可适应不同的云计算环境和要求,允许资源分配要求的动态变化每个参数的权重。这种方法可以适应云计算环境中不断变化的条件,确保云计算资源池得到最佳分配,该模型可配置为考虑不同的因素,如执行时间、响应时间、利用率和成本等不同因素。同时该模型它还具有公平意识,可防止任何任务出现饥饿状态,从而优化资源分配。
下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
实施例
本实施例提供一种云计算资源池动态调度方法,在一些示例中,本方法可以执行在公共云和私有云服务的云计算网络系统中,系统架构主要包括客户端、调度器及调度程序组成的高层架构、资源表和云计算资源池组成。其中,调度器用于根据资源情况向资源发送任务,并将任务与资源绑定。云计算资源池包括服务器端的所有工具和应用程序,用于响应客户请求,如获取文件或计算请求,还包括若干虚拟机,以提高任务执行速度。资源表用于显示资源的当前状态以及每个资源正在运行的任务数量。调度程序由神经网络任务分类和遗传算法任务分配两部分组成,是实现本发明方法的主要模块,所有计算和调度过程都在该模块上进行。该架构通过对任务进行分类,然后选择在调度器中执行的最优任务集,提高了选择适当任务的准确性以及向最优任务的收敛性。
本实施例的云计算资源池动态调度方法,具体包括:
S1:计算新加入云计算的任务的权重属性;
本步骤具体包括:
利用历史数据,估算新加入云计算的任务的参数值,参数值包括执行时间、成本和系统效率;
基于参数值,计算任务的总权重。
其中,任务的总权重通过以下公式计算:
(1);
式中,TW[i]是任务 i 的总权重,WP(ET)为执行时间权重,WP(C)为成本权重,WP(SE)为系统效率权重,ET[i]是任务 i 的执行时间,C[i]是成本,SE[i]是系统效率。
本步骤通过公式(1) 根据执行时间、成本和系统效率等参数计算任务 i 的权重,可以利用有限的历史数据,为新加入网络的任务估算参数值。
S2:利用完成训练的神经网络,根据每个任务的权重属性将不同的任务加入至不同优先级的类别中;
其中,根据每个任务的权重属性将不同的任务加入至不同优先级的类别中包括:利用神经网络将一项任务的权重与不同优先级类别任务的平均权重进行比较,将权重相似的任务被归为一类。
可以通过以下公式(2)将一项任务的权重与不同类别任务的平均权重进行比较,若该项任务的权重与某个优先级类别中任务的平均权重的差值的绝对值小于设定值,则将该项任务划分为对应的优先级类别中。
(2);
其中,TW[i]是任务 i 的总权重(公式 (1)),CW[r]是 r 类任务的平均权重,T C[r] 代表 r 类任务中的任务,
优选地,神经网络为前馈反向传播神经网络,神经网络的隐藏层数量为20层;该神经网络的传递函数为:
(3);
其中,X
神经网络的性能函数为:
(4);
其中,Y
本步骤利用根据每个任务的权重属性,将其添加到所需的类别中。本实施例设置了三个分类优先级别。
本实施例的神经网络的训练过程如下:
1) 数据准备:首先对数据进行分区。70% 的数据用于训练,15% 用于网络验证,15% 用于网络测试。用于训练、验证和测试的数据是随机选择的,以提高训练、验证和测试的性能。
2) 变换:由于 sigmoid对数传递函数是一个导数函数,因此常用于反向传播算法训练的多层网络中。该函数的一个例子是基于上述公式 (3),具体为:
sigmoid对数传递函数为神经网络中的常用函数,其计算公式即为公式(3)中的
通过公式(3)对神经网络的神经元节点的输入进行变换并给出函数值,函数的输入为X[i],而后计算net的值,然后带入
3) 训练: 使用缩放共轭梯度法更新数据的权重和偏差。在下列情况下终止训练:
- 已创建最大历元数
- 时间超过最大值
- 网络性能低于阈值
- 性能图的梯度低于最小值
- 有效性确认自性能下降。
4) 性能函数: 上述公式(4)为性能函数。该函数计算输出与目标之间误差的平均输出与目标之间误差的平均平方。其中一种在网络训练完成前提前停止的情况之一是网络性能降低。如果输出与目标之间的差值增大,网络训练就会停止。
该网络的另一个特点是减少内存,从而加快网络执行速度。层数越多,网络精度越高,但运行时间也会增加。神经网络的隐藏层数设定为 20 层根据评估,这样能产生最好的结果。
S3:判断云计算资源池中闲置资源的数量是否小于或等于属于最高优先级类别的任务的数量,若是,则直接对最高优先级类别的任务进行云计算资源的分配,否则,对最高优先级类别和次高优先级类别的任务同时进行云计算资源的分配;在对任务进行云计算资源的分配过程中,采用遗传算法基于适应度为任务分配适应的云计算资源。
本步骤中,还需要判断任一项任务在上次调度中是否一直在队列中等待,若是则提高该任务所属类别的优先级。
即如果任务在上次调度中一直在队列中等待,则提高该任务所属类别的等级。例如,如果任务分类的优先等级是 2,并且在上一步中一直在队列中等待,那么该任务就会被转到优先等级 1的类别。当所有任务都被归入相应的类别后,云计算资源池中的闲置资源数量将与优先等级类别 1 中的任务数量进行比较。如果闲置资源的数量小于或等于第 1类任务的数量,那么第 1 类任务就会被送往遗传算法;否则,第 2 类任务也会被送往遗传算法。如果发送完 1 类和 2 类的所有任务后仍有闲置资源,就继续发送 3 类的任务。根据资源上在任何给定时间内有多少任务处于活动状态,在整个执行过程中可能会出现不同数量的闲置资源,通过调整任何的优先级可以提高闲置资源的利用率以及任务被执行的机会。
本步骤采用遗传算法基于适应度为任务分配适应的云计算资源包括:
随机构建初始种群,计算每个染色体的适应度函数值,其中,使用十进制方法来表示染色体,所有资源都有一个十进制数字,染色体中的每个基因都存储了该十进制数字,任务和计算资源作为染色体的基因,染色体的适应度函数值基于组成该染色体的基因的适应度函数值获得;
根据适应度函数值对染色体进行排序,将适应度函数值较高的染色体用于后代的生成;
使用两点交叉法,选择亲代染色体的不同部分来产生子代;
应用突变算子,对所需基因进行变异;
在突变基因周围进行局部搜索,如果有适应度函数值更高的基因,则选择该基因;
重复上述过程,直到找到最优集或迭代次数超过预定的迭代次数为止;
按照遗传算法输出结果为任务分配适应的云计算资源。
其中,根据响应时间和成本确定每项任务的适应度函数值;任务的适应度函数值通过以下公式计算:
(5);
其中,SC[r]是r类的大小,q是优先级类别编号,p是任务编号,TC[q,p]表示q类中的任务p,RT表示响应时间,F 是公平性参数,C是成本。
优选地, 如果上一次调度的队列中还有任务在等待,则将该任务对应的基因的适合度值将增加 10%。同时在确定每个基因的适应度函数后,通过询问每项任务是否一直保持在最优状态,来提高公平性参数。
具体而言,选定的任务被送入遗传算法后。随机构建初始种群,并计算每个染色体的适应度函数值。如果上一次调度的队列中还有任务在等待,则该基因的适合度函数值将增加 10%。然后根据适配值对染色体进行排序,将较高的染色体用于后代的生成。本方法使用两点法,并对它们应用交集算子。在应用变异算子时,首先对所需基因进行变异。然后,在突变基因周围进行局部搜索,如果有合适度函数值更高的基因,则选择该基因。这个过程一直进行到找到最优集或迭代次数超过预定的迭代次数为止。
上述公式 (5) 表示根据响应时间和成本确定每项任务的适应度值。如果任务 i正在队列 Q 中等待上一次调度,则调整其适应度函数值(增加10%以提高适应度函数值)。该方法可以增加在队列中等待的任务在下一次迭代中被执行的机会。
本步骤根据遗传算法利用云计算资源选择任务。需要说明的是,由于二进制显示方法会增加数据存储量,因此本方法使用十进制方法来表示染色体。所有云计算资源都有一个十进制数字,染色体中的每个基因都存储了这个数字。遗传算法具体如下:
1) 初始种群: 遗传算法的第一阶段是产生初始种群。为防止过早收敛,初始种群是随机选择的,以覆盖广泛的数据范围。染色体的适合度基于其基因适合度;初始种群数量为 500。
2) 选择功能:从种群中的染色体中选择一些染色体进行繁殖。采用精英法选择亲代染色体来产生子代染色体,从而使染色体最初是根据适合度值排列的,然后将适合度值最高的染色体准备进入到子代阶段。这种方法可以提高收敛速度,以达到最佳响应。
3) 交叉: 作为整合过程的一部分染色体随机替换。使得子代综合了父代的特征而与父母并不完全相同。本方法中使用两点交叉法,选择亲代染色体的不同部分来产生子代。
4) 突变: 完成交叉后,执行突变操作。从染色体中随机选择一个基因并改变该基因的内容。突变算子用于避免陷入局部最大值或最小值,本方中突变的概率优选为 5%。
5) 适应度:为解决遗传算法计算成本高的问题,本方法选择了一个改进的适应度拟合函数,该拟合函数的收敛性更高,算法运行速度以及选出最优解的速度更快。
从公式 (6) 中可以看出,本方法在拟合函数中考虑了响应时间和成本。
(6);
在该适应度函数中,适应度值的最小值代表染色体的最优性。MR(i)是任务(i)所需的资源数量,
综上,本方法结合了遗传算法和神经网络技术,与现有的方法不同,本方法使用神经网络来选择任务,然后发送给遗传算法进行资源调度。本方法能够适应不同的云计算环境和要求,允许根据每个参数的权重动态改变资源分配要求,同时可以适应云计算环境中不断变化的条件,确保云计算资源得到最佳分配。
进一步,本方法对应的模型可以进行配置,以考虑执行时间、响应时间、利用率和成本等不同因素,它还具有公平意识,可防止任何任务出现饥饿状态,从而优化云计算资源分配。本方法还能够通过有效分配资源来提高云计算资源池的可扩展性,从而满足日益增长的云计算需求,确保应用程序能够访问所需的资源。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
- 一种面向虚拟桌面云的资源动态调度方法
- 一种云计算网络中虚拟资源动态调度方法及系统
- 云计算环境下Web应用的资源动态调度方法