APP下载

基于云计算的资源调度算法优化研究

2020-01-07宋丽萍

关键词:蚁群任务调度蚂蚁

宋丽萍

(阜阳职业技术学院,安徽 阜阳 236000)

随着计算机网络和虚拟化技术的迅速发展,云计算技术应运而生,并被广泛应用于各大领域,给人民的生活和工作带来了极大的影响,改变了人民的生活方式.云计算是一种把数据存储、数据传输等作为一项服务向有需要的人们提供技术的商业计算模式,它依托于虚拟化技术的发展,它的本质是把分散的资源集中到服务器端,构成虚拟化的资源池,供客户共享,人们可以根据各自需求进行访问、计算、分析等,并按需付费,不用再购买安装服务器,因此具有高可用性、安全性和按需付费的优点.云计算技术的出现及应用,大大的削减了人们在数据存储和计算上的成本,促进了客户之间的信息共享,因此具有很大的发展前景[1].

由于云计算面向的数据量较大,需要频繁处理计算任务,因此云计算中的任务调度策略极其重要,在任务资源调度过程中,如果选择的资源调度算法不合理或采用的资源调度模型不正确,势必会增加时间和成本的消耗,造成资源节点负载不均衡等问题.因此资源调度算法的选择及优化成为人们关注及研究的热点,云资源调度算法分成传统的调度算法和智能化的调度算法,目前传统的调度算法已逐步被淘汰,人们更多的是采用智能化的调度算法,本文拟对云资源调度算法中的智能调度算法进行分析及更深入的探索优化[2].

1 云计算资源调度

1.1 云计算资源调度过程

云资源调度就是在云平台中部署运用时,选择合适的物理机分配资源给对应的虚拟机.云计算作为一种分布式计算,目前使用的大都是都是Google开发的Map/Reduce模式,在资源调度过程中,用户通过Web访问云平台,选择相应的云任务,首先在后台利用工具将任务Map/Reduce化,云平台将原云任务分割为若干个可以独立运行的子任务,然后发起虚拟机请求信号请求分布式处理,任务调度器收到请求信号后,首先检查每个虚拟机的资源信息,然后选择合适的资源调度算法调用虚拟机资源进行任务的处理,在云任务完成后,虚拟机资源信息需要及时更新,以保证后续的任务调度信息能被正确采用[3].

由上面过程可以看出,云资源调度过程主要经过云任务提交、Map/Reduce化、子任务提交及调度分配几个流程,其具体实现过程如图1所示.

图1 云计算资源调度过程

1.2 云计算资源调度评价指标

由于“按需付费”是云计算的一个主要特点,因此作为客户必定希望能够通过选择好的算法来提高资源的利用率,而云计算供应商不但要考虑客户的需求,还要考虑云计算所产生的消耗成本,以力保云资源的高利用率、低能耗.通常云计算资源调度主要使用下面几个指标来评价.

1)任务运行时间

每个云任务都有一定的时效性,而云计算具有分布式的计算环境,这种独特的分布式计算环境给缩减任务运行时间提供了有利的条件.所以,任务执行时间是云资源调度的重要评价指标之一,好的资源调度算法应该能在其约束条件下最大程度的降低任务的执行时间[4].

2)完成任务所需的费用成本

在云计算中,云服务商的主要目标是利用有限的资源获取最大的利益,要想缩减云任务的执行时间,最直接的方法就是将云任务调度到性能最佳的云资源上执行.因此,任务调度后完成任务所需的成本也是调度算法优劣的重要评价指标[5].

3)任务分布的负载均衡程度

云计算过程中要把每个子任务调度到虚拟机节点上运行,降低响应时间;另外由于每台物理主机都存在着信息的差异,在资源调度时物理主机调度执行的任务数量也就不相同,从而导致负载不均衡的问题存在,一般客户在云计算时间和成本方面又都有一定的要求,在一定的条件下,保持负载均衡也是值得考虑的一项重要指标[6].

4)用户的服务质量

服务质量(Quality of Service,QoS)反映了客户对云计算供应商所提供的云计算服务的满意程度,一般从时间、费用、安全性和可靠性等方面进行要求,云计算供应商通过建立约束函数保障用户的需求,因此,用户的QoS要求也是云计算资源调度的一个值得关注的指标[7].

2 云资源调度的经典算法——蚁群算法

蚁群算法(Ant Colony Optimization,ACO),是通过模拟蚂蚁在寻找食物过程中寻找最优路径的仿生算法[8].在自然界中,蚂蚁在行走过程中可以通过前面蚂蚁的分泌物快速找到两地之间最短路径,其概率与分泌物的浓度成正比,前面的蚂蚁大都选择某一条路径时,后面的蚂蚁择该路径的概率就更大,当生存环境发生变化时,也能迅速的判断出适合的新路径,这是由于蚂蚁在行走过程中的分泌信息素形成了路径轨迹,它可以帮助蚂蚁快速找到食物及返回的路线. 由此可见,蚁群算法是一种群体智能算法,蚂蚁通过这种分泌信息寻找最短路径的机制,在很多领域都得到了一定的应用.在云计算环境下,资源调度这种非确定性问题就可以通过蚁群算法来进行解决, 但是传统的蚁群算法存在有很多缺点,如在大规模环境下,计算量会大大的增加,路径的搜索需要的时间就会更长,算法的时间复杂度就会增加,另外很存在参数选择的不确定性、初始信息素缺乏及易陷入局部最优解等缺点,因此本文提出了一种新的蚁群优化算法[9].

