基于预算限制自组织云任务执行时间最短化资源分配方法
技术领域
本发明属于计算机网络技术领域,特别是一种基于预算限制自组织云任务执行时间最短化资源分配方法。
背景技术
云计算在部署分布式服务中已经成为一个引人注目的技术。云系统中的资源分配问题强调的是如何通过复用操作系统来利用多属性资源。随着虚拟机技术的发展,云系统已经能够在相同的硬件上复用一些操作系统,而且在没有性能干扰的情况下允许任务在它的虚拟机底层上执行。虚拟机的底层包括CPU,内存,存储器,网络带宽等,由于它们可以动态的配置合理的资源共享,因此云系统能达到细粒度的资源共享。
近些年出现了各种增强资源独立的技术,包括信用调度,气球驱动,差分机,联合虚拟机等,它们不仅可以达到细粒度动态资源配置而且能够动态划分和重装计算资源满足终端用户灵活的需求。与贪婪系统相比,它们能够最大化资源的利用,因为多数的贪婪系将底层的资源看做是不可分的并且不允许同时访问它们。
现今的云结构也存在着一定的问题。建立在集中式体系结构上的云服务会遇到服务延迟攻击,意外中断和有限的计算资源共享这些问题。然而,志愿计算系统能够轻易的聚集巨大的计算潜力来处理大挑战的科学问题。因此人们提出了自组织云的云结构,它能够通过P2P网络连接因特网上大量的台式电脑。在自组织云中,每一个参与的电脑既是资源提供者也是资源消费者。为了找到网络中更充足的资源或者独特的服务,它们独立的运行来卸载一些任务,同时为了执行从其它机器上提交的任务,只要有闲散的资源,它们就能够构建多样的虚拟机实例。
专利1(云计算资源分配方法,上海达希能源科技有限公司,公开号CN102739803A,申请号CN201210236332.0,申请日2012.07.09)公开一种云计算资源分配方法。该方法先将已被预订用户预订且未被使用的云计算资源作为临时资源,并建立临时用户租用临时资源的资源租用价格的离散模型,再根据建立的离散模型计算临时资源租用价格,并按计算出的临时资源租用价格为临时用户提供分配临时资源;当预订用户请求使用预订的资源,且其请求的预订已分配给临时用户使用时,先对临时用户在该资源上运行的应用进行保存,再将其收回后分配给预订用户,然后等待至有空闲的临时资源后,再将临时资源分配给应用尚未运行结束的临时用户。该方法存在的不足是,该方法没有考虑用户任务执行预算代价,这样不能满足用户对任务执行代价的需求。
专利2(一种私有云环境下资源调配系统及资源调配方法,东软集团股份有限公司,公开号CN101986274A,申请号CN201010541187.8,申请日2010.11.11)公开一种私有云环境下资源调配系统。该系统包括全局策略控制器、各云应用策略控制器,及各组策略控制器:资源管理器与资源探查代理交互,接收指标数据,依据告警条件判断指标数据是否生成告警,如生成告警,将告警提交策略控制网络;组策略控制器首先处理上述告警,能处理则生成资源调整计划;不能处理则将告警上报云应用策略控制器;云应用策略控制器处理接收的告警,能处理则生成资源调整计划;不能处理则将告警上报全局策略控制器;全局策略控制器处理接收的告警,生成资源调整计划;策略控制网络返回资源调整计划到资源管理器并由其执行。该方法存在的不足是,该方法没有考虑用户任务执行时间,这样不能及时满足用户对资源的使用需求。
发明内容
为了克服现有技术的不足,本发明提供一种高效、可靠的基于预算限制自组织云任务执行时间最短化资源分配方法,可以充分挖掘自组织云中CPU计算资源、磁盘读写速度资源和网络带宽资源,从多个维度以任务执行时间最短化为目标动态按需分配资源。
一种基于预算限制自组织云任务执行时间最短化资源分配方法,其特征在于,包括以下步骤:
步骤1,自组织云中工作节点收集各物理节点的可用资源;
步骤2,自组织云中工作节点收集用户的任务请求;
步骤3,自组织云中工作节点采用差分进化算法对自组织云中虚拟资源进行分配:
步骤3.1,工作节点初始化差分进化算法的参数;
步骤3.2,工作节点采用差分进化算法对每个个体进行变异操作;
步骤3.3,工作节点采用差分进化算法对每个个体进行交叉操作;
步骤3.4,工作节点采用差分进化算法对每个个体进行选择操作;
步骤3.5,重复步骤3.2~3.4Ng次,输出最小值对应的解向量,Ng表示差分进化算法的最大迭代次数。
本发明与现有技术相比,其显著优点在于:(1)自组织云中基于差分进化算法进行虚拟资源分配,满足高动态云系统最优资源分配要求;(2)充分挖掘了自组织云中可用的虚拟资源,通过分布式虚拟机复用化技术从CPU计算资源、磁盘读写速度资源和网络带宽资源多个维度动态分配云系统中虚拟资源;(3)为高效利用自组织云中的CPU计算资源,磁盘读写速度资源和网络带宽资源提供技术支持。
下面结合附图及具体实施例对本发明作进一步详细说明。
附图说明
图1为本发明基于预算限制自组织云任务执行时间最短化资源分配方法的流程图;
图2为本发明的自组织云中资源分配示意图;
图3为本发明基于差分进化算法的资源分配方法流程图。
具体实施方式
结合图1,本发明基于预算限制自组织云任务执行时间最短化资源分配方法,包括以下步骤:
步骤1,自组织云中工作节点收集各物理节点的可用资源,其中自组织云中有2000-12000个节点,所述各物理节点的可用资源包括CPU计算资源、磁盘读写速度资源和网络带宽资源等。
步骤2,自组织云中工作节点收集用户的任务请求,所述的任务请求包括每个任务需要的多维资源向量、每个任务执行完成的单位时间预算代价。图2为本发明的自组织云中资源分配示意图。
步骤3,自组织云中工作节点采用差分进化算法对自组织云中虚拟资源进行分配,结合图3,具体步骤如下:
步骤3.1,工作节点初始化差分进化算法的参数,
(1)初始化的参数包括:问题维度NL∈[2,3]、种群规模Np∈[100,200]、缩放比例因子F∈[0.5,1]、交叉概率PCR∈[0.8,1]、差分进化算法解的范围[rmin,rmax]以及差分进化算法的最大迭代次数Ng∈[500,600],并且令迭代次数序号gen=1;
(2)初始化参数还包括:自组织云中物理节点Ps资源的价格向量自组织中云物理节点Ps资源的最大容量向量自组织云物理节点Ps剩余资源的容量向量自组织云中任务tij所需要的多维资源向量、自组织云中任务tij的预期资源向量自组织云中任务tij分配的多维资源向量自组织云中任务tij所需要的多维资源向量和自组织云中任务tij的优先权向量w(tij)需要满足公式(1);其中Ps表示自组织云中节点序号,tij表示自组织云中提交给节点Pi的第j个任务;
(3)初始化自组织云中单位时间内执行任务tij的预算代价B(tij),采用公式(2)确定自组织云中任务tij的执行时间,
其中,lk(tij)表示向量l(tij)的第k个分量,rk(tij)表示向量r(tij)的第k个分量,k∈NL;
(4)对群体进行初始化,采用公式(3)随机产生Np个差分进化算法的初始解初始解需要满足公式(4)和公式(5),
r(tij)=rmin+(rmax-rmin)*rand(Np,NL) (3)
e(tij)≤r(tij)≤a(Ps) (4)
其中,rand(Np,NL)表示Np行NL列位于(0,1)区间的随机数,bk(Ps)表示向量b(Ps)的第k个分量,rk(tij)表示向量r(tij)的第k个分量。
步骤3.2,工作节点采用差分进化算法对每个个体进行变异操作,即从初始化的Np个种群中随机选取三个个体向量r1(tij)gen,r2(tij)gen,r3(tij)gen,r1(tij)gen,r2(tij)gen,r3(tij)gen∈r(tij),根据公式(6)产生变异向量rn′(tij)gen表示向量r′(tij)gen的第n个分量,F是缩放比例因子,
rn′(tij)gen=r1(tij)gen+F(r2(tij)gen-r3(tij)gen)。 (6)
步骤3.3,工作节点采用差分进化算法对每个个体进行交叉操作,具体过程为:
设定rand∈(0,1)之间的随机数,将PCR与rand比较,若rand<PCR,则保留变异产生的向量,否则采用公式(7)在解的范围内随机产生新向量,
rnew(tij)gen=rmin+(rmax-rmin)*rand(1,NL) (7)
其中rand(1,NL)表示1行NL列位于(0,1)区间的随机数。
步骤3.4,工作节点采用差分进化算法对每个个体进行选择操作,产生新解的函数值,
如果产生的新解的函数值小于原始解的函数值,则用新解替换原始解,否则保持原始解不变。
步骤3.5中令gen←gen+1,重复骤3.2~3.4Ng次,输出最小值对应的解向量Ng表示差分进化算法的最大迭代次数。
实施例1
本发明基于预算限制自组织云任务执行时间最短化资源分配方法,步骤如下:
步骤1,自组织云中工作节点收集各物理节点的可用资源。
所述自组织云中工作节点收集各物理节点的可用资源,其中自组织云中有2000个节点,各物理节点的可用资源包括CPU计算资源、磁盘读写速度资源。
步骤2,自组织云中工作节点收集用户的任务请求。
自组织云中工作节点收集用户的任务请求,任务请求包括每个任务需要的多维资源向量和每个任务执行完成的单位时间预算代价,自组织云中2个任务需要的CPU计算资源分别是[6,8],单位,Gflops,自组织云中2个任务需要的磁盘读写速度资源分别是[2,1],单位,Gbps。
步骤3,自组织云中工作节点采用差分进化算法对自组织云中虚拟资源进行分配。
首先,自组织云中工作节点初始化差分进化算法的参数,初始化NL=2、Np=100、F
=0.5、PCR=0.8和Ng=500,令gen=1;初始化 和初始化B
(tij);初始化群体,随机产生Np个优化问题的初始解r(tij)初
始解需要满足公式(3)和公式(4),采用公式(2)计算执行任务tij所需的时间;
然后,工作节点采用差分进化算法对每个个体进行变异操作,从初始化的Np个种
群中随机选取三个个体向量r1(tij)gen,r2(tij)gen,r3(tij)gen,产生变异向量根据公式(6)计算变异向量的分量;
其次,工作节点采用差分进化算法对每个个体进行交叉操作,rand<PCR,保留变异产生的向量。
再次,工作节点采用差分进化算法对保留变异产生的向量的每个个体进行选择操作,确定新解的目标函数值,如果产生的新解的函数值小于原始解的函数值,则用新解替换原始解,否则保持原始解不变;
最后,令gen←gen+1,重复上述步骤,直到达到差分进化算法最大迭代次数,输出
最优解向量
实施例2
步骤1,自组织云中工作节点收集各物理节点的可用资源。
所述自组织云中工作节点收集各物理节点的可用资源,其中自组织云中有12000个节点,各物理节点的可用资源包括CPU计算资源、磁盘读写速度资源和网络带宽资源。
步骤2,自组织云中工作节点收集用户的任务请求。
自组织云中工作节点收集用户的任务请求,任务请求包括每个任务需要的多维任务向量和每个任务执行完成的单位时间预算代价,自组织云中2个任务需要的CPU计算资源分别是[5,7],单位,Gflops,自组织云中2个任务需要的磁盘读写速度资源分别是[3,2],单位,Gbps,自组织云中2个任务需要的网络带宽资源分别是[1,3],单位,Mbps,自组织云中任务需要的CPU计算资源价格是2¥/Gflops/hour,自组织云中任务需要的磁盘读写速度资源价格是0.2-0.5¥/Gb/Hour,自组织云中任务需要的网络带宽资源价格是0.3¥/Mbps/Hour。图2为本发明的自组织云中资源分配示意图。
步骤3,自组织云中工作节点采用差分进化算法对自组织云中虚拟资源进行分配
图3为本发明基于差分进化算法的资源分配方法流程:
首先,自组织云中工作节点初始化差分进化算法的参数,初始化NL=3、Np=200、F
=0.9、PCR=0.95和Ng=600,令gen=1;初始化 和初始化B
(tij);初始化群体,随机产生Np个优化问题的初始解r(tij)初
始解需要满足公式(3)和公式(4),采用公式(2)计算执行任务tij所需的时间;
然后,工作节点采用差分进化算法对每个个体进行变异操作,从初始化的Np个种
群中随机选取三个个体向量r1(tij)gen,r2(tij)gen,r3(tij)gen产生变异向量根据公式(5)计算变异向量的分量;
其次,工作节点采用差分进化算法对每个个体进行交叉操作,rand≥PCR,采用公式(7)在解的范围内随机产生新向量。
再次,工作节点采用差分进化算法对随机产生新向量的每个个体进行选择操作,确定新解的目标函数值,如果产生的新解的函数值小于原始解的函数值,则用新解替换原始解,否则保持原始解不变;
最后,令gen←gen+1,重复上述步骤,直到达到差分进化算法最大迭代次数,输出
最优解向量