CN110058924B - 一种多目标优化的容器调度方法 - Google Patents
一种多目标优化的容器调度方法 Download PDFInfo
- Publication number
- CN110058924B CN110058924B CN201910327503.2A CN201910327503A CN110058924B CN 110058924 B CN110058924 B CN 110058924B CN 201910327503 A CN201910327503 A CN 201910327503A CN 110058924 B CN110058924 B CN 110058924B
- Authority
- CN
- China
- Prior art keywords
- representing
- fitness
- particle
- physical machine
- current
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- 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]
-
- 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)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的目的是:为容器部署提供一个最佳的调度方案,使得每个容器都能部署到最合适的服务器上,从而在部署完成之后,在容器的拉取时间、服务的通信时间、机器的负载均衡以及机器的能耗之间达到一个最优的状态。为了达到上述目的,本发明的技术方案是提供了一种多目标优化的容器调度方法。本发明提出的改进的粒子群算法与Docker Swarm中的三个算法进行比较,可以得出该方法得到的部署方案的适应度是最低的,即该方法能比其他三个算法找到更好的调度解决方案,尤其是当机器资源远大于容器实例的要求时。
Description
技术领域
本发明涉及一种容器调度方法,属于云计算以及容器的调度技术领域。
背景技术
在容器技术兴起之前,虚拟机技术一直作为云计算领域中提供资源的一种方式,它主要能够将硬件资源(包括CPU,内存,网络以及磁盘等)抽象为虚拟机,为多个用户提供服务。将一组虚拟机放置到一批物理机上,要求虚拟机的资源上限不能超过物理机上的资源容量,同时,不同的放置策略会对系统的性能、可靠性以及能耗都会产生不同的影响。关于虚拟机放置问题的研究已经进行了很多年,下面简单介绍一下该领域的一些研究现状。
虚拟机放置问题是一个NP-Hard问题,即无法在多项式时间找到最优解。Chaisiri等提出了基于随机整数规划的方法来解决最低成本的虚拟机放置的问题。Haibo等提出了遗传算法能够在保证性能的情况下尽可能地降低能耗。Jing等也采用了遗传算法来解决虚拟机放置问题下的基于总资源使用、功耗和散热成本的多目标优化问题。如果将虚拟机放置问题看成装箱问题,Baker等人早在1985年就提出了用降序首次适应算法(First FitDecreasing)来解决装箱问题。Gao等人提出了基于虚拟机放置问题的多目标蚁群算法。目标是有效地获得一组非支配解决方案(帕雷托集),同时最大限度地减少总资源浪费和功耗。Yan等人着重于提高云中心资源利用效率,提出了离散型的粒子群优化算法以最大限度地减少虚拟机放置中活动物理机的数量。Feller等人根据负载提出了基于蚁群的优化(ACO)算法,目的是尽可能地降低能耗。Abdessamia等人提出了一种基于粒子群优化(PSO)的解决方案,用于异构数据中心的虚拟机放置,目标是尽可能地降低资源消耗。Xu等人给出了解决关于云平台下集群机器负载平衡的优化算法。
对于容器调度的研究则还处于一个起步的阶段。Zhang等使用了线性规划模型来解决容器调度的问题,该文章提出了一个多目标优化问题,优化容器镜像拉取时间,客户端与服务器的网络通信距离,以及物理机的能耗三个目标。Kaewkasi等提出了一种基于蚁群算法的容器调度算法,主要目标是平衡各物理机之间的资源利用,进而保证应用的性能。Sureshkumar等提出了一种能耗感知模型,用于平衡容器的负载与任务扩展之间的平衡,尽可能地保证每台机器上使用的容器数量多。Liu等提出了一个基于多目标优化的容器调度算法,该算法考虑了五个关键因素:每台机器的CPU利用率,内存利用率,容器镜像在网络中的传输时间,容器和节点之间的关联,容器的群集。Pande Sk,Panda SK和Das S三人提出了一种面向客户的异构多云环境的任务调度算法。该算法的基本思想是对每一个云分配一个适当的任务,它占用最少的执行时间。然后通过在每个云的空闲插槽中插入尽可能多的任务来平衡完工时间。Guerrero等人题出了一种非主导的排序遗传算法-II(Non-dominatedSorting Genetic Algorithm-II)来优化容器分配和弹性管理。该优化算法优化了系统配置,系统性能,系统故障和网络开销等四个目标。
容器的管理和调度已经成为了现如今的热点研究问题。工业界与学术界也已经开始着手研究更好的容器调度和编排系统。容器的调度和任务的调度在一定程度上是不同的,Hadoop下的Yarn,主要完成计算任务的调度,面向的有明确结束时间的计算任务的调度。而容器调度更倾向于容器的部署,面向的是长期的任务的调度。Docker官方出的编排工具Docker Swarm,提供Docker容器集群服务,它可以将多个Docker主机封装为单个大型的虚拟Docker主机,快速打造一套容器云平台。同时Docker Swarm中内置了三种基本的调度算法Spead(尽可能使每台机器的负载接近),BinPack(尽可能地使用最少的机器数量)和Random(随机选择可用的机器调度)。Kubernetes也是用于自动部署、扩展和管理容器化(Containerized)应用程序的开源系统。由Google内部使用的系统Borg开源出来。其主要设计目标是使复杂的分布式系统易于部署和管理。它将调度分为两个阶段,第一阶段是找到可以使用的所有可能的机器。第二阶段是根据某些目标将容器分配到最合适的机器。加州大学伯克利分校提出了Mesos,并将它捐献成为Apache Software Foundation的下一个项目。Mesos将CPU、内存、存储和其他计算资源从机器中抽象出来,它能够在整个数据中心和云环境中提供资源管理和调度。
在过去十年间,云计算主要形成了三种服务模式,基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)。虚拟化是实现云计算的关键技术,它可以将异构服务器、计算机的硬件资源统一抽象成计算资源。随着近些年容器技术的兴起,特别是Docker的飞速发展和普及,以及相关社区的活跃,容器技术成为即虚拟机技术之后,被大家广泛认可接受的硬件资源的共享方式。容器与虚拟机都能共享物理硬件资源,但两者还是存在一些区别的,主要在于容器存在于操作系统之上以及支持各类库的分享,这使得它比传统的虚拟机更轻量级,以及消耗更少的资源。图1给出了基于这两种虚拟化技术的基础架构比较,多个容器实例可以在同一台机器上运行,并与其他容器实例共享操作系统,每个容器都是在用户空间中作为独立的进程运行。容器所占用的空间往往比虚拟机要少且容器的启动速度要比虚拟机的启动速度快很多。这些特点使得容器解决的核心问题是应用开发、测试和部署。容器可以视为软件供应链的集装箱,能够把应用所需要的运行环境、缓存环境、数据库环境都封装起来。容器的使用有利于将大型应用程序体系结构迁移到微服务架构体系。微服务架构是一种架构风格,系统中的各个微服务可被独立部署,同时这些微服务之间是松耦合的。每个微服务仅负责完成一项简单的业务逻辑。相比于传统的虚拟机调度,基于容器的调度不仅需要考虑资源的利用,负载的均衡,还要考虑到部署之后的应用的性能。
本发明中的容器调度问题可以看作是将一批容器部署到一组服务器上,具体的容器实例部署在哪台机器上是根据一定的调度策略来决定的,容器的调度策略会间接地影响了平台的性能、平台的可靠性和平台的资源消耗。
发明内容
本发明的目的是:为容器部署提供一个最佳的调度方案,使得每个容器都能部署到最合适的服务器上,从而在部署完成之后,在容器的拉取时间、服务的通信时间、机器的负载均衡以及机器的能耗之间达到一个最优的状态。
为了达到上述目的,本发明的技术方案是提供了一种多目标优化的容器调度方法,其特征在于,包括以下步骤:
S101、用户提交实例部署请求,包含实例对以及实例的个数m。
S102、调度器收到部署请求,根据改进的粒子群算法生成最佳部署方案,其中:
改进的粒子群算法包括以下步骤:
S201、初始化粒子群,针对每个粒子分别生成一个可行解,将可行解作为粒子的初始化的设置,然后分别计算每个粒子的最佳适应度,其中最大的最佳适应度为全局最佳适应度;
S202、更新迭代次数,判断迭代次数是否到达给定的值,若达到给定的值,则跳转至步骤S215,若未达到给定的迭代次数,进入步骤S203;
S203、遍历粒子群中每个粒子,若已遍历完,则返回步骤S202,若未遍历完,则进入步骤S204;。
S204、根据粒子速度的更新公式更新当前粒子的速度:
第k个粒子在第t次迭代时的速度分别定义为 用n bit的矢量来表示,n表示物理机的数量:/> 表示/>的第n个比特位,若第n个物理机上所部署的实例需要重新调度,那么/>设置为0,如果第n个物理机上所有的实例不需要重新调度,那么/>设置为1,则有,第k个粒子在第t次迭代时的速度/>为:
式中,!为减法操作符,如果两个位置的对应比特是相同的,该比特位返回的结果是1,否则,返回结果0;为加法操作符,对应比特位相加;/> 分别为三个惯性系数:
式中,表示第k个粒子在第t次迭代时的位置;/>表示在第t次迭代中最佳适应度的粒子的位置;/>表示在t次迭代包括t次迭代中最佳适应度的粒子的位置;F(·)表示适应度计算公式;
S205、使当前粒子的速度中的比特位的值有一定的概率发生变异,该比特位的值有可能从1变成0,也有可能从0变成1,也有可能保持不变,则有:M(·)表示变异操作符;
S206、是否遍历完当前粒子的所有比特位,若是,则进入步骤209,若未遍历完当前粒子的所有比特位,则进入步骤S207;
S207、判断当前比特位是否为0,若是,则进入步骤S208,若不是,则返回步骤S206;
S208、将当前比特位对应物理机上所有实例放入重调度队列;
S209、根据粒子位置的更新公式更新当前粒子位置,第k个粒子在第t+1次迭代时的位置定义为则有:
式中,表示乘法操作符;
S210、使用多目标优化的再调度算法重新调度重调度队列中的所有实例;
S211、计算当前部署结果的适应度;
S212、如果步骤211计算得到的适应度小于等于当前粒子的最佳适应度,则进入步骤213,否则进入步骤214;
S213、将当前粒子的最佳适应度更新为步骤211计算得到的适应度;
S214、将全局最佳适应度更新为所有粒子的最佳适应度的最小值;
S215、返回全局最佳适应度与对应的最佳部署方案;
S103、根据生成的最佳部署方案,调度器去镜像仓库拉取对应的容器镜像到所对应的物理机上;
S104、将容器镜像运行在物理机上。
优选地,步骤S201中,针对每个所述粒子分别利用随机调度算法生成一个所述可行解。
优选地,适应度的计算公式为:
式中,F表示适应度;w1、w2、w3、w4表示各个优化目标的所占权重;f1表示拉取成本;minf1表示最小拉取成本;maxf1表示最大拉取成本;f2表示通信成本;minf2表示最小通信成本;maxf2表示最大通信成本;f3表示负载均衡;minf3表示最小负载均衡;maxf3表示最大负载均衡;f4表示能耗;minf4表示最小能耗;maxf4表示最大能耗。
优选地,所述拉取成本f1的计算公式为:
式中,imagej表示第j个实例对应的镜像的大小;alloc(instj)表示第j个实例所被分配的物理机的ID;表示ID为alloc(instj)的物理机对应的吞吐量;表示ID为alloc(instj)的物理机对应的带宽。
优选地,所述通信成本f2的计算公式为:
式中,TotalDistance表示所有服务之间的通信距离;p表示服务的数量;ServiceAverageDistance(i)表示服务i的平均通信距离, 表示所有的属于服务si的实例,si表示第i个实例对应的服务,insti′、instj′分别表示两个实例,A(insti′)表示实例insti′所有可能的通信距离,/> 表示部署实例insti′、instj′的物理机的网络距离;con(sj)表示服务sj需要通信的服务。
优选地,所述负载均衡f3的计算公式为:
式中,n表示物理机的个数;Balancei表示机器i的负载与平均负载的差值;Ui表示第i个物理机的CPU利用率;AVGU表示所有物理机的平均CPU利用率。
优选地,所述能耗f4的计算公式为:
式中,Poweri表示第i个物理机的能耗;Poweri,Idle、Poweri,Max分别表示在空闲时、完全被利用时的第i个物理机的平均能耗。
优选地,步骤S204中,步骤S201中,多目标优化的再调度算法包括以下步骤:
S301、是否遍历完重调度队列所有实例,若是则结束本方法,若否则进入步骤S302;
S302、初始化适应度为最大值;
S303、初始化最佳物理机的Index为0;
S304、是否遍历完所有物理机,若是,则进入步骤S311,若否,则进入步骤S305;
S305、将当前实例部署到当前物理机上;
S306、计算拉取成本、通信成本、负载均衡成本以及能耗;
S307、根据适应度计算公式计算适应度;
S308、判断当前适应度是否小于等于最小适应度,若是,则进入步骤S309,若不是,则进入步骤S310;
S309、将最小适应度更新为当前适应度,将最佳物理机Index更新为当前适应度对应的物理机;
S310、从当前物理机中移除当前实例,返回步骤S304;
S311、根据Index将该实例部署在适应度最小的物理机上,返回步骤S301。
本发明提出的改进的粒子群算法与Docker Swarm中的三个算法(Spread、Random、Binpack)进行比较,可以得出该方法得到的部署方案的适应度是最低的,即该方法能比其他三个算法找到更好的调度解决方案,尤其是当机器资源远大于容器实例的要求时。增加粒子的数量,可以使得算法得到更好的调度结果,但是运行的时间会更长一些。选择种群大小的时候需要考虑时间成本和更好结果之间的权衡。
附图说明
图1为基于容器的服务部署系统操作过程;
图2为改进的粒子群算法的具体流程图;
图3为多目标优化的再调度算法的具体流程图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明面向的场景是基于容器的微服务的部署,基于该场景本专利中提出了四个优化目标,即拉取成本和通信成本(保证服务质量)、负载平衡(提高系统可靠性)、节能(符合绿色计算的概念)。前面两个优化目标—拉取成本,通信成本是基于容器调度的这种特殊场景提出的,后面的两个优化目标—负载均衡和节能是传统云计算中热门的研究对象。
(1)拉取成本,即将容器镜像从镜像仓库下载到该容器所匹配的物理机的下载时间,低的拉取时间能够保证基于容器的应用的快速部署。
(2)通信成本,由于每个微服务之间都是存在一定的通信关系的,这里所说的通信成本是指两个互相通信的微服务所部署的物理机之间的网络距离。该优化目标可以降低服务的响应时间,保证应用的QoS(服务质量)。
(3)负载均衡,该优化目标可以提高系统的可用性,防止一些由于某些机器负载过高而崩溃的现象发生。
(4)节能,这是云计算研究领域中长期关注的一个研究方向,在保证服务质量的情况下,尽可能地降低能耗,同时这点也符合了绿色计算的理念。
本发明涉及基于多目标优化的容器调度的方法,主要有以下三部分内容:
(1)基于容器的服务部署系统
(2)改进的粒子群算法
(3)多目标优化的再调度算法
本发明的技术核心在于第2部分和第3部分,在此基础上提出基于容器的服务部署系统。第二部分和第三部分提出的方法是服务部署系统中调度器中调度策略的处理核心。其中,第二部分中提出的改进的粒子群算法,对原有的粒子群算法进行了重新编码,同时增加了变异操作,增加了粒子搜寻的范围。主要编码方式如下:
粒子的位置表示,用n-bit的矢量来表示,其中,/>表示第k个粒子在第t次迭代时的位置;/>表示/>的第n个比特位,若第n个物理机上有实例部署,则/>为1,否则/>为0。
粒子的速度表示,用n-bit的矢量来表示,其中,/>表示的第n个比特位,若第n个物理机上所部署的实例需要重新调度,那么/>设置为0,如果第n个物理机上所有的实例不需要重新调度,那么/>设置为1。
减法操作符,用!来表示,如果两个位置的对应比特是相同的,该比特位返回的结果是1,否则,返回结果0。
加法操作符,用来表示,对应比特位相加。
乘法操作符,用来表示,如果对应速度的比特位是1,那么该比特位对应的物理机不需要重新调度,否则,需要重新调度。
变异操作符,用M(·)来表示,速度矢量中的每个比特位都有一定概率(较小的概率)发生变异,即由1变为0,由0变为1。
根据前面重新定义的操作符号,粒子的速度与位置的更新方程如下所示:
式中,分别为三个惯性系数:
式中,表示第k个粒子在第t次迭代时的位置;/>表示在第t次迭代中最佳适应度的粒子的位置;/>表示在t次迭代包括t次迭代中最佳适应度的粒子的位置;F(·)表示适应度计算公式。
第三部分的多目标优化的再调度算法,是改进粒子群算法的一个子算法,主要是对改进粒子群算法中出现的临时重调度列表中的容器实例进行调度。主要思想是为每个容器实例选择适应度最小的机器,也就是最合适的机器进行部署。
以上两个算法都需要对计算拉取成本、通信成本、负载均衡、能耗,以及适应度,下面给出具体计算方法,n为机器的数量,p为服务的数量,m为实例的数量,则有:
拉取成本f1的计算公式为:
式中,imagej表示第j个实例对应的镜像的大小;alloc(instj)表示第j个实例所被分配的物理机的ID;表示ID为alloc(instj)的物理机对应的吞吐量;表示ID为alloc(instj)的物理机对应的带宽。
通信成本f2的计算公式为:
式中,TotalDistance表示所有服务之间的通信距离;p表示服务的数量;ServiceAverageDistance(i)表示服务i的平均通信距离, 表示所有的属于服务si的实例,si表示第i个实例对应的服务,insti′、instj′分别表示两个实例,A(insti′)表示实例insti′所有可能的通信距离,/> 表示部署实例insti′、instj′的物理机的网络距离;con(sj)表示服务sj需要通信的服务。
负载均衡f3的计算公式为:
式中,n表示物理机的个数;Balancei表示机器i的负载与平均负载的差值;Ui表示第i个物理机的CPU利用率;AVGU表示所有物理机的平均CPU利用率。
能耗f4的计算公式为:
式中,Poweri表示第i个物理机的能耗;Poweri,Idle、Poweri,Max分别表示在空闲时、完全被利用时的第i个物理机的平均能耗。
适应度的计算公式为:
式中,F表示适应度;w1、w2、w3、w4表示各个优化目标的所占权重;f1表示拉取成本;minf1表示最小拉取成本;maxf1表示最大拉取成本;f2表示通信成本;minf2表示最小通信成本;maxf2表示最大通信成本;f3表示负载均衡;minf3表示最小负载均衡;maxf3表示最大负载均衡;f4表示能耗;minf4表示最小能耗;maxf4表示最大能耗。
根据以上思想,建立本发明的基于容器的服务部署系统的具体操作步骤如下:
S101、用户提交实例部署请求,包含实例对以及实例的个数m。
S102、调度器收到部署请求,根据改进的粒子群算法生成最佳部署方案,其中:
改进的粒子群算法包括以下步骤:
S201、初始化粒子群,针对每个粒子分别生成一个可行解,将可行解作为粒子的初始化的设置,然后分别计算每个粒子的最佳适应度,其中最大的最佳适应度为全局最佳适应度;
S202、更新迭代次数,判断迭代次数是否到达给定的值,若达到给定的值,则跳转至步骤S215,若未达到给定的迭代次数,进入步骤S203;
S203、遍历粒子群中每个粒子,若已遍历完,则返回步骤S202,若未遍历完,则进入步骤S204;。
S204、根据粒子速度的更新公式更新当前粒子的速度;
S205、使当前粒子的速度中的比特位的值有一定的概率发生变异,该比特位的值有可能从1变成0,也有可能从0变成1,也有可能保持不变;
S206、是否遍历完当前粒子的所有比特位,若是,则进入步骤209,若未遍历完当前粒子的所有比特位,则进入步骤S207;
S207、判断当前比特位是否为0,若是,则进入步骤S208,若不是,则返回步骤S206;
S208、将当前比特位对应物理机上所有实例放入重调度队列;
S209、根据粒子位置的更新公式更新当前粒子位置;
S210、使用多目标优化的再调度算法重新调度重调度队列中的所有实例,多目标优化的再调度算法包括以下步骤:
S301、是否遍历完重调度队列所有实例,若是则结束本方法,若否则进入步骤S302;
S302、初始化适应度为最大值;
S303、初始化最佳物理机的Index为0;
S304、是否遍历完所有物理机,若是,则进入步骤S311,若否,则进入步骤S305;
S305、将当前实例部署到当前物理机上;
S306、计算拉取成本、通信成本、负载均衡成本以及能耗;
S307、根据适应度计算公式计算适应度;
S308、判断当前适应度是否小于等于最小适应度,若是,则进入步骤S309,若不是,则进入步骤S310;
S309、将最小适应度更新为当前适应度,将最佳物理机Index更新为当前适应度对应的物理机;
S310、从当前物理机中移除当前实例,返回步骤S304;
S311、根据Index将该实例部署在适应度最小的物理机上,返回步骤S301;
S211、计算当前部署结果的适应度;
S212、如果步骤211计算得到的适应度小于等于当前粒子的最佳适应度,则进入步骤213,否则进入步骤214;
S213、将当前粒子的最佳适应度更新为步骤211计算得到的适应度;
S214、将全局最佳适应度更新为所有粒子的最佳适应度的最小值;
S215、返回全局最佳适应度与对应的最佳部署方案;
S103、根据生成的最佳部署方案,调度器去镜像仓库拉取对应的容器镜像到所对应的物理机上;
S104、将容器镜像运行在物理机上。
Claims (8)
1.一种多目标优化的容器调度方法,其特征在于,包括以下步骤:
S101、用户提交实例部署请求,包含实例对以及实例的个数m;
S102、调度器收到部署请求,根据改进的粒子群算法生成最佳部署方案,其中:
改进的粒子群算法包括以下步骤:
S201、初始化粒子群,针对每个粒子分别生成一个可行解,将可行解作为粒子的初始化的设置,然后分别计算每个粒子的最佳适应度,其中最大的最佳适应度为全局最佳适应度;
S202、更新迭代次数,判断迭代次数是否到达给定的值,若达到给定的值,则跳转至步骤S215,若未达到给定的迭代次数,进入步骤S203;
S203、遍历粒子群中每个粒子,若已遍历完,则返回步骤S202,若未遍历完,则进入步骤S204;
S204、根据粒子速度的更新公式更新当前粒子的速度:
第k个粒子在第t次迭代时的速度分别定义为用n bit的矢量来表示,n表示物理机的数量:/> 表示/>的第n个比特位,若第n个物理机上所部署的实例需要重新调度,那么/>设置为0,如果第n个物理机上所有的实例不需要重新调度,那么/>设置为1,则有,第k个粒子在第t次迭代时的速度/>为:
式中,为减法操作符,如果两个位置的对应比特是相同的,该比特位返回的结果是1,否则,返回结果0;/>为加法操作符,对应比特位相加;/> 分别为三个惯性系数:
式中,表示第k个粒子在第t次迭代时的位置;/>表示在第t次迭代中最佳适应度的粒子的位置;/>表示在t次迭代包括t次迭代中最佳适应度的粒子的位置;F(·)表示适应度计算公式;
S205、使当前粒子的速度中的比特位的值有一定的概率发生变异,该比特位的值有可能从1变成0,也有可能从0变成1,也有可能保持不变,则有:M(·)表示变异操作符;
S206、是否遍历完当前粒子的所有比特位,若是,则进入步骤209,若未遍历完当前粒子的所有比特位,则进入步骤S207;
S207、判断当前比特位是否为0,若是,则进入步骤S208,若不是,则返回步骤S206;
S208、将当前比特位对应物理机上所有实例放入重调度队列;
S209、根据粒子位置的更新公式更新当前粒子位置,第k个粒子在第t+1次迭代时的位置定义为则有:
式中,表示乘法操作符;
S210、使用多目标优化的再调度算法重新调度重调度队列中的所有实例;
S211、计算当前部署结果的适应度;
S212、如果步骤211计算得到的适应度小于等于当前粒子的最佳适应度,则进入步骤213,否则进入步骤214;
S213、将当前粒子的最佳适应度更新为步骤211计算得到的适应度;
S214、将全局最佳适应度更新为所有粒子的最佳适应度的最小值;
S215、返回全局最佳适应度与对应的最佳部署方案;
S103、根据生成的最佳部署方案,调度器去镜像仓库拉取对应的容器镜像到所对应的物理机上;
S104、将容器镜像运行在物理机上。
2.如权利要求1所述一种多目标优化的容器调度方法,其特征在于,步骤S201中,针对每个所述粒子分别利用随机调度算法生成一个所述可行解。
3.如权利要求1所述一种多目标优化的容器调度方法,其特征在于,适应度的计算公式为:
式中,F表示适应度;w1、w2、w3、w4表示各个优化目标的所占权重;f1表示拉取成本;minf1表示最小拉取成本;maxf1表示最大拉取成本;f2表示通信成本;minf2表示最小通信成本;maxf2表示最大通信成本;f3表示负载均衡;minf3表示最小负载均衡;maxf3表示最大负载均衡;f4表示能耗;minf4表示最小能耗;maxf4表示最大能耗。
4.如权利要求3所述一种多目标优化的容器调度方法,其特征在于,所述拉取成本f1的计算公式为:
式中,imagej表示第j个实例对应的镜像的大小;alloc(instj)表示第j个实例所被分配的物理机的ID;表示ID为alloc(instj)的物理机对应的吞吐量;表示ID为alloc(instj)的物理机对应的带宽。
5.如权利要求3所述一种多目标优化的容器调度方法,其特征在于,所述通信成本f2的计算公式为:
式中,TotalDistance表示所有服务之间的通信距离;p表示服务的数量;ServiceAverageDistance(i)表示服务i的平均通信距离,表示所有的属于服务si的实例,si表示第i个实例对应的服务,insti′、instj′分别表示两个实例,A(insti′)表示实例insti′所有可能的通信距离,/> 表示部署实例insti′、instj′的物理机的网络距离;con(sj)表示服务sj需要通信的服务。
6.如权利要求3所述一种多目标优化的容器调度方法,其特征在于,所述负载均衡f3的计算公式为:
式中,n表示物理机的个数;Balancei表示机器i的负载与平均负载的差值;Ui表示第i个物理机的CPU利用率;AVGU表示所有物理机的平均CPU利用率。
7.如权利要求3所述一种多目标优化的容器调度方法,其特征在于,所述能耗f4的计算公式为:
式中,Poweri表示第i个物理机的能耗;Poweri,Idle、Poweri,Max分别表示在空闲时、完全被利用时的第i个物理机的平均能耗;Ui表示第i个物理机的CPU利用率。
8.如权利要求1所述一种多目标优化的容器调度方法,其特征在于,步骤S204中,步骤S201中,多目标优化的再调度算法包括以下步骤:
S301、是否遍历完重调度队列所有实例,若是则结束本方法,若否则进入步骤S302;
S302、初始化适应度为最大值;
S303、初始化最佳物理机的Index为0;
S304、是否遍历完所有物理机,若是,则进入步骤S311,若否,则进入步骤S305;
S305、将当前实例部署到当前物理机上;
S306、计算拉取成本、通信成本、负载均衡成本以及能耗;
S307、根据适应度计算公式计算适应度;
S308、判断当前适应度是否小于等于最小适应度,若是,则进入步骤S309,若不是,则进入步骤S310;
S309、将最小适应度更新为当前适应度,将最佳物理机Index更新为当前适应度对应的物理机;
S310、从当前物理机中移除当前实例,返回步骤S304;
S311、根据Index将该实例部署在适应度最小的物理机上,返回步骤S301。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910327503.2A CN110058924B (zh) | 2019-04-23 | 2019-04-23 | 一种多目标优化的容器调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910327503.2A CN110058924B (zh) | 2019-04-23 | 2019-04-23 | 一种多目标优化的容器调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110058924A CN110058924A (zh) | 2019-07-26 |
CN110058924B true CN110058924B (zh) | 2023-08-04 |
Family
ID=67320159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910327503.2A Active CN110058924B (zh) | 2019-04-23 | 2019-04-23 | 一种多目标优化的容器调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110058924B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027736B (zh) * | 2019-07-30 | 2022-05-20 | 中国人民解放军国防科技大学 | 多目标优化下的微服务组合部署与调度方法 |
CN110795208B (zh) * | 2019-10-11 | 2023-05-05 | 南京航空航天大学 | 基于改进粒子群的移动云计算自适应虚拟机调度方法 |
CN112785025B (zh) * | 2019-11-11 | 2024-01-16 | 北京京邦达贸易有限公司 | 仓库布局方法和装置 |
CN110888741A (zh) * | 2019-11-27 | 2020-03-17 | 新华三大数据技术有限公司 | 应用容器的资源调度方法、装置、服务器及存储介质 |
CN111124619B (zh) * | 2019-12-25 | 2023-07-21 | 浙江大学 | 一种面向二次调度的容器调度方法 |
CN111506404A (zh) * | 2020-04-07 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 一种基于Kubernetes的共享GPU调度方法 |
CN111563659B (zh) * | 2020-04-13 | 2022-07-26 | 华南理工大学 | 基于多蚁群系统的多目标供应链配置方法 |
CN111506394B (zh) * | 2020-04-15 | 2023-05-05 | 广东工业大学 | 一种Docker Swarm容器调度方法及调度系统 |
CN111858029B (zh) * | 2020-06-16 | 2023-06-27 | 国网福建省电力有限公司信息通信分公司 | 基于离散粒子群的Storm集群负载均衡方法及系统 |
CN112506669B (zh) * | 2021-01-29 | 2021-06-18 | 浙江大华技术股份有限公司 | 任务分配方法和装置、存储介质及电子设备 |
CN116991545B (zh) * | 2023-09-28 | 2024-02-09 | 中航国际金网(北京)科技有限公司 | 虚拟机部署位置确定方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484512A (zh) * | 2016-10-08 | 2017-03-08 | 电子科技大学 | 计算单元的调度方法 |
CN107203412A (zh) * | 2017-05-04 | 2017-09-26 | 电子科技大学 | 一种基于膜系统改进粒子群算法的云资源调度优化方法 |
CN108182109A (zh) * | 2017-12-28 | 2018-06-19 | 福州大学 | 一种云环境下的工作流调度与数据分配方法 |
CN108469983A (zh) * | 2018-04-02 | 2018-08-31 | 西南交通大学 | 一种云环境下的基于粒子群算法的虚拟机部署方法 |
CN109062657A (zh) * | 2018-07-02 | 2018-12-21 | 南京邮电大学 | 基于粒子群优化的Docker容器调度方法 |
CN109358964A (zh) * | 2018-09-21 | 2019-02-19 | 中建材信息技术股份有限公司 | 一种服务器集群资源调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106026152B (zh) * | 2016-05-19 | 2017-06-06 | 合肥工业大学 | 一种电动汽车接入微电网的充放电调度方法 |
-
2019
- 2019-04-23 CN CN201910327503.2A patent/CN110058924B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484512A (zh) * | 2016-10-08 | 2017-03-08 | 电子科技大学 | 计算单元的调度方法 |
CN107203412A (zh) * | 2017-05-04 | 2017-09-26 | 电子科技大学 | 一种基于膜系统改进粒子群算法的云资源调度优化方法 |
CN108182109A (zh) * | 2017-12-28 | 2018-06-19 | 福州大学 | 一种云环境下的工作流调度与数据分配方法 |
CN108469983A (zh) * | 2018-04-02 | 2018-08-31 | 西南交通大学 | 一种云环境下的基于粒子群算法的虚拟机部署方法 |
CN109062657A (zh) * | 2018-07-02 | 2018-12-21 | 南京邮电大学 | 基于粒子群优化的Docker容器调度方法 |
CN109358964A (zh) * | 2018-09-21 | 2019-02-19 | 中建材信息技术股份有限公司 | 一种服务器集群资源调度方法 |
Non-Patent Citations (1)
Title |
---|
一种面向网络边缘任务调度问题的多方向粒子群优化算法;乔楠楠 尤佳莉;《计算机应用与软件》;20170430;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110058924A (zh) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110058924B (zh) | 一种多目标优化的容器调度方法 | |
Kaur et al. | Container-as-a-service at the edge: Trade-off between energy efficiency and service availability at fog nano data centers | |
Meshkati et al. | Energy-aware resource utilization based on particle swarm optimization and artificial bee colony algorithms in cloud computing | |
Saif et al. | Multi-objective grey wolf optimizer algorithm for task scheduling in cloud-fog computing | |
Ge et al. | GA-based task scheduler for the cloud computing systems | |
Aruna et al. | An improved load balanced metaheuristic scheduling in cloud | |
Lin et al. | Energy and performance-aware task scheduling in a mobile cloud computing environment | |
Rahimikhanghah et al. | Resource scheduling methods in cloud and fog computing environments: a systematic literature review | |
US11055139B2 (en) | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster | |
Ran et al. | SLAs-aware online task scheduling based on deep reinforcement learning method in cloud environment | |
CN104679594A (zh) | 一种中间件分布式计算方法 | |
Natesha et al. | GWOTS: Grey wolf optimization based task scheduling at the green cloud data center | |
Lin et al. | A heuristic task scheduling algorithm for heterogeneous virtual clusters | |
Jagadish Kumar et al. | Hybrid gradient descent golden eagle optimization (HGDGEO) algorithm-based efficient heterogeneous resource scheduling for big data processing on clouds | |
Ababneh | A hybrid approach based on grey wolf and whale optimization algorithms for solving cloud task scheduling problem | |
Dimitrios et al. | Simulation and performance evaluation of a fog system | |
Deiab et al. | Energy efficiency in cloud computing | |
Xu et al. | A meta reinforcement learning-based virtual machine placement algorithm in mobile edge computing | |
Gohil et al. | Load balancing in cloud using improved gray wolf optimizer | |
Senthil Kumar et al. | An efficient task scheduling using GWO-PSO algorithm in a cloud computing environment | |
Shubair | Enhancement of task scheduling technique of big data cloud computing | |
Tang et al. | Edge computing energy-efficient resource scheduling based on deep reinforcement learning and imitation learning | |
Ullah et al. | Task Priority‐Based Cached‐Data Prefetching and Eviction Mechanisms for Performance Optimization of Edge Computing Clusters | |
Zhang et al. | Freevm: A server release algorithm in datacenter network | |
SHAFINAH | Multi-objective grey wolf optimizer algorithm for task scheduling in cloud-fog computing |
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 |