CN114443217A - 虚拟机放置方法、装置、电子设备以及存储介质 - Google Patents
虚拟机放置方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN114443217A CN114443217A CN202111608575.8A CN202111608575A CN114443217A CN 114443217 A CN114443217 A CN 114443217A CN 202111608575 A CN202111608575 A CN 202111608575A CN 114443217 A CN114443217 A CN 114443217A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- particle
- particles
- optimal solution
- physical machine
- 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.)
- Pending
Links
Images
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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
Abstract
本发明揭示了一种虚拟机放置方法、装置、电子设备以及存储介质,涉及计算机技术领域。该方法包括:获取至少一个虚拟机以及用于放置各虚拟机的至少一个物理机;获取至少两个粒子;至少两个粒子属于至少两个种群,各种群中包括至少一个粒子;各粒子包括位置和速度两个矢量;位置用于表征各虚拟机放置的物理机的标识;速度用于表征各虚拟机每次调整位置的幅度;根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化;根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。采用该方法可以保证最终确定的各虚拟机应放置的物理机的总能耗最小。提高了确定各虚拟机放置位置的效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种虚拟机放置方法、装置、电子设备以及存储介质。
背景技术
随着新型互联网的不断发展,数据中心作为依托的基础设施其发展面临诸多问题,其中最为突出的问题是如何降低数据中心运行能耗。目前降低数据中心运行能耗有多种方式,包括虚拟机调度,任务调度等待。
现有技术中,通常采用基于模拟退火技术的虚拟机放置策略,从目前异构的数据中心角度出发,提出要消耗更少的能量和更高的资源利用率实现虚拟机到物理机的映射,通过弃用物理活动的机器来最大程度地降低功耗,并减少制造周期。
但是,上述方法通过关闭闲置物理机达到降低能耗的目标,但是若频繁的开启关闭物理机,首先对于任务迁移提出更高的要求,同时降低了服务质量,此外由于物理机启动时瞬时功率较大,因此这种方法可能会增加能耗。
发明内容
有鉴于此,本发明实施例提供了一种虚拟机放置方法、装置、电子设备以及存储介质,旨在解决物理机能耗较大的问题。
根据第一方面,本发明实施例提供了一种虚拟机放置方法,该方法包括:
获取至少一个虚拟机以及用于放置各虚拟机的至少一个物理机;
获取至少两个粒子;至少两个粒子属于至少两个种群,各种群中包括至少一个粒子;各粒子包括位置和速度两个矢量;位置用于表征各虚拟机放置的物理机的标识;速度用于表征各虚拟机每次调整位置的幅度;
根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化;
根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
本申请实施例提供的虚拟机放置方法,获取至少一个虚拟机以及用于放置各虚拟机的至少一个物理,并获取至少两个粒子,然后根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化,从而保证各个粒子对应的位置能够满足预设要求,其中,预设要求可以保证物理机的实际请求满足虚拟机的请求资源大小,进一步保证各个粒子有意义。根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。减少了各个粒子更新的次数且保证了更新后的粒子满足预设要求,且可以保证最终确定的各虚拟机应放置的物理机的总能耗最小。提高了确定各虚拟机放置位置的效率。
结合第一方面,在第一方面第一实施方式中,根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子位置和速度进行初始化,包括:
获取各物理机的实际资源,并对各物理机的实际资源进行排序;
获取各虚拟机的请求资源,根据各虚拟机的请求资源以及各物理机的实际资源的排序,依次将各虚拟机放置在实际资源满足虚拟机的请求资源的物理机中,对各粒子的位置进行初始化;
根据初始化后的各粒子的位置,对各粒子的速度进行初始化。
本申请实施例提供的虚拟机放置方法,获取各物理机的实际资源,并对各物理机的实际资源进行排序。然后获取各虚拟机的请求资源,根据各虚拟机的请求资源以及各物理机的实际资源的排序,依次将各虚拟机放置在实际资源满足虚拟机的请求资源的物理机中,对各粒子的位置进行初始化。从而保证初始化后的各个粒子对应的位置能够满足预设要求,其中,预设要求可以保证物理机的实际请求满足虚拟机的请求资源大小,进一步保证各个粒子有意义。然后根据初始化后的各粒子的位置,对各粒子的速度进行初始化。从而减少了各个粒子更新的次数且保证了更新后的粒子满足预设要求,且可以保证最终确定的各虚拟机应放置的物理机的总能耗最小。提高了确定各虚拟机放置位置的效率。
结合第一方面,在第一方面第二实施方式中,根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识,包括:
获取初始化的各粒子的位置对应的各物理机的初始总能耗;
根据各初始总能耗,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定;
根据各种群内的最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
本申请实施例提供的虚拟机放置方法,根据各初始总能耗,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定。从而可以保证各种群内最优解的准确性,此外,根据各种群内的最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。由于种群间的粒子在种群内部相互独立迭代,因此种群间具有多样性,能够避免算法陷入局部最优解,保证了得到的各虚拟机应放置的物理机的标识的准确性,且保证根据得到的各虚拟机应放置的物理机的标识放置各虚拟机能耗最小。
结合第一方面第二实施方式,在第一方面第三实施方式中,根据各初始总能耗,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定,包括:
根据各初始总能耗,定义梯度下降函数;
根据梯度下降函数,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定。
本申请实施例提供的虚拟机放置方法,根据各初始总能耗,定义梯度下降函数,根据梯度下降函数,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定。上述方法,采用梯度下降的方法进行迭代,梯度下降能够朝着速度最快的方向进行迭代,因此,具有提高算法的收敛速度的优点。可以保证各种群训练完毕,保证各种群内粒子位置达到最优。
结合第一方面第三实施方式,在第一方面第四实施方式中,根据梯度下降函数,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定,包括:
根据梯度下降函数,对各种群内的各粒子进行位置更新和速度更新;
根据更新后的各粒子的位置和速度以及梯度下降函数,再次对各种群内的各粒子进行位置更新和速度更新,直至各种群内的最优解趋于稳定。
本申请实施例提供的虚拟机放置方法,根据梯度下降函数,对各种群内的各粒子进行位置更新和速度更新,因此,具有提高算法的收敛速度的优点,从而可以保证保证种群内的各粒子的位置可以快速收敛。此外,根据更新后的各粒子的位置和速度以及梯度下降函数,再次对各种群内的各粒子进行位置更新和速度更新,直至各种群内的最优解趋于稳定。可以保证各种群训练完毕,保证各种群内粒子位置达到最优。
结合第一方面第二实施方式,在第一方面第五实施方式中,根据各种群内的最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识,包括:
根据各种群内的最优解确定种群间的全局最优解,并确定各粒子对应的历史最优解,历史最优解表征各虚拟机在历史位置时,各物理机的总能耗最小;
根据全局最优解以及各粒子对应的历史最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
本申请实施例提供的虚拟机放置方法,根据各种群内的最优解确定种群间的全局最优解,并确定确定各粒子对应的历史最优解,保证了确定的全局最优解以及各粒子对应的历史最优解的准确性。然后,根据全局最优解以及各粒子对应的历史最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。可以保证得到各虚拟机应放置的物理机的标识的准确性,且保证物理机的总能耗最小。
结合第一方面第五实施方式,在第一方面第六实施方式中,根据全局最优解以及各粒子对应的历史最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识,包括:
针对各粒子,根据全局最优解,更新各粒子的位置;
根据各粒子更新后的位置,计算更新后的位置对应的各物理机的总能耗;
若更新后的位置对应的各物理机的总能耗小于历史最优解对应的各物理机的总能耗;
则根据更新后的位置更新历史最优解;
根据各更新后的历史最优解,更新全部粒子对应的全局最优解;
如此循环,直至粒子更新完毕,迭代结束,根据全部粒子对应的全局最优解,得到各虚拟机应放置的物理机的标识。
本申请实施例提供的虚拟机放置方法,针对各粒子,根据全局最优解,更新各粒子的位置。然后在维护各粒子历史最优解以及全局最优解的同时更新各粒子的位置。直至粒子更新完毕,迭代结束,根据全部粒子对应的全局最优解,得到各虚拟机应放置的物理机的标识。上述方法中,由于种群间的粒子在种群内部相互独立迭代,因此种群间具有多样性,能够避免算法陷入局部最优解。从而保证得到各虚拟机应放置的物理机的标识的准确性,且保证物理机的总能耗最小。
根据第二方面,本发明实施例还提供了一种虚拟机放置装置,包括:
第一获取模块,用于获取至少一个虚拟机以及用于放置各虚拟机的至少一个物理机。
第二获取模块,用于获取至少两个粒子;至少两个粒子属于至少两个种群,各种群中包括至少一个粒子;各粒子包括位置和速度两个矢量;位置用于表征各虚拟机放置的物理机的标识;速度用于表征各虚拟机每次调整位置的幅度。
初始化模块,用于根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化。
更新模块,用于根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
本申请实施例提供的虚拟机放置装置,获取至少一个虚拟机以及用于放置各虚拟机的至少一个物理,并获取至少两个粒子,然后根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化,从而保证各个粒子对应的位置能够满足预设要求,其中,预设要求可以保证物理机的实际请求满足虚拟机的请求资源大小,进一步保证各个粒子有意义。根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。减少了各个粒子更新的次数且保证了更新后的粒子满足预设要求,且可以保证最终确定的各虚拟机应放置的物理机的总能耗最小。提高了确定各虚拟机放置位置的效率。
根据第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中的虚拟机放置方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行第一方面或者第一方面的任意一种实施方式中的虚拟机放置方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是应用本发明实施例提供的虚拟机放置方法的流程图;
图2是应用本发明另一实施例提供的虚拟机放置方法的流程图;
图3是应用本发明另一实施例提供的虚拟机放置方法中最佳适应法初始化种群算法的示意图;
图4是应用本发明另一实施例提供的虚拟机放置方法的流程图;
图5是应用本发明另一实施例提供的虚拟机放置方法中种群间粒子位置以及速度更新算法的示意图;
图6是应用本发明实施例提供的虚拟机放置装置的功能模块图;
图7是应用本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请实施例提供的虚拟机放置的方法,其执行主体可以是虚拟机放置的装置,该虚拟机放置的装置可以通过软件、硬件或者软硬件结合的方式实现成为电子设备的部分或者全部,其中,该电子设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是电子设备为例来进行说明。
在本申请一个实施例中,如图1所示,提供了一种虚拟机放置方法,以该方法应用与电子设备为例进行说明,包括以下步骤:
S11、获取至少一个虚拟机以及用于放置各虚拟机的至少一个物理机。
具体地,电子设备可以接收其他设备发送的至少一个虚拟机以及用于放置各虚拟机的至少一个物理机。
其中,虚拟机放置策略可以看作可变大小装箱问题,在保证能耗最小的情况下最终实现虚拟机与物理机的映射关系pi=(x1,x2...xn),pi代表第i种放置策略,xj表示在下标位置的虚拟机放置物理机的标识,系列号代表物理机标识。
示例性的,请求虚拟机的数量为n,物理机数量为m。则p1=(31,42...7n),表示第1台虚拟机可以放置在第3台物理机中,第2台虚拟机可以放置在第4台物理机中,......,第n台虚拟机可以放置在第7台物理机中。
需要说明的是,虚拟机请求的过程中,应当满足一定的条件,首先物理机应该满足虚拟机的请求资源大小,包括cpu资源,内存资源以及带宽资源,由公式(1)、(2)、(3)约束可得,此外每个虚拟机有且仅分配至一台物理机中。
CPUi,Meni,BWi分别代表虚拟机请求的cpu,内存,带宽资源,CPUj,Menj,BWj分别代表物理机所拥有的资源。
S12、获取至少两个粒子。
具体地,根据上述获取到的虚拟机以及物理机,电子设备可以随机生成至少两个粒子。其中,至少两个粒子属于至少两个种群,各种群中包括至少一个粒子;各粒子包括位置和速度两个矢量;位置用于表征各虚拟机放置的物理机的标识;速度用于表征各虚拟机每次调整位置的幅度。
示例性的,电子设备可以随机生成k个种群,每个种群s个粒子,其中k和s规模可以与虚拟机的数量和物理机的数量相关,也可以与虚拟机的数量和物理机的数量无关。
各个粒子为二维矢量P=(pi,Vi),其中,pi代表当前每个虚拟机放置位置以及Vi表示粒子在更新每个虚拟机放置位置时的当前速度,示例性的,pi=(x1,x2...xn),Vi=(v1,v2...vn)。
S13、根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化。
具体地,由于在虚拟机放置过程中物理机应该满足虚拟机的请求资源大小,包括cpu资源,内存资源以及带宽资源,否则虚拟机的放置位置将会无意义,因此,电子设备需要根据各虚拟机的请求资源以及各物理机的实际资源,对各个粒子的位置和速度进行初始化。
示例性的,针对第一个粒子,电子设备可以根据虚拟机的请求资源对虚拟机进行请求资源从大到小的排序,然后对物理机按照标识顺序进行排序,首先从物理机中选择第一个实际资源能够满足虚拟机最大请求资源的第一物理机,并确定请求资源最大的虚拟机放置在第一物理机中;然后,从物理机中选择第一个实际资源能够满足虚拟机第二请求资源的第二物理机,并确定请求资源最大的虚拟机放置在第二物理机中,依次类推,完成对第一个粒子的位置进行初始化,然后根据粒子的位置对粒子的速度进行初始化。
针对第二个粒子,电子设备可以根据虚拟机的请求资源对虚拟机进行请求资源从大到小的排序,然后对物理机按照标识顺序进行排序。首先从物理机中选择第二个实际资源能够满足虚拟机最大请求资源的第一物理机,并确定请求资源最大的虚拟机放置在第一物理机中;然后,从物理机中选择第二个实际资源能够满足虚拟机第二请求资源的第二物理机,并确定请求资源最大的虚拟机放置在第二物理机中,依次类推,完成对第二个粒子的位置进行初始化,然后根据粒子的位置对粒子的速度进行初始化。
依次类推,完成对所有粒子的初始化,从而可以保证各个粒子对应的位置能够满足预设要求,其中,预设要求可以保证物理机的实际请求满足虚拟机的请求资源大小。
S14、根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
具体地,电子设备根据初始化的各个粒子对应的位置,计算各个粒子对应的物理机的总能耗,然后根据物理机的总能耗,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
关于该步骤下述进行具体介绍。
本申请实施例提供的虚拟机放置方法,获取至少一个虚拟机以及用于放置各虚拟机的至少一个物理,并获取至少两个粒子,然后根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化,从而保证各个粒子对应的位置能够满足预设要求,其中,预设要求可以保证物理机的实际请求满足虚拟机的请求资源大小,进一步保证各个粒子有意义。根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。减少了各个粒子更新的次数且保证了更新后的粒子满足预设要求,且可以保证最终确定的各虚拟机应放置的物理机的总能耗最小。提高了确定各虚拟机放置位置的效率。
在本申请一个可选的实施例中,如图2所示,上述S13中的“根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化”,可以包括以下步骤:
S21、获取各物理机的实际资源,并对各物理机的实际资源进行排序。
具体地,电子设备可以根据各个物理机的当前运行情况以及当前占用的内存量等信息,计算得到物理机的实际资源。然后按照各个物理机的实际资源由小到大进行排序或者由小到大的排序。
S22、获取各虚拟机的请求资源,根据各虚拟机的请求资源以及各物理机的实际资源的排序,依次将各虚拟机放置在实际资源满足虚拟机的请求资源的物理机中,对各粒子的位置进行初始化。
具体地,电子设备根据各个物理机实际资源的排序以及各个虚拟机的请求资源,采用预设的算法对各个粒子的位置进行初始化,确定各个物理机能够放置的虚拟机,从而实现对各个粒子对应的位置的更新。其中,预设的算法可以是最佳适应法,也可以是其他算法。
具体地,针对第一个粒子,电子设备可以根据物理机的实际资源对物理机进行实际资源从小到大的排序,然后对虚拟机进行排序,首先从虚拟机中选择第一个请求资源小于第一个物理机的虚拟机,并确定请求资源小于第一个物理机的虚拟机放置在第一物理机中;然后,从虚拟机中选择第一个请求资源小于第二个物理机的虚拟机,并确定第一个请求资源小于第二个物理机的虚拟机放置在第二物理机中,依次类推,完成对第一个粒子的位置进行初始化。
针对第二个粒子,电子设备子设备可以根据物理机的实际资源对物理机进行实际资源从小到大的排序,然后对虚拟机进行排序,首先从虚拟机中选择第二个请求资源小于第一个物理机的虚拟机,并确定第二个请求资源小于第一个物理机的虚拟机放置在第一物理机中;然后,从虚拟机中选择第二个请求资源小于第二个物理机的虚拟机,并确定第二个请求资源小于第二个物理机的虚拟机放置在第二物理机中,依次类推,完成对第二个粒子的位置进行初始化。
依次类推,完成对所有粒子的位置的初始化,从而可以保证各个粒子对应的位置能够满足预设要求,其中,预设要求可以保证物理机的实际请求满足虚拟机的请求资源大小。
示例性的,如图3所示,为电子设备利用最佳适应法对各个种群中的粒子进行初始化的算法。
S23、根据初始化后的各粒子的位置,对各粒子的速度进行初始化。
具体地,电子设备可以在各粒子的位置完成初始化之后,随机对各粒子速度进行初始化。
本申请实施例提供的虚拟机放置方法,获取各物理机的实际资源,并对各物理机的实际资源进行排序。然后获取各虚拟机的请求资源,根据各虚拟机的请求资源以及各物理机的实际资源的排序,依次将各虚拟机放置在实际资源满足虚拟机的请求资源的物理机中,对各粒子的位置进行初始化。从而保证初始化后的各个粒子对应的位置能够满足预设要求,其中,预设要求可以保证物理机的实际请求满足虚拟机的请求资源大小,进一步保证各个粒子有意义。然后根据初始化后的各粒子的位置,对各粒子的速度进行初始化。从而减少了各个粒子更新的次数且保证了更新后的粒子满足预设要求,且可以保证最终确定的各虚拟机应放置的物理机的总能耗最小。提高了确定各虚拟机放置位置的效率。
在本申请一个可选的实施例中,如图4所示,上述S14中的“根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识”,可以包括以下步骤:
S31、获取初始化的各粒子的位置对应的各物理机的初始总能耗。
具体地,电子设备可以根据各个物理机放置的虚拟机的请求资源以及各个物理机的实际资源,计算放置虚拟机后各个物理机的初始总能耗,也就是当前粒子的初始总能耗。
示例性的,当前粒子的初始总能耗,可以利用如下公式(1)计算得到:
其中,e(ui)表示第i个物理机的能耗,能耗与当前物理机的cpu负载相关。
S32、根据各初始总能耗,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定。
具体地,电子设备可以根据计算得到的各个粒子的初始总能耗,从中确定最小初始总能耗。然后根据确定的最小初始总能耗,更新各种群内的各个粒子的位置,直至各种群内的最优解趋于稳定。
具体地,上述步骤S32可以包括如下步骤:
S321、根据各初始总能耗,定义梯度下降函数。
具体地,电子设备可以根据各个粒子对应的初始总能耗,定义梯度下降函数。其中,梯度下降函数可以如下公式(2):
其中,p为粒子位置信息,α为梯度下降的学习率,学习率过快容易导致错过最优解,过慢导致迭代速度过于缓慢,在本申请实施例中根据实验调参得α=0.4,当然α也可以等于其他数值。J(p)为当前粒子的总能耗,为梯度下降方向。
S322、根据梯度下降函数,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定。
具体地,上述S322可以包括如下步骤:
(1)、根据梯度下降函数,对各种群内的各粒子进行位置更新和速度更新。
(2)、根据更新后的各粒子的位置和速度以及梯度下降函数,再次对各种群内的各粒子进行位置更新和速度更新,直至各种群内的最优解趋于稳定。
具体地,电子设备根据上述梯度下降函数,对各种群内的各粒子进行位置更新和速度更新。
示例性的,假设第1台虚拟机当前放置在第3台物理机中,但是经过位置更新后第1台虚拟机当前放置在第5台物理机中。假设第1台虚拟机对应的当前更新速度为3,但是经过速度更新后第1台虚拟机的更新速度为5。
然后,电子设备再次计算更新后的各个粒子对应的物理机的总能耗,根据各个粒子对应的物理机的总能耗以及梯度下降函数再次更新各个粒子的位置和速度,直至各种群内的最优解趋于稳定,也就是说,直至各种群中存在一个位置,该位置对应的物理机的总能耗在种群中最小。且每次更新,得到的最优解都是该位置。
S33、根据各种群内的最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
具体地,在直至各种群内的最优解趋于稳定后,电子设备可以获取各粒子对应的历史最优解以及当前全局最优解,然后电子设备根据各粒子的历史最优解以及当前全局最优解,对种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。其中,历史最优解表征各虚拟机在历史位置时,各物理机的总能耗最小。
具体地,上述步骤S33可以包括如下步骤:
S331、根据各种群内的最优解确定种群间的全局最优解,并确定各粒子对应的历史最优解。
其中,历史最优解表征各虚拟机在历史位置时,各物理机的总能耗最小。
具体地,电子设备可以根据各种群内的最优解确定种群间的全局最优解,并根据各粒子的更新记录确定各粒子对应的历史最优解以及历史最优解对应物理机的总能耗。
需要说明的是,各粒子在每次更新之前都会记录当前的位置以及当前位置对应的物理机的总能耗。
S332、根据全局最优解以及各粒子对应的历史最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
具体地,上述S332可以包括如下步骤:
(1)、针对各粒子,根据全局最优解,更新各粒子的位置。
(2)、根据更新后的位置,计算更新后的位置对应的各物理机的总能耗。
(3)、若更新后的位置对应的各物理机的总能耗小于历史最优解对应的各物理机的总能耗。
(4)、则根据更新后的位置更新历史最优解。
(5)、根据各更新后的历史最优解,更新全部粒子对应的全局最优解。
(6)如此循环,直至粒子更新完毕,迭代结束,根据全部粒子对应的全局最优解,得到各虚拟机应放置的物理机的标识。
具体地,针对各粒子,电子设备可以在维护各个粒子自身历史最优解的同时朝着全局最优解更新各粒子的位置。根各粒子更新后的位置,基于上述公式(1)计算更新后的位置对应的物理机的总能耗。
然后,电子设备将更新后的位置对应的物理机的总能耗与历史最优解对应的各物理机的总能耗进行对比,若更新后的位置对应的各物理机的总能耗小于历史最优解对应的各物理机的总能耗,则将更新后的位置覆盖历史最优解对应的位置;若更新后的位置对应的各物理机的总能耗不小于历史最优解对应的各物理机的总能耗,则将继续维护历史最优解。
根据更新后的各粒子的历史最优解确定当前全局最优解。如此循环,直至若干次后,全部粒子对应的全局最优解稳定,确定该全局最优解对应的位置为即为各虚拟机需要放置的物理机中的位置,从而得到各虚拟机应放置的物理机的标识。
其中,需要说明的是每个粒子更新速度以及位置的方法如下:
pi=pi+Vi (5)
其中,K为收敛因子,与为学习因子,与可以取相同的值,也可以取不同的值,示例性的,与取值都为2,也可以取其他值,本申请实施例对与的取值不做具体限定。Gb为全局最优解,rand()为随机函数。pbesti为粒子i对应的历史最优解。
示例性的,种群间粒子位置以及速度更新算法可以如下图5所示。
本申请实施例提供的虚拟机放置方法,根据各初始总能耗,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定。从而可以保证各种群内最优解的准确性,此外,根据各种群内的最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。由于种群间的粒子在种群内部相互独立迭代,因此种群间具有多样性,能够避免算法陷入局部最优解,保证了得到的各虚拟机应放置的物理机的标识的准确性,且保证根据得到的各虚拟机应放置的物理机的标识放置各虚拟机能耗最小。此外,上述方法,采用梯度下降的方法进行迭代,梯度下降能够朝着速度最快的方向进行迭代,因此,具有提高算法的收敛速度的优点。可以保证各种群训练完毕,保证各种群内粒子位置达到最优。
然后,根据各种群内的最优解确定种群间的全局最优解,并确定确定各粒子对应的历史最优解,保证了确定的全局最优解以及各粒子对应的历史最优解的准确性。然后,根据全局最优解以及各粒子对应的历史最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。可以保证得到各虚拟机应放置的物理机的标识的准确性,且保证物理机的总能耗最小。具体地,针对各粒子,根据全局最优解,更新各粒子的位置。然后在维护各粒子历史最优解以及全局最优解的同时更新各粒子的位置。直至粒子更新完毕,迭代结束,根据全部粒子对应的全局最优解,得到各虚拟机应放置的物理机的标识。上述方法中,由于种群间的粒子在种群内部相互独立迭代,因此种群间具有多样性,能够避免算法陷入局部最优解。从而保证得到各虚拟机应放置的物理机的标识的准确性,且保证物理机的总能耗最小。
应该理解的是,虽然图1、图2、图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图2、图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
如图6所示,本实施例提供一种虚拟机放置装置,该装置包括:
第一获取模块41,用于获取至少一个虚拟机以及用于放置各虚拟机的至少一个物理机。
第二获取模块42,用于获取至少两个粒子;至少两个粒子属于至少两个种群,各种群中包括至少一个粒子;各粒子包括位置和速度两个矢量;位置用于表征各虚拟机放置的物理机的标识;速度用于表征各虚拟机每次调整位置的幅度。
初始化模块43,用于根据各虚拟机的请求资源以及各物理机的实际资源,对各粒子的位置和速度进行初始化。
更新模块44,用于根据初始化的各粒子,对初始化后的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
在本申请一个实施例中,上述初始化模块43,具体用于获取各物理机的实际资源,并对各物理机的实际资源进行排序;获取各虚拟机的请求资源,根据各虚拟机的请求资源以及各物理机的实际资源的排序,依次将各虚拟机放置在实际资源满足虚拟机的请求资源的物理机中,对各粒子的位置进行初始化;根据初始化后的各粒子的位置,对各粒子的速度进行初始化。
在本申请一个实施例中,上述更新模块44,具体用于获取初始化的各粒子的位置对应的各物理机的初始总能耗;根据各初始总能耗,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定;根据各种群内的最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
在本申请一个实施例中,上述更新模块44,具体用于根据各初始总能耗,定义梯度下降函数;根据梯度下降函数,对各种群内的各粒子进行位置更新,直至各种群内的最优解趋于稳定。
本申请一个实施例中,上述更新模块44,具体用于根据梯度下降函数,对各种群内的各粒子进行位置更新和速度更新;根据更新后的各粒子的位置和速度以及梯度下降函数,再次对各种群内的各粒子进行位置更新和速度更新,直至各种群内的最优解趋于稳定。
本申请一个实施例中,上述更新模块44,具体用于根据各种群内的最优解确定种群间的全局最优解,并确定各粒子对应的历史最优解,历史最优解表征各虚拟机在历史位置时,各物理机的总能耗最小;根据全局最优解以及各粒子对应的历史最优解,对各种群间的各粒子进行位置更新,得到各虚拟机应放置的物理机的标识。
本申请一个实施例中,上述更新模块44,具体用于针对各粒子,根据全局最优解,更新各粒子的位置;根据各粒子更新后的位置,计算更新后的位置对应的各物理机的总能耗;若更新后的位置对应的各物理机的总能耗小于历史最优解对应的各物理机的总能耗;则根据更新后的位置更新历史最优解;根据各更新后的历史最优解,更新全部粒子对应的全局最优解;如此循环,直至粒子更新完毕,迭代结束,根据全部粒子对应的全局最优解,得到各虚拟机应放置的物理机的标识。
关于虚拟机放置装置的具体限定以及有益效果可以参见上文中对于虚拟机放置方法的限定,在此不再赘述。上述虚拟机放置装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明实施例还提供一种电子设备,具有上述图6所示的虚拟机放置装置。
如图7所示,图7是本发明可选实施例提供的一种电子设备的结构示意图,如图7所示,该电子设备可以包括:至少一个处理器71,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口73,存储器74,至少一个通信总线72。其中,通信总线72用于实现这些组件之间的连接通信。其中,通信接口73可以包括显示屏(Display)、键盘(Keyboard),可选通信接口73还可以包括标准的有线接口、无线接口。存储器74可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器74可选的还可以是至少一个位于远离前述处理器71的存储装置。其中处理器71可以结合图6所描述的装置,存储器74中存储应用程序,且处理器71调用存储器74中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线72可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线72可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器74可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器74还可以包括上述种类的存储器的组合。
其中,处理器71可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器71还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器74还用于存储程序指令。处理器71可以调用程序指令,实现如本申请图1、图2以及图4实施例中所示的虚拟机放置方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的虚拟机放置方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种虚拟机放置方法,其特征在于,所述方法包括:
获取至少一个虚拟机以及用于放置各所述虚拟机的至少一个物理机;
获取至少两个粒子;所述至少两个粒子属于至少两个种群,各所述种群中包括至少一个所述粒子;各所述粒子包括位置和速度两个矢量;所述位置用于表征各所述虚拟机放置的所述物理机的标识;所述速度用于表征各所述虚拟机每次调整位置的幅度;
根据各所述虚拟机的请求资源以及各所述物理机的实际资源,对各所述粒子的位置和速度进行初始化;
根据初始化的各所述粒子,对初始化后的各所述粒子进行位置更新,得到各所述虚拟机应放置的物理机的标识。
2.根据权利要求1所述的方法,其特征在于,所述根据各所述虚拟机的请求资源以及各所述物理机的实际资源,对各所述粒子位置和速度进行初始化,包括:
获取各所述物理机的实际资源,并对各所述物理机的实际资源进行排序;
获取各所述虚拟机的请求资源,根据各所述虚拟机的请求资源以及各所述物理机的实际资源的排序,依次将各所述虚拟机放置在实际资源满足所述虚拟机的请求资源的物理机中,对各所述粒子的位置进行初始化;
根据初始化后的各所述粒子的位置,对各所述粒子的速度进行初始化。
3.根据权利要求1所述的方法,其特征在于,所述根据初始化的各所述粒子,对初始化后的各所述粒子进行位置更新,得到各所述虚拟机应放置的物理机的标识,包括:
获取初始化的各所述粒子的位置对应的各所述物理机的初始总能耗;
根据各所述初始总能耗,对各所述种群内的各所述粒子进行位置更新,直至各所述种群内的最优解趋于稳定;
根据各所述种群内的最优解,对各所述种群间的各所述粒子进行位置更新,得到各所述虚拟机应放置的物理机的标识。
4.根据权利要求3所述的方法,其特征在于,根据各所述初始总能耗,对各所述种群内的各所述粒子进行位置更新,直至各所述种群内的最优解趋于稳定,包括:
根据各所述初始总能耗,定义梯度下降函数;
根据所述梯度下降函数,对各所述种群内的各所述粒子进行位置更新,直至各所述种群内的最优解趋于稳定。
5.根据权利要求4所述的方法,其特征在于,所述根据所述梯度下降函数,对各所述种群内的各所述粒子进行位置更新,直至各所述种群内的最优解趋于稳定,包括:
根据所述梯度下降函数,对各所述种群内的各所述粒子进行位置更新和速度更新;
根据更新后的各所述粒子的位置和速度以及所述梯度下降函数,再次对各所述种群内的各所述粒子进行位置更新和速度更新,直至各所述种群内的最优解趋于稳定。
6.根据权利要求3所述的方法,其特征在于,所述根据各所述种群内的最优解,对各所述种群间的各所述粒子进行位置更新,得到各所述虚拟机应放置的物理机的标识,包括:
根据各所述种群内的最优解确定种群间的全局最优解,并确定各所述粒子对应的历史最优解,所述历史最优解表征各所述虚拟机在历史位置时,各所述物理机的总能耗最小;
根据所述全局最优解以及各所述粒子对应的历史最优解,对各所述种群间的各所述粒子进行位置更新,得到各所述虚拟机应放置的物理机的标识。
7.根据权利要求6所述的方法,其特征在于,所述根据所述全局最优解以及各所述粒子对应的历史最优解,对各所述种群间的各所述粒子进行位置更新,得到各所述虚拟机应放置的物理机的标识,包括:
针对各所述粒子,根据所述全局最优解,更新各所述粒子的位置;
根据各所述粒子更新后的位置,计算更新后的位置对应的各所述物理机的总能耗;
若更新后的位置对应的各所述物理机的总能耗小于所述历史最优解对应的各所述物理机的总能耗;
则根据更新后的位置更新所述历史最优解;
根据各所述更新后的历史最优解,更新所述全部所述粒子对应的全局最优解;
如此循环,直至所述粒子更新完毕,迭代结束,根据全部所述粒子对应的全局最优解,得到各所述虚拟机应放置的物理机的标识。
8.一种虚拟机放置装置,其特征在于,所述装置包括:
第一获取模块,用于获取至少一个虚拟机以及用于放置各所述虚拟机的至少一个物理机;
第二获取模块,用于获取至少两个粒子;所述至少两个粒子属于至少两个种群,各所述种群中包括至少一个所述粒子;各所述粒子包括位置和速度两个矢量;所述位置用于表征各所述虚拟机放置的所述物理机的标识;所述速度用于表征各所述虚拟机每次调整位置的幅度;
初始化模块,用于根据各所述虚拟机的请求资源以及各所述物理机的实际资源,对各所述粒子的位置和速度进行初始化;
更新模块,用于根据初始化的各所述粒子,对初始化后的各所述粒子进行位置更新,得到各所述虚拟机应放置的物理机的标识。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的虚拟机放置方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的虚拟机放置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111608575.8A CN114443217A (zh) | 2021-12-24 | 2021-12-24 | 虚拟机放置方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111608575.8A CN114443217A (zh) | 2021-12-24 | 2021-12-24 | 虚拟机放置方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443217A true CN114443217A (zh) | 2022-05-06 |
Family
ID=81364777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111608575.8A Pending CN114443217A (zh) | 2021-12-24 | 2021-12-24 | 虚拟机放置方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443217A (zh) |
-
2021
- 2021-12-24 CN CN202111608575.8A patent/CN114443217A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111240701B (zh) | 一种端-边-云协同计算的任务卸载优化方法 | |
CN107911478B (zh) | 基于化学反应优化算法的多用户计算卸载方法及装置 | |
CN110418353B (zh) | 一种基于粒子群算法的边缘计算服务器放置方法 | |
WO2022063247A1 (zh) | 神经网络结构搜索方法及装置 | |
CN111399933B (zh) | 一种边缘-云混合计算环境下的dnn任务卸载方法及终端 | |
CN109710374A (zh) | 移动边缘计算环境下最小化任务卸载费用的vm迁移策略 | |
CN108304256B (zh) | 一种边缘计算中低开销的任务调度方法及装置 | |
CN112073452B (zh) | 一种能源有效和资源受限的移动边缘计算任务分配方法 | |
CN109819032B (zh) | 一种联合考虑基站选择与计算迁移的云机器人任务分配方法 | |
CN110213327A (zh) | 一种基于边缘计算的资源调度方法、装置及系统 | |
CN112272102B (zh) | 边缘网络业务卸载和调度方法及装置 | |
CN112492032B (zh) | 一种移动边缘环境下的工作流协作调度方法 | |
CN114585006B (zh) | 基于深度学习的边缘计算任务卸载和资源分配方法 | |
CN113835878A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN112256413A (zh) | 基于物联网的边缘计算任务的调度方法和装置 | |
CN112083967A (zh) | 一种云边端计算任务的卸载方法、计算机设备及存储介质 | |
CN110167031B (zh) | 一种面向集中式基站的资源分配方法、设备及存储介质 | |
CN113132471B (zh) | 云服务预算优化调度方法、装置、设备和存储介质 | |
CN110347477B (zh) | 一种云环境下服务自适应部署方法和装置 | |
CN116932086A (zh) | 一种基于哈里斯鹰算法的移动边缘计算卸载方法及系统 | |
CN114443217A (zh) | 虚拟机放置方法、装置、电子设备以及存储介质 | |
CN111124439A (zh) | 一种云边协同的智能动态卸载算法 | |
CN114356585A (zh) | 一种移动边缘计算卸载的优化方法、装置及计算机设备 | |
JP2020137073A (ja) | アプリケーション配置装置及びアプリケーション配置プログラム | |
CN114116052A (zh) | 一种边缘计算方法及装置 |
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 |