CN108664330B - 一种基于变邻域搜索策略的云资源分配方法 - Google Patents
一种基于变邻域搜索策略的云资源分配方法 Download PDFInfo
- Publication number
- CN108664330B CN108664330B CN201810468836.2A CN201810468836A CN108664330B CN 108664330 B CN108664330 B CN 108664330B CN 201810468836 A CN201810468836 A CN 201810468836A CN 108664330 B CN108664330 B CN 108664330B
- Authority
- CN
- China
- Prior art keywords
- cloud
- service
- instance
- cloud resource
- deployed
- 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.)
- Active
Links
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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physiology (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Genetics & Genomics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于变邻域搜索策略的云资源分配方法,云计算资源通常采用按需租用的模式,针对由云服务组成的SOA应用,各服务对云资源的需求各不相同,为了合理的将云资源分配给各个云服务,建立服务间调用关系图;定义SOA模式云应用的服务质量和部署方案;建立多目标云资源优化分配问题模型;采用基于变邻域搜索策略的多目标遗传算法对云资源优化分配问题进行求解。本发明提出了一种基于变邻域搜索策略的多目标遗传算法,该算法结合了变邻域搜索的局部搜索能力和遗传算法的全局搜索能力,从而提高了算法效率和解的质量,解决了在SOA应用部署时既保证服务性能又使成本最低的最优云资源分配问题。
Description
技术领域
本发明属于云计算资源管理领域,具体涉及一种基于变邻域搜索策略的云资源分配方法。
背景技术
随着云计算的普及,越来越多的Web应用提供商将自己的应用向面向服务架构(Service-Oriented Architecture,SOA)模式的云应用迁移。利用云提供商所提供的IaaS(Infrastructure as a Service)平台来部署自己的分布式系统,从而使应用提供商不需要考虑购买服务器以及相关的硬件设备和维护,只需要按照需要租用云提供商所提供的云计算服务即可。因此,大大降低了Web系统开发运营的门槛,使开发周期变短、维护成本降低、运维更方便等,受到中小型企业的广泛热爱,市场应用前景也非常广阔。
云计算具有资源按需分配的特性,可以为用户提供弹性的计算资源分配,该方法不仅仅提高了资源的利用率,也降低了运营的成本。云计算将服务提供者和资源提供者分离,云资源提供者只负责以特定的形式如虚拟机、弹性云、虚拟空间等出售所拥有的资源,并保证资源的可靠性和可用性。云开发者则除了提供最基本的功能开发外,还要选择合适种类和数量的云资源分配给相应服务,以满足服务使用者的需要。因此,基于云开发者的角度,需要在保证用户满意度的基础上,尽可能降低自己的云资源租用成本,从而定制出将云资源分配给云服务的方案是本发明需要解决的主要问题。
优化分配问题一直是软件工程领域研究的热点,然而,巨大的选择空间和冲突的优化目标导致这一问题成为了典型的NP难题。目前的云资源优化分配方法都假定部署的服务实例数和云资源实例数是确定的,或只考虑了云资源实例的伸缩特性,并没有考虑服务之间的关系以及服务实例的伸缩问题,很难产生既满足需求又最小成本的最优方案。
发明内容
针对上述实际需求和问题,本发明从SOA模式云应用开发者角度出发,考虑云服务间的调用关系,以租用云资源成本和各项SLA约束条件作为多目标提出了一种基于变邻域搜索策略的遗传算法以获得最优解,产生最佳的云资源优化分配方案。本发明的步骤如下:方法包括:
步骤1:建立SOA模式云应用的服务关系图;
步骤2:定义SOA模式云应用的服务质量;
步骤3:定义SOA模式云应用的部署方案;
步骤4:建立多目标云资源优化分配问题模型;
步骤5:基于变邻域搜索策略,优化分配多目标云资源。
优选地,步骤1还包括:服务关系图为G=(S,E),其中S={Sj|1≤j≤Ns}为结点的集合,表示云服务种类,其中Sj表示第j种云服务类型,Ns表示云服务种类的总数;E={(s,s′)|s,s′∈S}为边的集合,表示云服务之间的交互关系,对于表示从s到s′存在交互关系,包括顺序关系、选择关系、并发关系和循环关系。
优选地,步骤2还包括:服务质量定义为QoS={S,V,RT,TP,ER},其中S={sj|1≤j≤Ns}表示云服务种类的集合,其中sj表示第j种云服务类型,Ns表示云服务种类的总数;V={vj|1≤j≤Nv}表示云资源种类的集合,其中vj表示第j种云资源类型,Nv表示云资源种类的总数;RT:S×V→R为云服务响应时间函数,其中RT(si,vj)为云服务i部署在云资源j上的响应时间;TP:S×V→R为云服务吞吐率函数,其中TP(si,vj)为云服务i部署在云资源j上的吞吐率;ER:S×V→R为云服务错误率函数,其中ER(si,vj)为云服务i部署在云资源j上的错误率。
优选地,步骤3还包括:部署方案定义为CDS={D,DV,DS},其中D={dj|1≤j≤Nn}表示云资源实例集,其中dj表示第j个云资源实例,Nn表示云资源实例的个数;DV:D×V→{0,1}为云资源实例类型函数,其中DV(di,vj)=1表示云资源实例di类型为vj,DV(di,vj)=0表示云资源实例di类型不为vj;DS:D×S→{0,1}为云服务部署实例函数,其中DS(di,sj)=1表示云资源实例di上部署了服务sj的实例,DS(di,sj)=0表示云资源实例di上没有部署服务sj的实例。
优选地,步骤4还包括:
多目标优化的云资源分配问题模型定义为:
定义部署成本:其中RC(vj)为租用类型是vj的云资源所需费用;
定义响应时间:所有服务实例响应时间的均值代表系统整体的响应时间大小;
定义吞吐率:所有服务实例吞吐率的均值代表系统整体的吞吐率大小;
定义错误率:所有服务实例错误率的最大值代表系统整体的错误率大小;
约束条件:|D|>0,至少有一个云资源实例;每个服务必须至少部署一个实例;每个云资源实例上必须存在一个服务实例;部署在一个云资源实例上的所有服务实例的计算能力必须小于该云实例最大计算能力,其中CA(di,sj)为服务sj在云实例di中所需的计算能力,CR(di)为云实例di最大计算能力;部署在一个云资源实例上的所有服务实例的内存空间必须小于该云实例最大内存空间,其中MA(di,sj)为服务sj在云实例di中所需的内存空间,MR(di)为云实例di最大内存空间。
优选地,步骤5还包括:基于变邻域搜索策略的多目标云资源优化分配问题求解;
基于染色体编码,对部署的云服务实例进行编码;每一条染色体代表一个部署方案,包含一组基因序列和云资源类型映射表;基因序列中每一个基因代表一个部署的服务实例,基因序列的长度代表总部署的服务实例数;每个基因的取值由一个二元组(s,v)表示,其中s表示部署的服务类型编号,v表示部署的云资源编号;云资源类型映射表中Vi表示编号为i的云资源实例类型,每个云资源实例都是从1开始编号,且保证编号的连续性。
优选地,步骤5还包括:基于遗传算法寻优,依据群体中个体的适应度,适应度函数是评价群体中个体好坏的标准,适应度函数的选取直接影响到遗传算法的收敛速度以及寻找最优解的能力;并给出了种群中个体p的适应度值F(p)的计算方法为:
F(p)=DV(p)+SV(p)
其中,DV(p)表示个体p的支配值,为所有低于或等于该个体支配等级的个体(包括该个体)的总数;SV(p)表示个体p的稀疏值,为所在非支配集当中,拥挤距离小于该个体拥挤距离的个体总数;并认为两个个体pi和pj,当pi所有目标值都优于或等于pj且至少存在一个目标值优于pj时则称pi支配pj。
优选地,步骤5还包括:基于变邻域搜索规则;设计最优解的邻域,通过参考在部署优化领域预设的阈值,针对服务性能和部署成本2个目标制定了多条邻域搜索规则;
增加一个新的云实例,并从当前已部署的云实例中迁移部分性能指数低的服务实例;
升级一个云实例的类型,找到整体负荷指数大的云实例并升级至性能云资源类型;
迁移一个服务实例,找到性能指数低的服务实例并迁移至其他负荷指数小的云实例上;
部署一个新服务实例,找到负载指数大的服务类型并创建一个新实例部署在任一台云资源实例上;
合并两个云实例,找到负荷指数低的云资源实例,将其部署的服务实例迁移至其他云实例上,并释放当前实例;
降低一个云实例的类型,找到整体负荷指数小的云实例并降低至成本低的云资源类型。
优选地,步骤5还包括:基于变邻域搜索策略的多目标云资源优化分配问题求解;
Step 1、初始化算法参数,包括繁殖次数GMAX,种群规模POPSIZE,交叉概率RATE;
Step 2、产生初始种群P,并计算种群适应度;
Step 3、根据种群P中适应度值,选择出适应度最大的两个个体pi和pj;
Step 4、随机生成r∈(0,1),如果r<RATE,采用交叉操作对个体pi和pj进行进化,并对不可行个体进行修复;否则,分别对pi和pj随机使用一种邻域搜索规则进行邻域搜索,并保留适应度高的个体;
Step 5、将产生的新个体添加到种群P'中,并去除重复个体,重复执行上一步骤直至种群P’个体数n与种群规模POPSIZE的相等;
Step 6、计算新种群P'适应度,合并种群P'和P,按照适应度高低排序并保留前POPSIZE个个体作为种群P;
Step 7、判断迭代次数i与繁殖次数GMAX大小,如果i<GMAX,执行Step3;否则,执行Step 8;
Step 8、计算种群P中各个体的适应度值,输出适应度最大个体p作为最优解。
从以上技术方案可以看出,本发明具有以下优点:
目前的大多数云资源优化分配方法都假定部署的服务实例数和云资源实例数是确定的,或只考虑了云资源实例的伸缩特性,并没有考虑服务之间的关系以及服务实例的伸缩问题,很难产生既满足服务质量需求又最小成本的最优方案。基于这个原因,本发明采用服务关系图建立服务之间的关系,将部署服务实例集、云资源实例集和部署关系共同构成部署方案,并提出了一种新的多目标云资源优化分配问题模型,更加符合对于SOA模型云应用的云资源分配需求。
为了克服传统多目标遗传算法(NSGA)在云资源优化分配问题方面的不足,本发明基于变邻域搜索策略对NSGA进行改进,提出了一种基于变邻域搜索策略的多目标遗传算法。本发明为提高局部搜索能力,基于云资源分配的场景和已有经验构建了多种不同的搜索邻域,通过邻域结构的切换,加强局部搜索能力,再利用遗传算法的全局搜索能力,提高了整个算法的搜索效率和求解质量。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基于变邻域搜索策略的云资源分配方法流程图;
图2为本发明的算法染色体编码结构图;
图3为本发明的云资源优化分配流程图;
图4为本发明的基于变邻域改进遗传算法的流程图。
具体实施方式
本发明提供一种基于变邻域搜索策略的云资源分配方法,如图1至4所示,方法包括:
S1:建立SOA模式云应用的服务关系图;
S2:定义SOA模式云应用的服务质量;
S3:定义SOA模式云应用的部署方案;
S4:建立多目标云资源优化分配问题模型;
S5:基于变邻域搜索策略,优化分配多目标云资源。
基于变邻域搜索策略的云资源分配方法用于在云环境中SOA模式云应用部署时的云资源分配优化,从应用开发者角度出发,建立SOA应用的服务关系图,定义SOA应用服务质量,以租用云资源成本和服务等级协议(SLA)的各项约束作为多目标,利用基于变邻域搜索策略的遗传算法求解最优解,寻找最佳的云资源分配方案,使云服务按分配方案部署后,所需的资源租用成本最低且保障服务质量及运行时的稳定性。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。
S1:建立SOA模式云应用的服务关系图中,还包括:服务关系图为G=(S,E),其中S={Sj|1≤j≤Ns}为结点的集合,表示云服务种类,其中Sj表示第j种云服务类型,Ns表示云服务种类的总数;E={(s,s′)|s,s′∈S}为边的集合,表示云服务之间的交互关系,对于表示从s到s′存在交互关系,包括顺序关系、选择关系、并发关系和循环关系。
服务关系图为有向图,不同结点集合S,不同结点之间的连线抽象为图边的集合E,形成G=(S,E)。用Sj表示一个结点,则有S={Sj|1≤j≤NS}表示所有服务种类的集合,NS表示服务的种数;边集E={(s,s′)|s,s′∈S},每条边e=(s,s′)表示结点s到结点s’存在的调用关系。
服务关系图是由云应用开发者根据业务需求所定,本案例中应用服务关系图是由5个云服务组成,并从服务S1开始执行,在其执行完成后,将以80%的概率执行服务S2和20%的概率执行服务S3。当执行完成服务S2后会重复执行2次服务S2,最后并发执行服务S4和S5后结束;当执行完服务S3后会并发执行服务S4和S5后结束。
S2:定义SOA模式云应用的服务质量中,还包括:服务质量定义为QOS={S,V,RT,TP,ER},其中S={sj|1≤j≤Ns}表示云服务种类的集合,其中sj表示第j种云服务类型,Ns表示云服务种类的总数;V={vj|1≤j≤Nv}表示云资源种类的集合,其中vj表示第j种云资源类型,Nv表示云资源种类的总数;RT:S×V→R为云服务响应时间函数,其中RT(si,vj)为云服务i部署在云资源j上的响应时间;TP:S×V→R为云服务吞吐率函数,其中TP(si,vj)为云服务i部署在云资源j上的吞吐率;ER:S×V→R为云服务错误率函数,其中ER(si,vj)为云服务i部署在云资源j上的错误率。
服务质量定义为QoS={S,V,RT,TP,ER},其中S={s1,s2,s3,s4,s5}表示本案例中的5种云服务集合;V={v1,v2,v3}表示本案例中的3种云资源集合;RT:S×V→R为云服务响应时间函数,RT(si,vj)为云服务i部署在云资源j上的响应时间;TP:S×V→R为云服务吞吐率函数,TP(si,vj)为云服务i部署在云资源j上的吞吐率;ER:S×V→R为云服务错误率函数,ER(si,vj)为云服务i部署在云资源j上的错误率。QoS根据SLA约束所对应的服务质量指标包括但不限于响应时间、吞吐率和错误率。
S3:定义SOA模式云应用的部署方案中,还包括:部署方案定义为CDS={D,DV,DS},其中D={dj|1≤j≤Nn}表示云资源实例集,其中dj表示第j个云资源实例,Nn表示云资源实例的个数;DV:D×V→{0,1}为云资源实例类型函数,其中DV(di,vj)=1表示云资源实例di类型为vj,DV(di,vj)=0表示云资源实例di类型不为vj;DS:D×S→{0,1}为云服务部署实例函数,其中DS(di,sj)=1表示云资源实例di上部署了服务sj的实例,DS(di,sj)=0表示云资源实例di上没有部署服务sj的实例。
部署方案定义为CDS={D,DV,DS},其中D={d1,d2,…,dn}表示部署的云资源实例集;DV:D×V→{0,1}为云资源实例类型函数,DV(di,vj)=1表示云资源实例di类型为vj,否则表示云资源实例di类型不为vj;DS:D×S→{0,1}为云服务部署实例函数,DS(di,sj)=1表示云资源实例di上部署了服务sj的实例,否则表示云资源实例di上没有部署服务sj的实例。
S4:建立多目标云资源优化分配问题模型中,还包括:多目标优化的云资源分配问题模型定义为:
定义部署成本:其中RC(vj)为租用类型是vj的云资源所需费用;云资源的类型以及实例数量直接影响了部署成本的高低,目标使总成本达到预设成本值。
定义响应时间:所有服务实例响应时间的均值代表系统整体的响应时间大小;目标使系统响应时间达到预设时间值。
定义吞吐率:所有服务实例吞吐率的均值代表系统整体的吞吐率大小;使系统吞吐率达到在吞吐率阈值范围内。
定义错误率:所有服务实例错误率的最大值代表系统整体的错误率大小;使系统错误率在错误率阈值范围内。
约束条件:|D|>0,至少有一个云资源实例;每个服务必须至少部署一个实例;每个云资源实例上必须存在一个服务实例;部署在一个云资源实例上的所有服务实例的计算能力必须小于该云实例最大计算能力,其中CA(di,sj)为服务sj在云实例di中所需的计算能力,CR(di)为云实例di最大计算能力;部署在一个云资源实例上的所有服务实例的内存空间必须小于该云实例最大内存空间,其中MA(di,sj)为服务sj在云实例di中所需的内存空间,MR(di)为云实例di最大内存空间。
这里的预设成本值,预设时间值,吞吐率阈值范围以及错误率阈值范围都是基于系统使用的环境及需求设置,这里不做限定。
S5:基于变邻域搜索策略,优化分配多目标云资源中,还包括:基于变邻域搜索策略的多目标云资源优化分配问题求解;
利用基于变邻域搜索策略的遗传算法进行多目标求解最优解方式为,利用服务关系图,云资源租用成本和SLA初始化算法。设置种群规模、交叉概率和迭代次数,产生初始种群,并开始迭代。设置多种邻域搜索规则,每次迭代中,一定概率随机选取一种邻域规则产生新的个体,并将个体加入到新的种群中,当种群达到规模后合并种群,保留优秀个体并进行下一次迭代。迭代完成后,输出最优解并产生云资源分配方案。其中以SLA为多目标的各项目标与服务质量相对应,包括但不限于响应时间、吞吐率和错误率。
云资源分配方案,由云资源实例集合D,云资源实例类型函数DV,云服务部署实例函数DS组成CDS={D,DV,DS}。其中,用dj表示一个云资源实例,则有D={dj|1≤j≤Nn}表示所有云资源实例的集合,Nn表示实例的总数;函数DV:D×V→{0,1}表示云资源实例类型函数,其中DV(di,vj)=1表示云资源实例di类型为vj,DV(di,vj)=0表示云资源实例di类型不为vj;函数DS:D×S→{0,1}表示云服务部署实例函数,其中DS(di,sj)=1表示云资源实例di上部署了服务sj的实例,DS(di,sj)=0表示云资源实例di上没有部署服务sj的实例。
通过监控收集出服务的性能如表1所示。
表1:云服务性能
类型 | 响应时间均值 | 内存消耗均值 | |
S1 | 浏览 | 21(ms) | 12.94(k) |
S2 | 查询 | 80(ms) | 189.71(k) |
S3 | 增加 | 97(ms) | 47.24(k) |
S4 | 更新 | 89(ms) | 35.2(k) |
S5 | 查询 | 63(ms) | 142.63(k) |
其次收集云资源的配置信息与成本如表2所示。
表2:云资源配置
编号 | 类型 | CPU | 内存 | 成本 |
VM1 | High | 2 | 2048(M) | 400 |
VM2 | Mid | 1 | 1024(M) | 200 |
VM3 | Low | 1 | 512(M) | 100 |
制定本案例中应用的服务等级协议(SLA)约束如表3所示。
表3:服务等级协议
参数 | 目标值 | 容忍值 |
响应时间 | 100(ms) | 150ms |
吞吐率 | 65(req/s) | 50(req/s) |
错误率 | 0.1% | 0.5% |
将服务性能、云资源配置以及SLA作为算法的输入,算法流程图如附图4所示,本案例中初始化算法相关参数:种群大小Popsize=10,繁殖代数GMax=20,选择概率Rate=0.5。在完成云资源优化分配算法后,得出一种可能的最优分配方案,使得部署服务所需租用的云资源成本尽可能的低,且保证服务质量符合SLA的约束。本案例中通过算法得出最优部署方案为:服务S1和S5分别拥有两个服务实例,其余服务均只有一个服务实例。服务S1和S3的实例部署在类型为VM2的云实例上,服务S1的另一实例和S2的实例部署在类型为VM1的云实例上,服务S4和S5的实例部署在类型为VM1的云实例上,服务S5的另一实例独立部署在类型为VM3的云实例上。
本发明采用基于变邻域搜索策略的多目标遗传算法对步骤4中所构建的问题模型进行求解。
其中,染色体编码:本算法基于部署的云服务实例进行编码,每一条染色体代表一个部署方案,包含一组基因序列和云资源类型映射表。基因序列中每一个基因代表一个部署的服务实例,基因序列的长度代表总部署的服务实例数。每个基因的取值由一个二元组(s,v)表示,其中s表示部署的服务类型编号,v表示部署的云资源编号。云资源类型映射表中Vi表示编号为i的云资源实例类型,每个云资源实例都是从1开始编号,且保证编号的连续性。
附图2展示了一个部署方案的编码示例,该部署方案中包含4个云实例,编号为1的云实例类型是0,编号为2和3的云实例类型是1,编号为3的云实例类型是2。其中共部署了6个服务实例,服务0部署在编号为1和2的云实例上,服务1部署在云实例2和3上,服务2部署在云实例3和4上。
基于适应度函数:遗传算法寻优的依据是群体中个体的适应度,适应度函数是评价群体中个体好坏的标准,适应度函数的选取直接影响到遗传算法的收敛速度以及寻找最优解的能力。因此,并给出了种群中个体p的适应度值F(p)的计算方法为:
F(p)=DV(p)+SV(p)
其中,DV(p)表示个体p的支配值,为所有低于或等于该个体支配等级的个体(包括该个体)的总数;SV(p)表示个体p的稀疏值,为所在非支配集当中,拥挤距离小于该个体拥挤距离的个体总数。并认为两个个体pi和pj,当pi所有目标值都优于或等于pj且至少存在一个目标值优于pj时则称pi支配pj。
基于变邻域搜索规则:设计变邻域搜索算法的首要问题是设计最优解的邻域,通过参考在部署优化领域已有的一些优化经验,设计了多种邻域结构,以提高算法的搜索能力。因此,本算法针对服务性能和部署成本2个目标制定了多条邻域搜索规则。
1)增加一个新的云实例,并从当前已部署的云实例中迁移部分性能较低的服务实例。
2)升级一个云实例的类型。找到整体负荷较大的云实例并升级至性能更高的云资源类型。
3)迁移一个服务实例。找到性能较低的服务实例并迁移至其他负荷较小的云实例上。
4)部署一个新服务实例。找到负载较大的服务类型并创建一个新实例部署在任一台云资源实例上。
5)合并两个云实例。找到负荷较低的云资源实例,将其部署的服务实例迁移至其他云实例上,并释放当前实例。
6)降低一个云实例的类型。找到整体负荷较小的云实例并降低至成本更低的云资源类型。
基于算法求解流程:
Step 1.初始化算法参数,包括繁殖次数GMAX,种群规模POPSIZE,交叉概率RATE。
Step 2.产生初始种群P,并计算种群适应度。
Step 3.根据种群P中适应度值,选择出适应度最大的两个个体pi和pj。
Step 4.随机生成r∈(0,1),如果r<RATE,采用交叉操作对个体pi和pj进行进化,并对不可行个体进行修复;否则,分别对pi和pj随机使用一种邻域搜索规则进行邻域搜索,并保留适应度高的个体。
Step 5.将产生的新个体添加到种群P'中,并去除重复个体,重复执行上一步骤直至种群P’个体数n与种群规模POPSIZE的相等。
Step 6.计算新种群P'适应度,合并种群P'和P,按照适应度高低排序并保留前POPSIZE个个体作为种群P。
Step 7.判断迭代次数i与繁殖次数GMAX大小,如果i<GMAX,执行Step 3;否则,执行Step 8。
Step 8.计算种群P中各个体的适应度值,输出适应度最大个体p作为最优解。
采用服务关系图建立服务之间的关系,将部署服务实例集、云资源实例集和部署关系共同构成部署方案,并提出了一种新的多目标云资源优化分配问题模型,更加符合对于SOA模型云应用的云资源分配需求。基于变邻域搜索策略对NSGA进行改进,提出了一种基于变邻域搜索策略的多目标遗传算法。本算法为提高局部搜索能力,基于云资源分配的场景和已有经验构建了多种不同的搜索邻域,通过邻域结构的切换,加强局部搜索能力,再利用遗传算法的全局搜索能力,提高了整个算法的搜索效率和求解质量。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参考即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (1)
1.一种基于变邻域搜索策略的云资源分配方法,其特征在于,方法包括:
步骤1:建立SOA模式云应用的服务关系图;
服务关系图为G=(S,E),其中S={Sj|1≤j≤Ns}为结点的集合,表示云服务种类,其中Sj表示第j种云服务类型,Ns表示云服务种类的总数;E={(s,s′)|s,s′∈S}为边的集合,表示云服务之间的交互关系,对于表示从s到s′存在交互关系,包括顺序关系、选择关系、并发关系和循环关系;
步骤2:定义SOA模式云应用的服务质量;
服务质量定义为QoS={S,V,RT,TP,ER},其中S={sj|1≤j≤Ns}表示云服务种类的集合,其中sj表示第j种云服务类型,Ns表示云服务种类的总数;V={vj|1≤j≤Nv}表示云资源种类的集合,其中vj表示第j种云资源类型,Nv表示云资源种类的总数;RT:S×V→R为云服务响应时间函数,其中RT(si,vj)为云服务i部署在云资源j上的响应时间;TP:S×V→R为云服务吞吐率函数,其中TP(si,vj)为云服务i部署在云资源j上的吞吐率;ER:S×V→R为云服务错误率函数,其中ER(si,vj)为云服务i部署在云资源j上的错误率;
步骤3:定义SOA模式云应用的部署方案;
部署方案定义为CDS={D,DV,DS},其中D={dj|1≤j≤Nn}表示云资源实例集,其中dj表示第j个云资源实例,Nn表示云资源实例的个数;DV:D×V→{0,1}为云资源实例类型函数,其中DV(di,vj)=1表示云资源实例di类型为vj,DV(di,vj)=0表示云资源实例di类型不为vj;DS:D×S→{0,1}为云服务部署实例函数,其中DS(di,sj)=1表示云资源实例di上部署了服务sj的实例,DS(di,sj)=0表示云资源实例di上没有部署服务sj的实例;
步骤4:建立多目标云资源优化分配问题模型;
多目标优化的云资源分配问题模型定义为:
定义部署成本:
,
其中RC(vi)为租用类型是vi的云资源所需费用;
定义响应时间:所有服务实例响应时间的均值代表系统整体的响应时间大小;
定义吞吐率:所有服务实例吞吐率的均值代表系统整体的吞吐率大小;
定义错误率:所有服务实例错误率的最大值代表系统整体的错误率大小;
约束条件:|D|>0,至少有一个云资源实例;每个服务必须至少部署一个实例;每个云资源实例上必须存在一个服务实例;部署在一个云资源实例上的所有服务实例的计算能力必须小于该云资源实例最大计算能力,其中CA(di,sj)为服务sj在云实例di中所需的计算能力,CR(di)为云实例di最大计算能力;部署在一个云资源实例上的所有服务实例的内存空间必须小于该云资源实例最大内存空间,其中MA(di,sj)为服务sj在云实例di中所需的内存空间,MR(di)为云实例di最大内存空间;
步骤5:基于变邻域搜索策略,优化分配多目标云资源;
基于染色体编码,对部署的云服务实例进行编码;每一条染色体代表一个部署方案,包含一组基因序列和云资源类型映射表;基因序列中每一个基因代表一个部署的服务实例,基因序列的长度代表总部署的服务实例数;每个基因的取值由一个二元组(s,v)表示,其中s表示部署的服务类型编号,v表示部署的云资源编号;云资源类型映射表中Vi表示编号为i的云资源实例类型,每个云资源实例都是从1开始编号,且保证编号的连续性;
基于遗传算法寻优,依据群体中个体的适应度,适应度函数是评价群体中个体好坏的标准,适应度函数的选取直接影响到遗传算法的收敛速度以及寻找最优解的能力;并给出了种群中个体p的适应度值F(p)的计算方法为:
F(p)=DV(p)+SV(p)
其中,DV(p)表示个体p的支配值,为所有低于或等于该个体支配等级的个体的总数;SV(p)表示个体p的稀疏值,为所在非支配集当中,拥挤距离小于该个体拥挤距离的个体总数;并认为两个个体pi和pj,当pi所有目标值都优于或等于pj且至少存在一个目标值优于pj时则称pi支配pj;
基于变邻域搜索规则;设计最优解的邻域,通过参考在部署优化领域预设的阈值,针对服务性能和部署成本2个目标制定了多条邻域搜索规则;
增加一个新的云实例,并从当前已部署的云实例中迁移部分性能指数低的服务实例;
升级一个云实例的类型,找到整体负荷指数大的云实例并升级至性能云资源类型;
迁移一个服务实例,找到性能指数低的服务实例并迁移至其他负荷指数小的云实例上;
部署一个新服务实例,找到负载指数大的服务类型并创建一个新实例部署在任一台云资源实例上;
合并两个云实例,找到负荷指数低的云资源实例,将其部署的服务实例迁移至其他云实例上,并释放当前实例;
降低一个云实例的类型,找到整体负荷指数小的云实例并降低至成本低的云资源类型;
基于变邻域搜索策略的多目标云资源优化分配问题求解;
Step 1、初始化算法参数,包括繁殖次数GMAX,种群规模POPSIZE,交叉概率RATE;
Step 2、产生初始种群P,并计算种群适应度;
Step 3、根据种群P中适应度值,选择出适应度最大的两个个体pi和pj;
Step4、随机生成r∈(0,1),如果r<RATE,采用交叉操作对个体pi和pj进行进化,并对不可行个体进行修复;否则,分别对pi和pj随机使用一种邻域搜索规则进行邻域搜索,并保留适应度高的个体;
Step 5、将产生的新个体添加到种群P′中,并去除重复个体,重复执行上一步骤直至种群P’个体数n与种群规模POPSIZE的相等;
Step 6、计算新种群P′适应度,合并种群P′和P,按照适应度高低排序并保留前POPSIZE个体作为种群P;
Step7、判断迭代次数i与繁殖次数GMAX大小,如果i<GMAX,执行Step 3;否则,执行Step 8;
Step 8、计算种群P中各个体的适应度值,输出适应度最大个体p作为最优解。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810468836.2A CN108664330B (zh) | 2018-05-16 | 2018-05-16 | 一种基于变邻域搜索策略的云资源分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810468836.2A CN108664330B (zh) | 2018-05-16 | 2018-05-16 | 一种基于变邻域搜索策略的云资源分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108664330A CN108664330A (zh) | 2018-10-16 |
CN108664330B true CN108664330B (zh) | 2019-12-10 |
Family
ID=63779872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810468836.2A Active CN108664330B (zh) | 2018-05-16 | 2018-05-16 | 一种基于变邻域搜索策略的云资源分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108664330B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634744B (zh) * | 2018-11-30 | 2023-01-06 | 哈尔滨工业大学(威海) | 一种基于云平台资源分配的精确匹配方法,设备及存储介质 |
CN110930091B (zh) * | 2019-11-05 | 2023-08-18 | 哈尔滨工业大学(威海) | 基于邻域搜索模拟退火算法的快递末端网点优化整合方法 |
WO2021102775A1 (zh) * | 2019-11-28 | 2021-06-03 | 江南大学 | 一种基于改进遗传算法的模式数据挖掘方法 |
TWI733261B (zh) * | 2019-12-02 | 2021-07-11 | 中華電信股份有限公司 | 配置雲服務的方法及系統 |
CN111221649A (zh) * | 2019-12-31 | 2020-06-02 | 布比(北京)网络技术有限公司 | 边缘资源存储方法、访问方法及装置 |
CN111967938B (zh) * | 2020-08-18 | 2023-07-21 | 中国银行股份有限公司 | 云资源推荐方法、装置、计算机设备及可读存储介质 |
CN114064281A (zh) * | 2021-11-22 | 2022-02-18 | 重庆邮电大学 | 一种基于BFD-VNS算法的低成本Spark执行器放置方法 |
CN114221990A (zh) * | 2021-12-17 | 2022-03-22 | 武汉长江鲲鹏生态创新科技有限公司 | 一种云平台下组合服务优选方法 |
CN115242626B (zh) * | 2022-07-21 | 2024-04-05 | 中国建设银行股份有限公司 | 云资源配置预估方法、装置、设备、存储介质及程序产品 |
CN115460087B (zh) * | 2022-09-15 | 2024-01-02 | 中国电信股份有限公司 | 云计算环境中业务流程部署的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7191107B2 (en) * | 2003-07-25 | 2007-03-13 | Hewlett-Packard Development Company, L.P. | Method of determining value change for placement variable |
CN102033909B (zh) * | 2010-11-19 | 2012-04-25 | 南京大学 | 支持弹性云计算平台开发的资源外包方法 |
CN102664915B (zh) * | 2012-03-23 | 2014-11-19 | 李海波 | 云制造环境中基于资源约束的服务选取方法 |
CN104657215A (zh) * | 2013-11-19 | 2015-05-27 | 南京鼎盟科技有限公司 | 云计算中虚拟化节能系统 |
CN104301403B (zh) * | 2014-09-26 | 2017-09-26 | 东北大学 | 基于组件服务副本增删的云服务资源动态配置系统及方法 |
US20170116522A1 (en) * | 2015-10-05 | 2017-04-27 | Telekom Malaysia Berhad | Method For Task Scheduling And Resources Allocation And System Thereof |
-
2018
- 2018-05-16 CN CN201810468836.2A patent/CN108664330B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108664330A (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108664330B (zh) | 一种基于变邻域搜索策略的云资源分配方法 | |
CN112286677B (zh) | 一种面向资源受限边缘云的物联网应用优化部署方法 | |
Szabo et al. | Science in the cloud: Allocation and execution of data-intensive scientific workflows | |
CN102388595B (zh) | Vpc迁移中的资源匹配方法及装置 | |
Wang et al. | Budget-driven scheduling algorithms for batches of MapReduce jobs in heterogeneous clouds | |
CN102855259B (zh) | 大规模数据聚类分析的并行化 | |
Zhou et al. | A modified PSO algorithm for task scheduling optimization in cloud computing | |
Heidari et al. | A new SLA-aware method for discovering the cloud services using an improved nature-inspired optimization algorithm | |
Jena et al. | GA-based customer-conscious resource allocation and task scheduling in multi-cloud computing | |
Aryal et al. | Dynamic application deployment in federations of clouds and edge resources using a multiobjective optimization AI algorithm | |
Ebadifard et al. | Optimizing multi objective based workflow scheduling in cloud computing using black hole algorithm | |
CN110008023B (zh) | 基于遗传算法的云计算系统预算约束随机任务调度方法 | |
CN109447264B (zh) | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 | |
CN103516733A (zh) | 一种虚拟私有云的处理方法及装置 | |
CN110851247B (zh) | 一种带约束云工作流的成本优化调度方法 | |
CN105099951A (zh) | 一种资源调度方法及管理设备 | |
Li et al. | An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters | |
KR20200062299A (ko) | 블록체인 트랜잭션들을 선택하기 위한 트랜잭션 선택 디바이스 | |
CN109976901A (zh) | 一种资源调度方法、装置、服务器及可读存储介质 | |
Chikhaoui et al. | Multi-objective optimization of data placement in a storage-as-a-service federated cloud | |
CN117271101A (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
CN108389079A (zh) | 计费策略的制定与查询方法、装置、终端及可读存储介质 | |
TWI740895B (zh) | 應用歸屬服務集群的分配方法和裝置 | |
CN113504998A (zh) | 一种任务调度方案的确定方法、装置和设备 | |
Devagnanam et al. | Design and development of exponential lion algorithm for optimal allocation of cluster resources in cloud |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |