CN114035889B - 一种二维时间尺度的容器调度方法及*** - Google Patents

一种二维时间尺度的容器调度方法及*** Download PDF

Info

Publication number
CN114035889B
CN114035889B CN202111234871.6A CN202111234871A CN114035889B CN 114035889 B CN114035889 B CN 114035889B CN 202111234871 A CN202111234871 A CN 202111234871A CN 114035889 B CN114035889 B CN 114035889B
Authority
CN
China
Prior art keywords
container
server
larvae
coral
load
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
Application number
CN202111234871.6A
Other languages
English (en)
Other versions
CN114035889A (zh
Inventor
张伟文
罗锦洲
陈磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN202111234871.6A priority Critical patent/CN114035889B/zh
Publication of CN114035889A publication Critical patent/CN114035889A/zh
Application granted granted Critical
Publication of CN114035889B publication Critical patent/CN114035889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A40/00Adaptation technologies in agriculture, forestry, livestock or agroalimentary production
    • Y02A40/80Adaptation technologies in agriculture, forestry, livestock or agroalimentary production in fisheries management
    • Y02A40/81Aquaculture, e.g. of fish

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Genetics & Genomics (AREA)
  • Physiology (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种二维时间尺度的容器调度方法及***,涉及云计算的技术领域,方法包括:获取服务器的容量信息和容器的容量信息,计算容器负载信息;在调度周期开始时,利用珊瑚礁优化算法将容器部署在服务器中;在调度周期的每个时隙中,获取当前时隙容器负载信息,确定过载服务器并选择需要迁移的容器;利用珊瑚礁优化算法,将需要迁移的容器重新进行部署;直到经历完调度周期中的每个时隙,完成该调度周期内的容器调度。本发明在调度周期的大时间尺度上,以负载平衡为目标,利用珊瑚礁优化算法对容器进行初步部署;在每次时隙的小时间尺度,珊瑚礁优化算法对服务器负载进行负载平衡调整,有效防止服务器过载崩溃,提升服务质量和资源利用率。

Description

一种二维时间尺度的容器调度方法及***
技术领域
本发明涉及云计算的技术领域,更具体地,涉及一种二维时间尺度的容器调度方法及***。
背景技术
随着互联网和物联网的快速发展,传统的计算范式已无法满足需求,因此一种新的计算范式进入了人们的视野,它就是“云计算”。随着更多的企业将IT基础设施以及业务应用迁移到云计算平台,使得基于虚拟化技术的云基础设施即服务的架构IaaS(InfrastructureasaService)得到更为广泛的部署及应用。基于物理资源建立的IaaS平台,往往由于虚拟机的复杂性,使其存在启动慢、集群控制层资源消耗过大的问题。而容器是一种新的虚拟化方案,能够帮助开发者构建、迁移、部署和实例化应用,并且不需要一个完整的操作***,与虚拟机相比,更加轻量。同时,容器的启动速度更快,占用资源更少,可以实现快速的迁移,并具有良好的扩展性。同时,供应商仍然面临一些挑战性的问题,如负载均衡问题。在同一台服务器上分配过多容器可能会导致服务器的资源利用率严重失衡,并影响***可用性、响应时间和吞吐量。因此,容器调度起着至关重要的作用。供应商需要根据服务器的负载情况选择合适的容器调度策略,保证服务质量的同时提高资源利用率。目前,对于云计算中心服务器的容器调度方法有遗传算法(GA),蚁群优化算法(AS),学习自动机过载检测(LAOD)方法等。其中,GA容易出现过早收敛的问题;AS的收敛速度慢,且算法开始得到的较优解为次优解时,正反馈会使次优解很快占据优势,使算法陷入局部最优难以跳出;LOAD方法显著降低了能耗,但增加了服务等级协议(SLA)的违反率。
2021年6月8日公开的中国专利申请CN112925611A提供了一种基于共享式GPU的分布式容器调度方法及其***,方法包括:实时监听并校验对新的容器:利用校验成功的容器更新容器调度队列;按顺序从容器调度队列中读取待调度容器,并根据容器的GPU标签从集群中选出待调度容器对应的最佳节点;将待调度容器调度到最佳节点上,完成分布式容器调度。该发明仅针对校验成功的容器进行调度,无法检测出过载服务器并进行负载平衡调整,存在服务器过载崩溃的问题,资源利用率低。
发明内容
本发明为克服上述现有技术针对云计算服务器的容器调度方法不合理的缺陷,提供一种二维时间尺度的容器调度方法及***,能够在检测出过载服务器的同时进行负载平衡调整,对容器进行合理调度,防止服务器过载崩溃,提升服务质量和资源利用率。
为解决上述技术问题,本发明的技术方案如下:
本发明提供一种二维时间尺度的容器调度方法,包括以下步骤:
S1:获取服务器的容量信息和容器的容量信息;
S2:根据容器的容量信息,计算容器负载信息;
S3:在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中;
S4:在调度周期的每个时隙中,获取当前时隙容器负载信息;
S5:根据当前时隙容器负载信息确定过载服务器;
S6:在过载服务器中选择需要迁移的容器;
S7:利用珊瑚礁优化算法,将需要迁移的容器重新进行部署;
S8:判断是否经过调度周期中的每个时隙,若不是,则重复步骤S4-S7;否则,完成该调度周期内的容器调度。
优选地,所述步骤S1中,获取的服务器的容量信息和容器的容量信息容器包括:
设定服务器集合为S={s1,s2,s3,…,sK},容器集合C={c1,c2,c3,…,cJ},其中K为服务器的数量,J为容器的数量;sk表示第k个服务器,k=1,2,…,K,cj表示第j个容器,j=1,2,…,J;服务器sk的主存容量为存储容量为/>CPU容量为/>容器cj的主存使用情况为/>存储容量为/>CPU容量为/>
优选地,所述步骤S2中,计算容器负载信息的方法具体为:
式中,表示容器cj的负载信息,ωu表示CPU容量权重,ωv表示主存权重,且ωuv=1。
优选地,所述步骤S3中,利用珊瑚礁优化算法,将容器部署在服务器中的具体方法包括:
S3.1:以负载均衡为目的,设置目标函数和约束条件;以适应度函数作为目标函数,适应度数值越小,表示负载越均衡;
S3.2:随机创建候选服务器列表{P1,P2,P3,…PJ}用来表示容器的放置情况;如候选服务器列表为{1,1,5,3,7},表示容器1部署到服务器1上,容器2部署到服务器1上,容器3部署到服务器5上,容器4部署到服务器3上,容器5部署到服务器7上,每个候选服务器列表表示一种部署方案,即珊瑚礁优化算法中的一条珊瑚虫;
S3.3:初始化珊瑚礁优化算法的参数,所述参数包括:容器的数量、候选服务器列表、外部有性繁殖比例Pb、内部有性繁殖比例(1-Pb)、无性繁殖比例Pw、自我毁灭比例Pd、幼虫安置可尝试的次数t,迭代次数n和初始种群中个体占据珊瑚礁的比例o;
S3.4:初始化珊瑚礁和初始种群;
每个候选服务器列表作为一条珊瑚虫,随机生成o条珊瑚虫,即o个部署方案;生成M×N的二维矩阵作为珊瑚礁,所述矩阵的每个网格可放置一条珊瑚虫;
S3.5:外部有性繁殖;
根据外部有性繁殖比例在初始种群中选择个体,将选中的个体分为两部分,每部分的个体个数为进行随机交叉繁殖产生幼虫,并利用目标函数计算幼虫的适应度;选中的个体分为两部分作为双亲,一部分表示雄性个体,另一部分表示雌性个体,模拟生物产卵过程将两部分个体进行交叉繁殖产生珊瑚幼虫,即新的部署方案;
S3.6:内部有性繁殖;
将初始种群中经步骤S3.5选择后剩余的个体作为内部有性繁殖个体,个数为M*N*o*(1-Pb),进行自体受精产生幼虫,并利用目标函数计算幼虫的适应度;剩余个体作为内部有性繁殖个体,模拟雌雄同体自体受精过程产生珊瑚幼虫,即新的部署方案;
S3.7:幼虫安置;
将步骤S3.5和S3.6生成的幼虫放置在珊瑚礁中;若进行放置的珊瑚礁网格中不存在个体,则直接将幼虫放置该珊瑚礁网格中;若进行放置的珊瑚礁网格中已经存在个体,则比较幼虫的适应度与已存在个体的适应度;若幼虫的适应度小于已存在个体的适应度,则幼虫占据该珊瑚礁网格;否则该幼虫寻找新的网格,若达到幼虫安置可尝试的次数t后仍未被放置,则该幼虫被淘汰;
S3.8:无性繁殖;
对执行步骤S3.7后的珊瑚礁存在的全部珊瑚虫按照适应度进行递增排序,选择靠前的珊瑚虫进行自我复制,自我复制个数根据无性繁殖比例Pw确定;
S3.9:毁灭过程;
对执行步骤S3.8后的珊瑚礁存在的全部珊瑚虫按照适应度进行递减排序,选择靠前的珊瑚虫进行淘汰,淘汰个数根据自我毁灭比例Pd确定;
3.10:判断是否达到迭代次数n,若没有达到,则重复步骤S3.5-S3.9;否则,停止迭代,输出当前部署方案,完成容器的部署。
优选地,所述步骤S3.1,目标函数和约束条件具体为:
式中,Lbalance表示目标函数,表示服务器sk的负载情况,/>表示所有服务器的平均负载;xj,k表示容器部署情况,若容器cj部署在服务器sk上,则xj,k=1,否则xj,k=0;
服务器sk的负载情况的计算公式为:
服务器的平均负载的计算公式为:
优选地,所述步骤S4中,在调度周期的每个时隙中,获取当前时隙容器负载信息的具体内容为:
若当前时隙是部署周期的第一个时隙,将步骤S2中的容器负载信息作为当前时隙容器负载信息;若当前时隙不是部署周期的第一个时隙,则利用上一时隙的服务器负载情况预测当前时隙的容器负载信息,将容器负载预测信息作为当前时隙容器负载信息。
优选地,所述步骤S5中,根据当前时隙容器负载信息确定过载服务器的具体方法为:
根据当前时隙容器负载信息计算服务器的平均负载,将服务器的平均负载作为阙值,负载超过该阙值的服务器视为过载服务器。
服务器的平均负载的计算公式为:
服务器sk的负载情况的计算公式为:
优选地,所述步骤S6中,在过载服务器中选择需要迁移的容器的具体方法为:
S6.1:计算单个容器的迁移时间:
式中,MTj表示容器cj的迁移时间,B表示过载服务器的带宽;
S6.2:使用最小迁移时间策略,根据迁移时间从短到长的顺序依次在过载服务器中选择迁移容器;计算去除迁移容器后的服务器负载,判断是否过载,直至去除迁移容器后的服务器负载小于阙值;
S6.3:遍历所有过载服务器,选择出所有需要迁移的容器。
优选地,所述步骤S7中,利用珊瑚礁优化算法,将需要迁移的容器重新进行部署的具体方法为:
随机创建迁移容器列表{M1,M2,M3,…,Mm}作为迁移方案,表示迁移容器的部署情况,m表示步骤S5中确定的需要迁移的容器的数量;如移容器列表{1,1,5,3,7}表示容器1迁移到服务器1上,容器2迁移到服务器1上,容器3迁移到服务器5上,容器4迁移到服务器3上,容器5迁移到服务器7上;利用与步骤S3相同的珊瑚礁优化算法,对前迁移容器列表求取最优解,即将迁移容器列表作为珊瑚礁优化算法中的一条珊瑚虫进行优化,获得最优迁移方案,按照最优迁移方案对需要迁移的容器重新进行部署。
本发明还提供一种二维时间尺度的容器调度***,包括:
信息获取模块,用于获取服务器的容量信息和容器的容量信息;
容器负载计算模块,根据容器的容量信息,计算容器负载信息;
容器部署模块,用于在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中;
当前信息收集模块,用于在调度周期的每个时隙中,获取当前时隙容器负载信息;
过载服务器判定模块,根据当前时隙容器负载信息确定过载服务器;
迁移容器选择模块,用于在过载服务器中选择需要迁移的容器;
迁移容器重部署模块,利用珊瑚礁优化算法,将需要迁移的容器重新进行部署;
时隙判定模块,用于判断是否经过调度周期中的每个时隙,若不是,则返回当前信息收集模块;否则,完成该调度周期内的容器调度。
与现有技术相比,本发明技术方案的有益效果是:
本发明在调度周期开始时,根据容器负载信息,利用珊瑚礁优化算法将容器放置在服务器中,进行初步的部署,初步实现服务器的负载均衡;接下来在调度周期的每个时隙,根据获取的当前时隙容器负载信确定过载服务器,从过载服务器中确定需要迁移的容器,再次利用珊瑚礁优化算法将需要迁移的容器重新进行部署,完成迁移,使服务器负载更加均衡;本发明在调度周期的大时间尺度上,以负载平衡为目标,利用珊瑚礁优化算法对容器进行初步部署;在每次时隙的小时间尺度,珊瑚礁优化算法对服务器负载进行负载平衡调整,有效防止服务器过载崩溃,提升服务质量和资源利用率。
附图说明
图1为实施例1所述的一种二维时间尺度的容器调度方法的流程图;
图2为应用实施例1所述的一种二维时间尺度的容器调度方法前后服务器负载对比示意图;
图3为实施例2所述的一种二维时间尺度的容器调度***的结构图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
本实施例提供一种二维时间尺度的容器调度方法,如图1所示,包括以下步骤:
S1:获取服务器的容量信息和容器的容量信息;
设定服务器集合为S={s1,s2,s3,…,sK},容器集合C={c1,c2,c3,…,cJ},其中K为服务器的数量,J为容器的数量;sk表示第k个服务器,k=1,2,…,K,cj表示第j个容器,j=1,2,…,J;服务器sk的主存容量为存储容量为/>CPU容量为/>容器cj的主存使用情况为/>存储容量为/>CPU容量为/>
S2:根据容器的容量信息,计算容器负载信息;
式中,表示容器cj的负载信息,ωu表示CPU容量权重,ωv表示主存权重,且ωuv=1。
S3:在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中;
S3.1:以负载均衡为目的,设置目标函数和约束条件;以适应度函数作为目标函数,适应度数值越小,表示负载越均衡;
目标函数和约束条件具体为:
式中,Lbalance表示目标函数,表示服务器sk的负载情况,/>表示所有服务器的平均负载;xj,k表示容器部署情况,若容器cj部署在服务器sk上,则xj,k=1,否则xj,k=0;
服务器sk的负载情况的计算公式为:
服务器的平均负载的计算公式为:
S3.2:随机创建候选服务器列表{P1,P2,P3,…PJ}用来表示容器的放置情况;如候选服务器列表为{1,1,5,3,7},表示容器1部署到服务器1上,容器2部署到服务器1上,容器3部署到服务器5上,容器4部署到服务器3上,容器5部署到服务器7上,每个候选服务器列表表示一种部署方案,即珊瑚礁优化算法中的一条珊瑚虫;
S3.3:初始化珊瑚礁优化算法的参数,所述参数包括:容器的数量、候选服务器列表、外部有性繁殖比例Pb、内部有性繁殖比例(1-Pn)、无性繁殖比例Pw、自我毁灭比例Pd、幼虫安置可尝试的次数t,迭代次数m和初始种群中个体占据珊瑚礁的比例o;
S3.4:初始化珊瑚礁和初始种群;
每个候选服务器列表作为一条珊瑚虫,随机生成o条珊瑚虫,即o个部署方案;生成M×N的二维矩阵作为珊瑚礁,所述矩阵的每个网格可放置一条珊瑚虫;
S3.5:外部有性繁殖;
根据外部有性繁殖比例在初始种群中选择个体,将选中的个体分为两部分,每部分的个体个数为进行随机交叉繁殖产生幼虫,并利用目标函数计算幼虫的适应度;选中的个体分为两部分作为双亲,一部分表示雄性个体,另一部分表示雌性个体,模拟生物产卵过程将两部分个体进行交叉繁殖产生珊瑚幼虫,即新的部署方案;
S3.6:内部有性繁殖;
将初始种群中经步骤S3.5选择后剩余的个体作为内部有性繁殖个体,个数为M*N*o*(1-Pb),进行自体受精产生幼虫,并利用目标函数计算幼虫的适应度;剩余个体作为内部有性繁殖个体,模拟雌雄同体自体受精过程产生珊瑚幼虫,即新的部署方案;
S3.7:幼虫安置;
将步骤S3.5和S3.6生成的幼虫放置在珊瑚礁中;若进行放置的珊瑚礁网格中不存在个体,则直接将幼虫放置该珊瑚礁网格中;若进行放置的珊瑚礁网格中已经存在个体,则比较幼虫的适应度与已存在个体的适应度;若幼虫的适应度小于已存在个体的适应度,则幼虫占据该珊瑚礁网格;否则该幼虫寻找新的网格,若达到幼虫安置可尝试的次数t后仍未被放置,则该幼虫被淘汰;
S3.8:无性繁殖;
对执行步骤S3.7后的珊瑚礁存在的全部珊瑚虫按照适应度进行递增排序,选择靠前的珊瑚虫进行自我复制,自我复制个数根据无性繁殖比例Pw确定;
S3.9:毁灭过程;
对执行步骤S3.8后的珊瑚礁存在的全部珊瑚虫按照适应度进行递减排序,选择靠前的珊瑚虫进行淘汰,淘汰个数根据自我毁灭比例Pd确定;
3.10:判断是否达到迭代次数n,若没有达到,则重复步骤S3.5-S3.9;否则,停止迭代,输出当前部署方案,完成容器的部署。
S4:在调度周期的每个时隙中,获取当前时隙容器负载信息;
具体的,若当前时隙是部署周期的第一个时隙,将步骤S2中的容器负载信息作为当前时隙容器负载信息;若当前时隙不是部署周期的第一个时隙,则利用上一时隙的服务器负载情况预测当前时隙的容器负载信息,将容器负载预测信息作为当前时隙容器负载信息。
S5:根据当前时隙容器负载信息确定过载服务器;
根据当前时隙容器负载信息计算服务器的平均负载,将服务器的平均负载作为阙值,负载超过该阙值的服务器视为过载服务器。
服务器的平均负载的计算公式为:
服务器sk的负载情况的计算公式为:
S6:在过载服务器中选择需要迁移的容器,包括:
S6.1:计算单个容器的迁移时间:
式中,MTj表示容器cj的迁移时间,B表示过载服务器的带宽;
S6.2:使用最小迁移时间策略,根据迁移时间从短到长的顺序依次在过载服务器中选择迁移容器;计算去除迁移容器后的服务器负载,判断是否过载,直至去除迁移容器后的服务器负载小于阙值;
S6.3:遍历所有过载服务器,选择出所有需要迁移的容器。
S7:利用珊瑚礁优化算法,将需要迁移的容器重新进行部署;具体的:
随机创建迁移容器列表{M1,M2,M3,…,Mm}作为迁移方案,表示迁移容器的部署情况,m表示步骤S5中确定的需要迁移的容器的数量;如移容器列表{1,1,5,3,7}表示容器1迁移到服务器1上,容器2迁移到服务器1上,容器3迁移到服务器5上,容器4迁移到服务器3上,容器5迁移到服务器7上;利用与步骤S3相同的珊瑚礁优化算法,对前迁移容器列表求取最优解,即将迁移容器列表作为珊瑚礁优化算法中的一条珊瑚虫进行优化,获得最优迁移方案,按照最优迁移方案对需要迁移的容器重新进行部署。
S8:判断是否经过该调度周期中的每个时隙,若不是,则重复步骤S4-S7;否则,完成该调度周期内的容器调度。
上述步骤是在一个调度周期内的容器调度方法,在具体实施过程中,在新一个调度周期时,重复步骤S3-S8,完成新调度周期内的容器调度。如图2所述,为应用本实施例提出的容器调度方法前后单个服务器负载的对比图,五角星标识的是应用本方法前的折线,没有任何标识的是应用本方法后的折线。从图中可以看出,容器数量较少时,服务器可以放置所有容器,应用本实施例提出的容器调度方法前后,服务器负载相同;当容器数量增加,应用本实施例提出的容器调度方法后,服务器负载低于应用前,本实施例可以对容器进行合理调度,使负载更加均衡,防止单个服务器过载崩溃,提升服务质量和资源利用率。
实施例2
本实施例提供一种二维时间尺度的容器调度***,如图3所示,包括:
信息获取模块,用于获取服务器的容量信息和容器的容量信息;
容器负载计算模块,根据容器的容量信息,计算容器负载信息;
容器部署模块,用于在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中;
当前信息收集模块,用于在调度周期的每个时隙中,获取当前时隙容器负载信息;
过载服务器判定模块,根据当前时隙容器负载信息确定过载服务器;
迁移容器选择模块,用于在过载服务器中选择需要迁移的容器;
迁移容器重部署模块,利用珊瑚礁优化算法,将需要迁移的容器重新进行部署;
时隙判定模块,用于判断是否经过调度周期中的每个时隙,若不是,则返回当前信息收集模块;否则,完成该调度周期内的容器调度。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (9)

1.一种二维时间尺度的容器调度方法,其特征在于,包括以下步骤:
S1:获取服务器的容量信息和容器的容量信息;
S2:根据容器的容量信息,计算容器负载信息;
S3:在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中,包括:
S3.1:以负载均衡为目的,设置目标函数和约束条件;以适应度函数作为目标函数,适应度数值越小,表示负载越均衡;
S3.2:随机创建候选服务器列表{P1,P2,P3,…PJ}用来表示容器的放置情况;
S3.3:初始化珊瑚礁优化算法的参数,所述参数包括:容器的数量、候选服务器列表、外部有性繁殖比例Pb、内部有性繁殖比例(1-Pb)、无性繁殖比例Pw、自我毁灭比例Pd、幼虫安置可尝试的次数t,迭代次数n和初始种群中个体占据珊瑚礁的比例o;
S3.4:初始化珊瑚礁和初始种群;
每个候选服务器列表作为一条珊瑚虫,随机生成o条珊瑚虫,即o个部署方案;生成M×N的二维矩阵作为珊瑚礁,所述矩阵的每个网格可放置一条珊瑚虫;
S3.5:外部有性繁殖;
根据外部有性繁殖比例在初始种群中选择个体,将选中的个体分为两部分,每部分的个体个数为进行随机交叉繁殖产生幼虫,并利用目标函数计算幼虫的适应度;
S3.6:内部有性繁殖;
将初始种群中经步骤S3.5选择后剩余的个体作为内部有性繁殖个体,个数为M*N*o*(1-Pb),进行自体受精产生幼虫,并利用目标函数计算幼虫的适应度;
S3.7:幼虫安置;
将步骤S3.5和S3.6生成的幼虫放置在珊瑚礁中;若进行放置的珊瑚礁网格中不存在个体,则直接将幼虫放置该珊瑚礁网格中;若进行放置的珊瑚礁网格中已经存在个体,则比较幼虫的适应度与已存在个体的适应度;若幼虫的适应度小于已存在个体的适应度,则幼虫占据该珊瑚礁网格;否则该幼虫寻找新的网格,若达到幼虫安置可尝试的次数t后仍未被放置,则该幼虫被淘汰;
S3.8:无性繁殖;
对执行步骤S3.7后的珊瑚礁存在的全部珊瑚虫按照适应度进行递增排序,选择靠前的珊瑚虫进行自我复制,自我复制个数根据无性繁殖比例Pw确定;
S3.9:毁灭过程;
对执行步骤S3.8后的珊瑚礁存在的全部珊瑚虫按照适应度进行递减排序,选择靠前的珊瑚虫进行淘汰,淘汰个数根据自我毁灭比例Pd确定;
3.10:判断是否达到迭代次数n,若没有达到,则重复步骤S3.5-S3.9;否则,停止迭代,输出当前部署方案,完成容器的部署;
S4:在调度周期的每个时隙中,获取当前时隙容器负载信息;
S5:根据当前时隙容器负载信息确定过载服务器;
S6:在过载服务器中选择需要迁移的容器;
S7:利用珊瑚礁优化算法,将需要迁移的容器重新进行部署;
S8:判断是否经过调度周期中的每个时隙,若不是,则重复步骤S4-S7;否则,完成该调度周期内的容器调度。
2.根据权利要求1所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S1中,获取的服务器的容量信息和容器的容量信息容器包括:
设定服务器集合为S={s1,s2,s3,…,sK},容器集合C={c1,c2,c3,…,cJ},其中K为服务器的数量,J为容器的数量;sk表示第k个服务器,k=1,2,…,k,cj表示第j个容器,j=1,2,…,J;服务器的容量信息包括主存容量、存储容量和CPU容量;容器的容量信息包括主存使用情况、存储容量和CPU容量。
3.根据权利要求2所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S2中,计算容器负载信息的方法具体为:
式中,表示容器cj的负载信息,ωu表示CPU容量权重,ωv表示主存权重,且ωuv=1;/>表示容器cj的CPU容量,/>表示容器cj的主存使用情况。
4.根据权利要求3所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S3.1,目标函数和约束条件具体为:
式中,Lbalance表示目标函数,表示服务器sk的负载情况,/>表示所有服务器的平均负载;xj,k表示容器部署情况,若容器cj部署在服务器sk上,则xj,k=1,否则xj,k=0;表示服务器sk的主存容量,/>表示服务器sk的存储容量,/>表示服务器sk的CPU容量;/>表示容器cj的主存使用情况,/>表示容器cj的存储容量,/>表示容器cj的CPU容量;
服务器sk的负载情况的计算公式为:
服务器的平均负载的计算公式为:
5.根据权利要求4所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S4中,在调度周期的每个时隙中,获取当前时隙容器负载信息的具体内容为:
若当前时隙是部署周期的第一个时隙,将步骤S2中的容器负载信息作为当前时隙容器负载信息;若当前时隙不是部署周期的第一个时隙,则利用上一时隙的服务器负载情况预测当前时隙的容器负载信息,将容器负载预测信息作为当前时隙容器负载信息。
6.根据权利要求5所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S5中,根据当前时隙容器负载信息确定过载服务器的具体方法为:
根据当前时隙容器负载信息计算服务器的平均负载,将服务器的平均负载作为阙值,负载超过该阙值的服务器视为过载服务器。
7.根据权利要求6所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S6中,在过载服务器中选择需要迁移的容器的具体方法为:
S6.1:计算单个容器的迁移时间:
式中,MTj表示容器cj的迁移时间,B表示过载服务器的带宽;
S6.2:使用最小迁移时间策略,根据迁移时间从短到长的顺序依次在过载服务器中选择迁移容器;计算去除迁移容器后的服务器负载,判断是否过载,直至去除迁移容器后的服务器负载小于阙值;
S6.3:遍历所有过载服务器,选择出所有需要迁移的容器。
8.根据权利要求7所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S7中,利用珊瑚礁优化算法,将需要迁移的容器重新进行部署的具体方法为:
随机创建迁移容器列表{M1,M2,M3,…,Mm}作为迁移方案,表示迁移容器的部署情况,m表示步骤S5中确定的需要迁移的容器的数量;利用与步骤S3相同的珊瑚礁优化算法,对前迁移容器列表求取最优解,获得最优迁移方案,按照最优迁移方案对需要迁移的容器重新进行部署。
9.一种二维时间尺度的容器调度***,其特征在于,包括:
信息获取模块,用于获取服务器的容量信息和容器的容量信息;
容器负载计算模块,根据容器的容量信息,计算容器负载信息;
容器部署模块,用于在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中,包括:
以负载均衡为目的,设置目标函数和约束条件;以适应度函数作为目标函数,适应度数值越小,表示负载越均衡;
随机创建候选服务器列表{P1,P2,P3,…PJ}用来表示容器的放置情况;
初始化珊瑚礁优化算法的参数,所述参数包括:容器的数量、候选服务器列表、外部有性繁殖比例Pb、内部有性繁殖比例(1-Pb)、无性繁殖比例Pw、自我毁灭比例Pd、幼虫安置可尝试的次数t,迭代次数n和初始种群中个体占据珊瑚礁的比例o;
初始化珊瑚礁和初始种群;
每个候选服务器列表作为一条珊瑚虫,随机生成o条珊瑚虫,即o个部署方案;生成M×N的二维矩阵作为珊瑚礁,所述矩阵的每个网格可放置一条珊瑚虫;
外部有性繁殖;
根据外部有性繁殖比例在初始种群中选择个体,将选中的个体分为两部分,每部分的个体个数为进行随机交叉繁殖产生幼虫,并利用目标函数计算幼虫的适应度;
内部有性繁殖;
将初始种群中经外部有性繁殖选择后剩余的个体作为内部有性繁殖个体,个数为M*N*o*(1-Pb),进行自体受精产生幼虫,并利用目标函数计算幼虫的适应度;
幼虫安置;
将外部有性繁殖和内部有性繁殖生成的幼虫放置在珊瑚礁中;若进行放置的珊瑚礁网格中不存在个体,则直接将幼虫放置该珊瑚礁网格中;若进行放置的珊瑚礁网格中已经存在个体,则比较幼虫的适应度与已存在个体的适应度;若幼虫的适应度小于已存在个体的适应度,则幼虫占据该珊瑚礁网格;否则该幼虫寻找新的网格,若达到幼虫安置可尝试的次数t后仍未被放置,则该幼虫被淘汰;
无性繁殖;
对执行幼虫安置后的珊瑚礁存在的全部珊瑚虫按照适应度进行递增排序,选择靠前的珊瑚虫进行自我复制,自我复制个数根据无性繁殖比例Pw确定;
毁灭过程;
对执行无性繁殖后的珊瑚礁存在的全部珊瑚虫按照适应度进行递减排序,选择靠前的珊瑚虫进行淘汰,淘汰个数根据自我毁灭比例Pd确定;
判断是否达到迭代次数n,若没有达到,则重复执行外部有性繁殖-毁灭过程;否则,停止迭代,输出当前部署方案,完成容器的部署;
当前信息收集模块,用于在调度周期的每个时隙中,获取当前时隙容器负载信息;
过载服务器判定模块,根据当前时隙容器负载信息确定过载服务器;
迁移容器选择模块,用于在过载服务器中选择需要迁移的容器;
迁移容器重部署模块,利用珊瑚礁优化算法,将需要迁移的容器重新进行部署;
时隙判定模块,用于判断是否经过调度周期中的每个时隙,若不是,则返回当前信息收集模块;否则,完成该调度周期内的容器调度。
CN202111234871.6A 2021-10-22 2021-10-22 一种二维时间尺度的容器调度方法及*** Active CN114035889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111234871.6A CN114035889B (zh) 2021-10-22 2021-10-22 一种二维时间尺度的容器调度方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111234871.6A CN114035889B (zh) 2021-10-22 2021-10-22 一种二维时间尺度的容器调度方法及***

Publications (2)

Publication Number Publication Date
CN114035889A CN114035889A (zh) 2022-02-11
CN114035889B true CN114035889B (zh) 2024-06-14

Family

ID=80135217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111234871.6A Active CN114035889B (zh) 2021-10-22 2021-10-22 一种二维时间尺度的容器调度方法及***

Country Status (1)

Country Link
CN (1) CN114035889B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2617119A1 (en) * 2008-01-08 2009-07-08 Pci Geomatics Enterprises Inc. Service oriented architecture for earth observation image processing
US10235399B2 (en) * 2014-11-05 2019-03-19 Hewlett Packard Enterprise Development Lp Methods and systems for determining hardware sizing for storage array systems
CN108667859A (zh) * 2017-03-27 2018-10-16 中兴通讯股份有限公司 一种实现资源调度的方法及装置
CN112187535B (zh) * 2020-09-21 2023-05-09 国网电力空间技术有限公司 雾计算环境下服务器部署方法及装置
CN112883526B (zh) * 2021-03-15 2023-04-07 广西师范大学 一种任务延迟和可靠性约束下的工作负载分配方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于排队网的FFS设备配置优化方法;陈磊;陈庆新;毛宁;俞爱林;;模具工业;20130815(第08期);全文 *
基于时间尺度分析的云网格空间资源调度算法;吴丰;吕振雷;陈珂锐;计算机仿真;20151231(第008期);全文 *

Also Published As

Publication number Publication date
CN114035889A (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
EP3540652B1 (en) Method, device, chip and system for training neural network model
CN104714852B (zh) 一种适用于分布式机器学习的参数同步优化方法及其***
WO2020181896A1 (zh) 一种多智能体强化学习调度方法、***及电子设备
CN104317658B (zh) 一种基于MapReduce的负载自适应任务调度方法
CN111274036B (zh) 一种基于速度预测的深度学习任务的调度方法
CN112416585B (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN111339433A (zh) 基于人工智能的信息推荐方法、装置、电子设备
CN105005506B (zh) 一种虚拟化云中容错资源供给方法
CN110928651B (zh) 一种移动边缘环境下的服务工作流容错调度方法
CN109857534A (zh) 一种基于策略梯度强化学习的智能任务调度策略训练方法
CN112799817A (zh) 一种微服务资源调度***和方法
CN111191789B (zh) 模型优化部署***、芯片、电子设备及介质
CN113015219B (zh) 基于策略梯度的网络资源选择方法、装置以及存储介质
CN110347602A (zh) 多任务脚本执行方法及装置、电子设备及可读存储介质
CN111767145A (zh) 容器调度***、方法、装置和设备
CN113722112B (zh) 一种服务资源负载均衡处理方法及***
CN114911613A (zh) 一种云际计算环境中跨集群资源高可用调度方法及***
CN114035889B (zh) 一种二维时间尺度的容器调度方法及***
CN111274111B (zh) 一种用于微服务老化的预测与抗衰方法
CN114490094B (zh) 一种基于机器学习的gpu显存分配方法及***
CN112130927A (zh) 一种可靠性增强的移动边缘计算任务卸载方法
CN116451585A (zh) 基于目标检测模型的自适应实时学习任务调度方法
CN115080207A (zh) 基于容器集群的任务处理方法及装置
CN117009042A (zh) 物联网模式下的信息计算负载调度方法、装置、设备及介质
CN114327925A (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
GR01 Patent grant
GR01 Patent grant