CN109101315B - 基于包簇框架的云数据中心资源分配方法 - Google Patents
基于包簇框架的云数据中心资源分配方法 Download PDFInfo
- Publication number
- CN109101315B CN109101315B CN201810727411.9A CN201810727411A CN109101315B CN 109101315 B CN109101315 B CN 109101315B CN 201810727411 A CN201810727411 A CN 201810727411A CN 109101315 B CN109101315 B CN 109101315B
- Authority
- CN
- China
- Prior art keywords
- sub
- cluster
- packet
- row
- column
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于包簇框架的云数据中心资源分配方法,建立包簇框架,实现包簇框架的改进匈牙利方法。本发明一是实现资源的共享,根据提出的包簇结构,虚拟机资源能够更加容易实现相互共享。当部分虚拟机资源处于闲置时,便可以将这部分的计算资源释放给需要资源的其他虚拟机中;其二是数据中心的多目标优化。通过包簇框架,使得服务器的计量和监测都更加清晰,在云计算的成本、能耗、资源利用率等目标的建模和优化也更为简单。其三则是虚拟机和服务器的精细化管理:虚拟机放置策略从原来的虚拟机与物理机之间扁平的映射关系转换为包与簇之间的映射关系,把虚拟机与物理机之间的映射问题进一步降解规模,提高了虚拟机的分配效率和分配速度。
Description
技术领域
本发明涉及一种云计算资源分配技术,特别涉及一种基于包簇框架的云数据中心资源分配方法。
背景技术
近几年来,云计算的快速发展带动了信息技术行业,并且吸引了数量庞大的企业和用户的关注。云计算通过大规模、分布式虚拟化的数据中心向互联网提供服务。每个数据中心都包含无数的服务器,而每台物理服务器又可分为几***立的虚拟机。
云计算技术刚出现时,其关注方向是如何使建立一个高性能计算的数据中心,并通过按需使用来服务用户,其中最重要的问题之一就是资源分配的管理模式,即如何在物理服务器上放置新的虚拟机请求。
现有数据中心的资源管理模式有如下三个问题。
分配层次过于扁平:现有的虚拟机分配策略是通过各种的算法来进行虚拟机与物理机的映射,在服务器和虚拟机数量达到万台以上的情况下,分配的情况可能会有将近十万亿个,由此来计算虚拟机分配的最优解的计算量难以估量。再进一步考虑到虚拟机之间的通讯流量、网络拓扑模型、路由以及数据中心的带宽共享等,问题的规模将进一步地扩大,甚至还需要考虑到虚拟机的动态分配问题,由此带来映射关系的重绘和再次分配,都将是十分复杂的问题。
分配资源的灵活性过低:在现有的虚拟机分配过程中,用户需要十分细致地描述出他们所需要的每一个(如果有多个)虚拟机的资源配置要求,有时候还要给出虚拟机群之间的流量、网络拓扑、路由等,以便数据中心对虚拟机分配后的包含资源、带宽等性能进行优化。但是实际情况中,许多用户可能对云计算的专业知识并不了解,都会以群组方式来指定云计算的硬件以及网络资源,现有的虚拟机分配无法满足用户在灵活性上的要求,也不允许资源在虚拟机之间共享。这里的虚拟机资源共享是指,对于每个虚拟机没有固定的资源限定,而是以一个群组虚拟机的总量进行内部资源的分配。
管理结构过于单一:无法解决结构性虚拟机的服务问题,例如要求服务商提供虚拟机之间的网络搭建、拓扑结构,或是对申请的虚拟机资源按不同的条件(企业区域、企业部门、员工职级等)划分不同的群组,或者无法满足云计算数据中心多样化的优化方向:优化能耗、资源利用率、迁移管理、成本收益等。
发明内容
本发明是针对扁平化和细颗粒而导致的分配模式的低效以及云计算中心的资源调度管理的复杂的问题,提出了一种基于包簇框架的云数据中心资源分配方法,建立一个结构化资源管理模式,解决现在云数据资源分配问题。
本发明的技术方案为:一种基于包簇框架的云数据中心资源分配方法,具体包括如下步骤:
1)建立包簇框架:包是用户对虚拟机资源需求的抽象表述,是一个资源共享的虚拟机群组,不仅仅代表了底层虚拟机需求的集群底层包,还可以是由子包组成的高级包的递归定义;簇是服务器资源的抽象表述,代表了服务器组成的集群组合,由子簇组成的高级簇的递归定义;
包与簇的映射关系为:假设在包的层次结构中有一任意包γ,在包γ下可能存在M个虚拟机或子包v,在这里虚拟机或子包的数量限制为1≤v≤M;在包簇框架分配时,我们要将同级别的包γ分配给同级别的簇ρ,假设簇ρ下有N个服务器或子簇p,1≤p≤N;需要解决的是:在最小化能耗的前提下来将M个子包通过最优的方法分配到N个子簇上,并且保证要使子包的子包或虚拟机映射到子簇的子簇或物理机上;
用公式表示包簇映射的框架关系如下:
在式(1)中,xv,p[t]代表在时间t中,子包v是否分配给子簇p;xv,p[t]的取值只有0或1;当子包v分配给子簇p,则xv,p[t]=1,否则xv,p[t]=0;
包簇关系要求1:
式(2)代表在任意时间t,每一个子包都必须且只能分配一个子簇上,但是一个子簇上可以承载多个子包;
包簇关系要求2:任意的子簇可用资源总量必须大于该子簇上所分配到的子包的需求总量:
式(3)中,Rv,i[t]表示每一个子包v在时间t对资源i的需求总量,其中i=1,2,3,...,J;Ap,i[t]则表示每一个子簇P在时间t对资源i的可用总量,其中i=1,2,3,...,J;
2)实现包簇框架的改进匈牙利算法:包括匈牙利算法成本函数的计算和通过快速降阶算法实现多样化包簇的分配;
所述快速降阶算法:(1)首先一个簇可以被分配多个包,通过降阶来解决包簇个数不同的情况;(2)当匈牙利算法中的0元素同时是行和列中的独立0元素,称“双独0元素”,说明这个位置是最优解;(3)如果没有双独0元素,那么单独的0元素其所在的行或列的除0元素外的最小值越大,说明该0元素的解更优;(4)选中独立0元素之后,为了减少迭代次数,使用刚刚除0元素以外的最小值来减去未分配的行或列的所有元素,进而直接构造出新的0元素。
所述步骤2)中匈牙利算法成本函数的计算:
成本函数如式(5):
Uv,p=Ubase+Costv,p+yp (5)
式(5)中,Uv,p代表子包v分配到子簇p的成本,Ubase代表子簇p已有的基础成本,基础成本中包含了已分配在该子簇上子包的成本总和,如式(6)所示;Costv,p代表了当前子包v分配到子簇p的能耗值,yp代表了子簇p是否能够满足当前包的需求,如果无法满足,则设置为无穷大,在匈牙利算法中,无穷大的成本值不会参与到分配中;
基于使用率作为能耗成本值,如下式:
式(8)中Rv,cpu/Ap,cpu、Rv,men/Ap,men、Rv,io/Ap,io三者分别代表子包v对子簇p的CPU、内存和磁盘的占有率,将子包更加均衡地分配给子簇,以保证资源使用率维持在平稳的状态。
所述通过快速降阶算法实现多样化包簇的分配具体步骤如下:
根据式(5)计算出当前每个子包对每个子簇的成本值,并将需要分配的子簇个数作为行数,子包的个数作为列数组成成本矩阵;
步骤(1)将成本矩阵的列数按照行数进行转化,分割成一个或数个行数和列数完全相等的矩阵;
步骤(2)如果分割的矩阵中最后一个矩阵不满足行数和列数相等,那么就用×补足行数或列数,形成形式上行数和列数完全相等的矩阵;
步骤(3)对分割后矩阵进行如下处理:如为无补足和补足行的矩阵,逐行的每个元素减去该行最小值;如为补足列的矩阵,则逐列的每个元素减去该列最小值,并且找到一条满足条件的处理后,进入下一步;
步骤(4)对步骤(3)处理后矩阵,寻找“双独0元素”,逐行(列)检查是否存在单独的0元素,并且该0元素也是在列(行)上也是单独的0元素,如果存在此0元素,则选中它,并划去它所在的列和行;并且找到一条满足条件的处理后,进入下一步;如没有一条满足则跳过此步,进入下一步;
步骤(5)寻找“单独0元素”,如果同一列(行)存在多个独立0元素,那么就进行如下a-c子步骤:
a、在其所在的行(列)中找到各自的次小元素;
b、选中次小元素最大的行(列)的此单独0元素,划去此0元素所在的行和列;
c、把刚才与其比较次小元素的行(列)减去自己行(列)的次小元素;
处理完后进入下一步;如找不到满足条件的跳过此步;
步骤(6)如果列(行)存在单独的0元素,而在行(列)上的其他0元素不是该列(行)上的单独0元素,那么就选中这个0元素,划去该0元素所在的行和列,进入下一步;如找不到满足条件的跳过此步;
步骤(7)如果所有行(列)上,都不存在单独的0元素,那么就任意选择0元素最少的行(列)中的任意一个0,如果行(列)存在相同的情况,就进行列(行)的0元素个数对比,选择最少的0元素,进入下一步;如找不到满足条件的跳过此步;
步骤(8)重复步骤(3)至步骤(7),直到找出所有选定的0元素;
步骤中出现的列(行)为先考虑列,再考虑行;出现的行(列)为先考虑行,再考虑列。
本发明的有益效果在于:本发明基于包簇框架的云数据中心资源分配方法,同时满足了分配速度和能耗。在虚拟机和物理机数量巨大的情况下,数据中心依然能够较快地完成分配。在能耗上,始终保持CPU使用率在一个较平均的水平,以达到降低能耗的目标。
具体实施方式
本发明从三个方面来对云数据中心资源分配进行创新。一是实现资源的共享,根据本发明提出的包簇结构,虚拟机资源能够更加容易实现相互共享。当部分虚拟机资源处于闲置时,便可以将这部分的计算资源释放给需要资源的其他虚拟机中,从而实现更广泛的包资源共享。
其二是数据中心的多目标优化。通过包簇框架,使得服务器的计量和监测都更加清晰,在云计算的成本、能耗、资源利用率等目标的建模和优化也更为简单。
其三则是虚拟机和服务器的精细化管理:虚拟机放置策略从原来的虚拟机与物理机之间扁平的映射关系转换为包与簇之间的映射关系,把虚拟机与物理机之间的映射问题进一步降解规模,提高了虚拟机的分配效率和分配速度,更易于实现对虚拟机和物理机的精细化管理。
首先介绍包簇框架的概念。在包簇映射框架中,包是用户对虚拟机资源需求的抽象表述,是一个资源共享的虚拟机群组,不仅仅代表了底层虚拟机需求的集群底层包,还可以是由子包组成的高级包的递归定义。同样的,簇是服务器资源的抽象表述,代表了服务器组成的集群组合,由子簇组成的高级簇的递归定义。
有了以上的概述,我们就可以对包簇框架进行进一步地定义。假设在包的层次结构中有一任意包γ,在包γ下可能存在M个虚拟机或子包v,在这里虚拟机或子包的数量限制为1≤v≤M。在包簇框架分配时,我们要将同级别的包γ分配给同级别的簇ρ,假设簇ρ下有N个服务器或子簇p,1≤p≤N。本发明需要解决的是:在最小化能耗的前提下来将M个子包通过最优的方法分配到N个子簇上,并且保证要使子包的子包(或虚拟机)映射到子簇的子簇(或物理机)上。
可以用公式表示包簇映射的框架关系如下:
在式(1)中,xv,p[t]代表在时间t中,子包v是否分配给子簇p。xv,p[t]的取值只有0或1。当子包v分配给子簇p,则xv,p[t]=1,否则xv,p[t]=0。
在这里要求:
式(2)代表了,在任意时间t,每一个子包都必须且只能分配一个子簇上,但是一个子簇上可以承载多个子包,这是为了保证所有的需求包都可以获取对应的资源。
此外,假设存在J种资源:1,2,3,...,J。这个资源代表了每一个子包所需的资源量,每一项代表一个类型,相应的子簇也同样如此。
有了包簇映射的关系,还需要对其给予一些约束,即任意的子簇可用资源总量必须大于该子簇上所分配到的子包的需求总量:
式(3)中,Rv,i[t]表示每一个子包v在时间t对资源i的需求总量,其中i=1,2,3,...,J。Ap,i[t]则表示每一个子簇P在时间t对资源i的可用总量,其中i=1,2,3,...,J。
一种基于包簇框架的云数据中心资源分配方法,方法是对匈牙利算法进行改进而得来的,包括两部分,第一部分是匈牙利算法成本函数的计算,第二部分是通过快速降阶算法实现多样化包簇的分配。
第一部分成本函数的计算,具体方法为:在匈牙利算法中,每一个资源对于分配对象的成本是不同的。成本函数主要的目的是作为一个目标值优化的方向,在包簇框架中,计算一个包放置在一个簇的成本可以十分多样化,本发明以能耗为例进行优化,所以对于成本函数的计算,其实是能耗成本的计算,一个包对于一个簇的成本越低,就代表包对于簇的能源消耗越低;另一方面,包簇框架中的成本函数还应该包含当前簇是否可被分配,如果不可分配的簇则没有必要再参与到分配中。
第二部分快速降阶算法的主要思想为:(1)首先一个簇可以被分配多个包,通过降阶来解决包簇个数不同的情况;(2)当匈牙利算法中的0元素同时是行和列中的独立0元素(下称“双独0元素”),说明这个位置是最优解;(3)如果没有双独0元素,那么单独的0元素(下称“单独0元素”)其所在的行或列的除0元素外的最小值越大,说明该0元素的解更优;(4)选中独立0元素之后,为了减少迭代次数,可以使用刚刚除0元素以外的最小值来减去未分配的行或列的所有元素,进而直接构造出新的0元素。
本发明主要分为两部分,第一部分是匈牙利算法成本函数的计算,第二部分是通过快速降阶算法实现多样化包簇的分配。
第一部分,首先给出一个基础的成本函数,式(5):
Uv,p=Ubase+Costv,p+yp (5)
式(5)中,Uv,p代表子包v分配到子簇p的成本,Ubase代表子簇p已有的基础成本,基础成本中包含了已分配在该子簇上子包的成本总和,如式(6)所示,Costv,p代表了当前子包v分配到子簇p的能耗值,yp代表了子簇p是否能够满足当前包的需求,如果无法满足,则设置为无穷大,在匈牙利算法中,无穷大的成本值不会参与到分配中。
在这里还需要对Costv,p作进一步地说明,由于能耗值是一个实时产生的值,所以在包簇分配前,是无法计算能耗值,但成本函数又是以能耗为优化目标,这里将基于使用率作为能耗成本值,如下式:
式(8)中Rv,cpu/Ap,cpu、Rv,men/Ap,men、Rv,io/Ap,io三者分别代表子包v对子簇p的CPU、内存和磁盘的占有率,这样做的好处是能够将子包更加均衡地分配给子簇,以保证资源使用率维持在平稳的状态,从而使得能耗降低。
第二部分是利用快速降阶的匈牙利算法完成包簇分配,比起原有的匈牙利算法,改进后的方法能够减少匈牙利算法的迭代次数,更快速地完成虚拟机的放置。准备工作:
根据式(5)计算出当前每个子包对每个子簇的成本值,并将需要分配的子簇个数作为行数,子包的个数作为列数组成成本矩阵。
具体步骤如下:
步骤(1)将成本矩阵的列数按照行数进行转化,分割成一个或数个行数和列数完全相等的矩阵;
步骤(2)如果分割的矩阵中最后一个矩阵不满足行数和列数相等,那么就用×补足行数或列数,形成形式上行数和列数完全相等的矩阵。
步骤(3)对分割后矩阵进行如下处理:如为无补足和补足行的矩阵,逐行的每个元素减去该行最小值;如为补足列的矩阵,则逐列的每个元素减去该列最小值,并且找到一条满足条件的处理后,进入下一步;
步骤(4)对步骤(3)处理后矩阵,寻找“双独0元素”,逐行(列)检查是否存在单独的0元素,并且该0元素也是在列(行)上也是单独的0元素,如果存在此0元素,则选中它,并划去它所在的列和行;并且找到一条满足条件的处理后,进入下一步;如没有一条满足则跳过此步,进入下一步;
例如以下成本矩阵中,第1行第2列的0元素,既是第1行的单独0元素,也是第2列的单独0元素,这就是“双独0元素”,需要划去第1行和第2列,如下矩阵所示,
步骤(5)寻找“单独0元素”,如果同一列(行)存在多个独立0元素,那么就进行如下a-c子步骤:
步骤中出现的列(行)为先考虑列,再考虑行。
a.在其所在的行(列)中找到各自的次小元素;
b.选中次小元素最大的行(列)的此单独0元素,划去此0元素所在的行和列;
c.把刚才与其比较次小元素的行(列)减去自己行(列)的次小元素;
处理完后进入下一步;如找不到满足条件的跳过此步;
说明:单独0元素的选择是根据各自的次小元素进行选择(0已经是最小值了,所以要选择次小元素),选择方式是次小元素的最大值,选择后,未被选中的行(列)需要减去自己行(列)的最小值。
说明矩阵1的选取:选择第5行第1列的独立0元素是因为第3行第1列的次小值为2,第5行第1列的次小值为3,3为最大值,所以选择第5行第1列。
步骤(6)如果列(行)存在单独的0元素,而在行(列)上的其他0元素不是该列(行)上的单独0元素,那么就选中这个0元素,划去该0元素所在的行和列,进入下一步;如找不到满足条件的跳过此步;
步骤(7)如果所有行(列)上,都不存在单独的0元素,那么就任意选择0元素最少的行(列)中的任意一个0,如果行(列)存在相同的情况,就进行列(行)的0元素个数对比,选择最少的0元素,进入下一步;如找不到满足条件的跳过此步;
例如以下成本矩阵中,不存在单独的0元素,那可以任意选择0元素最少的行,以下矩阵中为第1行(2个)和第5行(2个),此时发生相同情况,进一步对比列的0元素,可以看出第一列0元素最少(2个),所以任意选择第3行第1列的0元素或第5行第1列的0元素;
步骤(8)重复步骤(3)至步骤(7),直到找出所有选定的0元素。
由于在包簇映射的框架中,经常会遇到包多于簇的情况发生(也即虚拟机的个数永远多于等于物理机的个数),现假定有7个包要分配到5个簇上,并且能够保证5个簇上的资源足够能满足7个包所需要的资源(上层包簇所分配的必要条件),它们之间的成本矩阵如表1所示(分配7个包给5个簇的成本矩阵):
表1
成本 | 包1 | 包2 | 包3 | 包4 | 包5 | 包6 | 包7 |
簇A | 12 | 7 | 9 | 7 | 9 | 3 | 9 |
簇B | 8 | 9 | 6 | 6 | 6 | 13 | 12 |
簇C | 7 | 17 | 12 | 14 | 9 | 16 | 10 |
簇D | 15 | 14 | 6 | 6 | 10 | 4 | 5 |
簇E | 4 | 10 | 7 | 10 | 9 | 7 | 13 |
首先转换为成本矩阵:
并用×元素补齐第二个矩阵中缺失的部分:
接下来对两个矩阵分别进行改进的匈牙利算法求解:
矩阵1:
步骤(5)后矩阵中下划线代表了该行进行了步骤(5)的c子步骤,减去了所在行的次小元素,以便生成新的0元素,出现了两个步骤(6)是因为步骤(8)重复操作,不满足步骤(4)(5)条件,直接进入步骤(6);
矩阵2:
所以,最后的分配方案为:方案一:包1分配给簇5,包2分配给簇1,包3分配给簇2;包4分配给簇4;包5分配给簇3;包6分配给簇1;包7分配给簇4;方案二:包1分配给簇5,包2分配给簇1,包3分配给簇4;包4分配给簇2;包5分配给簇3;包6分配给簇1;包7分配给簇4。
Claims (1)
1.一种基于包簇框架的云数据中心资源分配方法,具体包括如下步骤:
1)建立包簇框架:包是用户对虚拟机资源需求的抽象表述,是一个资源共享的虚拟机群组,不仅仅代表了底层虚拟机需求的集群底层包,还可以是由子包组成的高级包的递归定义;簇是服务器资源的抽象表述,代表了服务器组成的集群组合,由子簇组成的高级簇的递归定义;
包与簇的映射关系为:假设在包的层次结构中有一任意包γ,在包γ下可能存在M个虚拟机或子包v,在这里虚拟机或子包的数量限制为1≤v≤M;在包簇框架分配时,我们要将同级别的包γ分配给同级别的簇ρ,假设簇ρ下有N个服务器或子簇p,1≤p≤N;需要解决的是:在最小化能耗的前提下来将M个子包通过最优的方法分配到N个子簇上,并且保证要使子包的子包或虚拟机映射到子簇的子簇或物理机上;
用公式表示包簇映射的框架关系如下:
在式(1)中,xv,p[t]代表在时间t中,子包v是否分配给子簇p;xv,p[t]的取值只有0或1;当子包v分配给子簇p,则xv,p[t]=1,否则xv,p[t]=0;
包簇关系要求1:
式(2)代表在任意时间t,每一个子包都必须且只能分配一个子簇上,但是一个子簇上可以承载多个子包;
包簇关系要求2:任意的子簇可用资源总量必须大于该子簇上所分配到的子包的需求总量:
式(3)中,Rv,i[t]表示每一个子包v在时间t对资源i的需求总量,其中i=1,2,3,...,J;Ap,i[t]则表示每一个子簇P在时间t对资源i的可用总量,其中i=1,2,3,...,J;
2)实现包簇框架的改进匈牙利算法:包括匈牙利算法成本函数的计算和通过快速降阶算法实现多样化包簇的分配;
所述快速降阶算法:(1)首先一个簇可以被分配多个包,通过降阶来解决包簇个数不同的情况;(2)当匈牙利算法中的0元素同时是行和列中的独立0元素,称“双独0元素”,说明这个位置是最优解;(3)如果没有双独0元素,那么单独的0元素其所在的行或列的除0元素外的最小值越大,说明该0元素的解更优;(4)选中独立0元素之后,为了减少迭代次数,使用刚刚除0元素以外的最小值来减去未分配的行或列的所有元素,进而直接构造出新的0元素;
所述步骤2)中匈牙利算法成本函数的计算:
成本函数如式(5):
Uv,p=Ubase+Costv,p+yp (5)
式(5)中,Uv,p代表子包v分配到子簇p的成本,Ubase代表子簇p已有的基础成本,基础成本中包含了已分配在该子簇上子包的成本总和,如式(6)所示;Costv,p代表了当前子包v分配到子簇p的能耗值,yp代表了子簇p是否能够满足当前包的需求,如果无法满足,则设置为无穷大,在匈牙利算法中,无穷大的成本值不会参与到分配中;
基于使用率作为能耗成本值,如下式:
式(8)中Rv,cpu/Ap,cpu、Rv,men/Ap,men、Rv,io/Ap,io三者分别代表子包v对子簇p的CPU、内存和磁盘的占有率,将子包更加均衡地分配给子簇,以保证资源使用率维持在平稳的状态;
其特征在于,所述通过快速降阶算法实现多样化包簇的分配具体步骤如下:
根据式(5)计算出当前每个子包对每个子簇的成本值,并将需要分配的子簇个数作为行数,子包的个数作为列数组成成本矩阵;
步骤(1)将成本矩阵的列数按照行数进行转化,分割成一个或数个行数和列数完全相等的矩阵;
步骤(2)如果分割的矩阵中最后一个矩阵不满足行数和列数相等,那么就用×补足行数或列数,形成形式上行数和列数完全相等的矩阵;
步骤(3)对分割后矩阵进行如下处理:如为无补足和补足行的矩阵,逐行的每个元素减去该行最小值;如为补足列的矩阵,则逐列的每个元素减去该列最小值,并且找到一条满足条件的处理后,进入下一步;
步骤(4)对步骤(3)处理后矩阵,寻找“双独0元素”,逐行(列)检查是否存在单独的0元素,并且该0元素也是在列(行)上也是单独的0元素,如果存在此0元素,则选中它,并划去它所在的列和行;并且找到一条满足条件的处理后,进入下一步;如没有一条满足则跳过此步,进入下一步;
步骤(5)寻找“单独0元素”,如果同一列(行)存在多个独立0元素,那么就进行如下a-c子步骤:
a、在其所在的行(列)中找到各自的次小元素;
b、选中次小元素最大的行(列)的此单独0元素,划去此0元素所在的行和列;
c、把刚才与其比较次小元素的行(列)减去自己行(列)的次小元素;
处理完后进入下一步;如找不到满足条件的跳过此步;
步骤(6)如果列(行)存在单独的0元素,而在行(列)上的其他0元素不是该列(行)上的单独0元素,那么就选中这个0元素,划去该0元素所在的行和列,进入下一步;如找不到满足条件的跳过此步;
步骤(7)如果所有行(列)上,都不存在单独的0元素,那么就任意选择0元素最少的行(列)中的任意一个0,如果行(列)存在相同的情况,就进行列(行)的0元素个数对比,选择最少的0元素,进入下一步;如找不到满足条件的跳过此步;
步骤(8)重复步骤(3)至步骤(7),直到找出所有选定的0元素;
步骤中出现的列(行)为先考虑列,再考虑行;出现的行(列)为先考虑行,再考虑列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810727411.9A CN109101315B (zh) | 2018-07-04 | 2018-07-04 | 基于包簇框架的云数据中心资源分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810727411.9A CN109101315B (zh) | 2018-07-04 | 2018-07-04 | 基于包簇框架的云数据中心资源分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101315A CN109101315A (zh) | 2018-12-28 |
CN109101315B true CN109101315B (zh) | 2021-11-19 |
Family
ID=64845756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810727411.9A Active CN109101315B (zh) | 2018-07-04 | 2018-07-04 | 基于包簇框架的云数据中心资源分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101315B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861446A (zh) * | 2020-07-20 | 2020-10-30 | 北京金山云网络技术有限公司 | 计费控制方法、装置、电子设备、服务器及存储介质 |
CN114443258B (zh) * | 2020-10-30 | 2023-02-28 | ***通信集团浙江有限公司 | 用于虚拟机的资源调度方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010217951A (ja) * | 2009-03-13 | 2010-09-30 | Murata Machinery Ltd | 多言語対応装置 |
CN102749987A (zh) * | 2012-06-20 | 2012-10-24 | 武汉理工大学 | 计算机同构集群***高能效资源分配方法 |
CN106415714A (zh) * | 2014-01-30 | 2017-02-15 | 高通股份有限公司 | 译码环境高阶立体混响系数的独立帧 |
-
2018
- 2018-07-04 CN CN201810727411.9A patent/CN109101315B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010217951A (ja) * | 2009-03-13 | 2010-09-30 | Murata Machinery Ltd | 多言語対応装置 |
CN102749987A (zh) * | 2012-06-20 | 2012-10-24 | 武汉理工大学 | 计算机同构集群***高能效资源分配方法 |
CN106415714A (zh) * | 2014-01-30 | 2017-02-15 | 高通股份有限公司 | 译码环境高阶立体混响系数的独立帧 |
Non-Patent Citations (2)
Title |
---|
《基于包簇映射的云计算资源分配框架》;卢浩洋、陈世平;《计算机应用》;20161010;第2704-2709页 * |
《快速降阶匈牙利算法的云计算任务分配模型》;任金霞、何富江;《江西理工大学学报》;20140630(第35卷第3期);第63-67页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109101315A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Alicherry et al. | Network aware resource allocation in distributed clouds | |
Dehury et al. | DYVINE: Fitness-based dynamic virtual network embedding in cloud computing | |
CN113193984B (zh) | 一种空天地一体化网络资源映射方法及*** | |
Jeannot et al. | Near-optimal placement of MPI processes on hierarchical NUMA architectures | |
CN108845874B (zh) | 资源的动态分配方法及服务器 | |
CN109582448B (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
CN101938416A (zh) | 一种基于动态重配置虚拟资源的云计算资源调度方法 | |
CN105391654A (zh) | 基于账户活跃度的***资源分配方法及装置 | |
CN108270805B (zh) | 用于数据处理的资源分配方法及装置 | |
WO2022001086A1 (zh) | 一种高效的gpu资源分配优化方法和*** | |
Pluzhnik et al. | Optimal control of applications for hybrid cloud services | |
CN109101315B (zh) | 基于包簇框架的云数据中心资源分配方法 | |
CN103763174A (zh) | 一种基于功能块的虚拟网络映射方法 | |
WO2020177255A1 (zh) | 无线接入网的资源分配方法及装置 | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
CN110167031B (zh) | 一种面向集中式基站的资源分配方法、设备及存储介质 | |
CN103997515A (zh) | 一种分布式云中计算中心选择方法及其应用 | |
Meskar et al. | Fair multi-resource allocation in mobile edge computing with multiple access points | |
CN116708446B (zh) | 基于网络性能综合权值决策的算网调度服务方法及*** | |
CN113032146A (zh) | 一种面向多接入边缘计算环境的健壮***供应方法 | |
Luo et al. | Traffic-aware VDC embedding in data center: A case study of fattree | |
CN111372216A (zh) | 一种面向智能网联汽车的资源调度方法、***及存储介质 | |
CN105577834B (zh) | 具有可预测性能的云数据中心两层带宽分配方法及*** | |
CN109818788B (zh) | 一种基于次模优化的边缘缓存c-ran中计算资源分配方法 | |
CN106357800A (zh) | 一种基于QoE的云计算服务架构 |
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 |