3 改进的蚁群算法

3.1 算法描述

在标准蚁群算法的基础上,在云计算任务调度的过程中,重新建立调度模型,以子任务集合与虚拟机节点建立一矩阵H,节点集合为Hij,其中i=(1,2,…,m),j=(1,2,…,n),通过对传统蚁群算法进行优化获得一个使F的值最小的资源调度方案[10].

3.2 信息素初始化

在云计算开始之前,要随机的将任务调度到云资源中的虚拟机节点上,为了保证蚂蚁在行走过程中能够顺利的实现最优路径的寻找,在算法的初始化阶段,将所有路线的信息素的初始值都设置为最大值max.

3.3 虚拟机的选择概率

蚂蚁在完成一次任务后,需要继续为下一任务选择虚拟机节点资源,此时就需要先对其它节点的信息素浓度的执行能力及负载均衡因子进行计算,然后它们被再次选择的概率才容易获取,以此确定下一个任务的虚拟机资源.在每个节点上都存在有多只蚂蚁进行最优解的搜索,在t时刻,第k只蚂蚁(任务) 为下一个任务选择第j个节点资源Hij的概率公式为:

公式中α和β分别表示信息素浓度及预想值的影响因子;τij(t) 代表虚拟机节点在t时刻,蚂蚁(任务)在Hij节点位置所遗留的信息素的值;φij(t) 表示蚂蚁(任务)i选择虚拟机节点j的期望值,tabk(k=1,2,L,m) 表示第k只蚂蚁行走过程中淘汰的路径表[11].

图2 蚁群优化算法流程图

3.4 信息素更新规则

所有蚂蚁(任务)在一次循环结束之后得到最优解,然后进行信息素更新,之后的每一次循环之后都要对蚂蚁(任务)与虚拟机间的映射路径上的信息素进行及时更新,保证在找到全局最优解的同时获得更高的效率,信息素更新的规则设置如下:

公式中ρ表示信息素的挥发因子,ρ的取值范围在0和1之间,1-ρ代表遗留的信息素浓度,如果ρ变小,遗留的信息素浓度就会变大,那么这条路径就有可能是被选择的最优路径;Fbest是指全局最优解的值,信息素的全局更新,可以提高算法的执行效率,缩短云计算时间[12].

3.5 蚁群优化算法的流程

根据以上的分析,总结出利用蚁群优化算法进行云资源调度的具体流程如图2所示.

4 算法仿真验证

为了验证优化算法的可行性和有效性,本文选择开源的云仿真CloudSim平台对优化算法进行仿真验证.在仿真验证时,选用虚拟机节点的个数为30个,任务数为30个,蚂蚁群的总数设置与节点数相同为30只,实验循环次数为20次,结束的条件为满足最大循环次数.在实验条件相同的情况下,将蚁群优化算法和传统的蚁群算法相比较,通过实验仿真发现,优化的蚁群算法在计算成本方面明显低于传统的蚁群算法,其计算效率也得到了一定的提高,因此,优化后的蚁群算法能在提高计算效率的同时缩减计算成本,具有一定的有效性和可行性,在云资源调度方面有一定的应用意义.

5 小结

随着云计算技术的发展,云计算的应用领域也越来越广,由于云计算依托于虚拟化的环境这一特殊特性,频繁面临大量的计算,因此当前云计算的研究焦点是云资源调度策略的优化研究,如何在提高资源调度效率的同时减少资源的调度成本花费.本文以传统的资源调度算法—蚁群算法为基础,考虑其存在的缺点,从计算成本和调度效率方面进行考虑,提出了一种优化的蚁群算法应用于资源调度,并利用云平台仿真工具CloudSim对优化后的蚁群算法进行了可行性和有效性的验证,随着应用的不断深入与扩展,笔者将继续从确保 QoS需求及减少云数据中心耗能等方面进行探索,对云计算资源调度算法进一步优化,进一步提高资源的利用率,相信云计算的应用视角也会越来越宽广.

猜你喜欢

蚁群任务调度蚂蚁
基于动态能量感知的云计算任务调度模型
游戏社会:狼、猞猁和蚁群
基于PEPA的云计算任务调度性能分析
蚂蚁:比人类更有组织性的动物
复杂复印机故障信号的检测与提取
我们会“隐身”让蚂蚁来保护自己
蚂蚁
基于小生境遗传算法的相控阵雷达任务调度
基于混合粒子群算法的云计算任务调度研究
蚂蚁找吃的等