CN114035889A - 一种二维时间尺度的容器调度方法及系统 - Google Patents

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

Info

Publication number
CN114035889A
CN114035889A CN202111234871.6A CN202111234871A CN114035889A CN 114035889 A CN114035889 A CN 114035889A CN 202111234871 A CN202111234871 A CN 202111234871A CN 114035889 A CN114035889 A CN 114035889A
Authority
CN
China
Prior art keywords
container
server
load
time slot
information
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.)
Granted
Application number
CN202111234871.6A
Other languages
English (en)
Other versions
CN114035889B (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

Images

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (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的主存容量为
Figure BDA0003317158690000021
存储容量为
Figure BDA0003317158690000022
CPU容量为
Figure BDA0003317158690000023
容器cj的主存使用情况为
Figure BDA0003317158690000024
存储容量为
Figure BDA0003317158690000025
CPU容量为
Figure BDA0003317158690000026
优选地,所述步骤S2中,计算容器负载信息的方法具体为:
Figure BDA0003317158690000027
式中,
Figure BDA0003317158690000028
表示容器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:外部有性繁殖;
根据外部有性繁殖比例在初始种群中选择个体,将选中的个体分为两部分,每部分的个体个数为
Figure BDA0003317158690000031
进行随机交叉繁殖产生幼虫,并利用目标函数计算幼虫的适应度;选中的个体分为两部分作为双亲,一部分表示雄性个体,另一部分表示雌性个体,模拟生物产卵过程将两部分个体进行交叉繁殖产生珊瑚幼虫,即新的部署方案;
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,目标函数和约束条件具体为:
Figure BDA0003317158690000041
Figure BDA0003317158690000042
Figure BDA0003317158690000043
Figure BDA0003317158690000044
Figure BDA0003317158690000045
Figure BDA0003317158690000051
式中,Lbalance表示目标函数,
Figure BDA0003317158690000052
表示服务器sk的负载情况,
Figure BDA0003317158690000053
表示所有服务器的平均负载;xj,k表示容器部署情况,若容器cj部署在服务器sk上,则xj,k=1,否则xj,k=0;
服务器sk的负载情况
Figure BDA0003317158690000054
的计算公式为:
Figure BDA0003317158690000055
服务器的平均负载
Figure BDA0003317158690000056
的计算公式为:
Figure BDA0003317158690000057
优选地,所述步骤S4中,在调度周期的每个时隙中,获取当前时隙容器负载信息的具体内容为:
若当前时隙是部署周期的第一个时隙,将步骤S2中的容器负载信息作为当前时隙容器负载信息;若当前时隙不是部署周期的第一个时隙,则利用上一时隙的服务器负载情况预测当前时隙的容器负载信息,将容器负载预测信息作为当前时隙容器负载信息。
优选地,所述步骤S5中,根据当前时隙容器负载信息确定过载服务器的具体方法为:
根据当前时隙容器负载信息计算服务器的平均负载,将服务器的平均负载作为阙值,负载超过该阙值的服务器视为过载服务器。
服务器的平均负载
Figure BDA0003317158690000058
的计算公式为:
Figure BDA0003317158690000059
服务器sk的负载情况
Figure BDA00033171586900000510
的计算公式为:
Figure BDA00033171586900000511
优选地,所述步骤S6中,在过载服务器中选择需要迁移的容器的具体方法为:
S6.1:计算单个容器的迁移时间:
Figure BDA0003317158690000061
式中,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的主存容量为
Figure BDA0003317158690000081
存储容量为
Figure BDA0003317158690000082
CPU容量为
Figure BDA0003317158690000083
容器cj的主存使用情况为
Figure BDA0003317158690000084
存储容量为
Figure BDA0003317158690000085
CPU容量为
Figure BDA0003317158690000086
S2:根据容器的容量信息,计算容器负载信息;
Figure BDA0003317158690000087
式中,
Figure BDA0003317158690000088
表示容器cj的负载信息,ωu表示CPU容量权重,ωv表示主存权重,且ωuv=1。
S3:在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中;
S3.1:以负载均衡为目的,设置目标函数和约束条件;以适应度函数作为目标函数,适应度数值越小,表示负载越均衡;
目标函数和约束条件具体为:
Figure BDA0003317158690000089
Figure BDA00033171586900000810
Figure BDA00033171586900000811
Figure BDA00033171586900000812
Figure BDA00033171586900000813
Figure BDA00033171586900000814
式中,Lbalance表示目标函数,
Figure BDA00033171586900000815
表示服务器sk的负载情况,
Figure BDA00033171586900000816
表示所有服务器的平均负载;xj,k表示容器部署情况,若容器cj部署在服务器sk上,则xj,k=1,否则xj,k=0;
服务器sk的负载情况
Figure BDA00033171586900000817
的计算公式为:
Figure BDA0003317158690000091
服务器的平均负载
Figure BDA0003317158690000092
的计算公式为:
Figure BDA0003317158690000093
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:外部有性繁殖;
根据外部有性繁殖比例在初始种群中选择个体,将选中的个体分为两部分,每部分的个体个数为
Figure BDA0003317158690000094
进行随机交叉繁殖产生幼虫,并利用目标函数计算幼虫的适应度;选中的个体分为两部分作为双亲,一部分表示雄性个体,另一部分表示雌性个体,模拟生物产卵过程将两部分个体进行交叉繁殖产生珊瑚幼虫,即新的部署方案;
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:根据当前时隙容器负载信息确定过载服务器;
根据当前时隙容器负载信息计算服务器的平均负载,将服务器的平均负载作为阙值,负载超过该阙值的服务器视为过载服务器。
服务器的平均负载
Figure BDA0003317158690000111
的计算公式为:
Figure BDA0003317158690000112
服务器sk的负载情况
Figure BDA0003317158690000113
的计算公式为:
Figure BDA0003317158690000114
S6:在过载服务器中选择需要迁移的容器,包括:
S6.1:计算单个容器的迁移时间:
Figure BDA0003317158690000115
式中,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 (10)

1.一种二维时间尺度的容器调度方法,其特征在于,包括以下步骤:
S1:获取服务器的容量信息和容器的容量信息;
S2:根据容器的容量信息,计算容器负载信息;
S3:在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中;
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中,计算容器负载信息的方法具体为:
Figure FDA0003317158680000011
式中,
Figure FDA0003317158680000012
表示容器cj的负载信息,ωu表示CPU容量权重,ωv表示主存权重,且ωuv=1;
Figure FDA0003317158680000013
表示容器cj的CPU容量,
Figure FDA0003317158680000014
表示容器cj的主存使用情况。
4.根据权利要求3所述的二维时间尺度的容器调度方法,其特征在于,所述步骤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:外部有性繁殖;
根据外部有性繁殖比例在初始种群中选择个体,将选中的个体分为两部分,每部分的个体个数为
Figure FDA0003317158680000021
进行随机交叉繁殖产生幼虫,并利用目标函数计算幼虫的适应度;
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;否则,停止迭代,输出当前部署方案,完成容器的部署。
5.根据权利要求4所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S3.1,目标函数和约束条件具体为:
Figure FDA0003317158680000031
Figure FDA0003317158680000032
Figure FDA0003317158680000033
Figure FDA0003317158680000034
Figure FDA0003317158680000035
Figure FDA0003317158680000036
式中,Lbalance表示目标函数,
Figure FDA0003317158680000037
表示服务器sk的负载情况,
Figure FDA0003317158680000038
表示所有服务器的平均负载;xj,k表示容器部署情况,若容器cj部署在服务器sk上,则xj,k=1,否则xj,k=0;
Figure FDA0003317158680000039
表示服务器sk的主存容量,
Figure FDA00033171586800000310
表示服务器sk的存储容量,
Figure FDA00033171586800000311
表示服务器sk的CPU容量;
Figure FDA00033171586800000312
表示容器cj的主存使用情况,
Figure FDA00033171586800000313
表示容器cj的存储容量,
Figure FDA00033171586800000314
表示容器cj的CPU容量;
服务器sk的负载情况
Figure FDA00033171586800000315
的计算公式为:
Figure FDA00033171586800000316
服务器的平均负载
Figure FDA00033171586800000317
的计算公式为:
Figure FDA0003317158680000041
6.根据权利要求5所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S4中,在调度周期的每个时隙中,获取当前时隙容器负载信息的具体内容为:
若当前时隙是部署周期的第一个时隙,将步骤S2中的容器负载信息作为当前时隙容器负载信息;若当前时隙不是部署周期的第一个时隙,则利用上一时隙的服务器负载情况预测当前时隙的容器负载信息,将容器负载预测信息作为当前时隙容器负载信息。
7.根据权利要求6所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S5中,根据当前时隙容器负载信息确定过载服务器的具体方法为:
根据当前时隙容器负载信息计算服务器的平均负载,将服务器的平均负载作为阙值,负载超过该阙值的服务器视为过载服务器。
8.根据权利要求7所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S6中,在过载服务器中选择需要迁移的容器的具体方法为:
S6.1:计算单个容器的迁移时间:
Figure FDA0003317158680000042
式中,MTj表示容器cj的迁移时间,B表示过载服务器的带宽;
S6.2:使用最小迁移时间策略,根据迁移时间从短到长的顺序依次在过载服务器中选择迁移容器;计算去除迁移容器后的服务器负载,判断是否过载,直至去除迁移容器后的服务器负载小于阙值;
S6.3:遍历所有过载服务器,选择出所有需要迁移的容器。
9.根据权利要求8所述的二维时间尺度的容器调度方法,其特征在于,所述步骤S7中,利用珊瑚礁优化算法,将需要迁移的容器重新进行部署的具体方法为:
随机创建迁移容器列表{M1,M2,M3,…,Mm}作为迁移方案,表示迁移容器的部署情况,m表示步骤S5中确定的需要迁移的容器的数量;利用与步骤S3相同的珊瑚礁优化算法,对前迁移容器列表求取最优解,获得最优迁移方案,按照最优迁移方案对需要迁移的容器重新进行部署。
10.一种二维时间尺度的容器调度系统,其特征在于,包括:
信息获取模块,用于获取服务器的容量信息和容器的容量信息;
容器负载计算模块,根据容器的容量信息,计算容器负载信息;
容器部署模块,用于在调度周期开始时,根据服务器的容量信息和容器负载信息,利用珊瑚礁优化算法,将容器部署在服务器中;
当前信息收集模块,用于在调度周期的每个时隙中,获取当前时隙容器负载信息;
过载服务器判定模块,根据当前时隙容器负载信息确定过载服务器;
迁移容器选择模块,用于在过载服务器中选择需要迁移的容器;
迁移容器重部署模块,利用珊瑚礁优化算法,将需要迁移的容器重新进行部署;
时隙判定模块,用于判断是否经过调度周期中的每个时隙,若不是,则返回当前信息收集模块;否则,完成该调度周期内的容器调度。
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 true CN114035889A (zh) 2022-02-11
CN114035889B 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)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493829A (zh) * 2008-01-08 2009-07-29 Pci地球空间信息有限公司 大量地球观测图像处理
US20160124652A1 (en) * 2014-11-05 2016-05-05 Nimble Storage, Inc. Methods and Systems for Determining Hardware Sizing for Storage Array Systems
WO2018177042A1 (zh) * 2017-03-27 2018-10-04 中兴通讯股份有限公司 一种实现资源调度的方法及装置
CN112187535A (zh) * 2020-09-21 2021-01-05 国网通用航空有限公司 雾计算环境下服务器部署方法及装置
CN112883526A (zh) * 2021-03-15 2021-06-01 广西师范大学 一种任务延迟和可靠性约束下的工作负载分配方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493829A (zh) * 2008-01-08 2009-07-29 Pci地球空间信息有限公司 大量地球观测图像处理
US20160124652A1 (en) * 2014-11-05 2016-05-05 Nimble Storage, Inc. Methods and Systems for Determining Hardware Sizing for Storage Array Systems
WO2018177042A1 (zh) * 2017-03-27 2018-10-04 中兴通讯股份有限公司 一种实现资源调度的方法及装置
CN112187535A (zh) * 2020-09-21 2021-01-05 国网通用航空有限公司 雾计算环境下服务器部署方法及装置
CN112883526A (zh) * 2021-03-15 2021-06-01 广西师范大学 一种任务延迟和可靠性约束下的工作负载分配方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴丰;吕振雷;陈珂锐: "基于时间尺度分析的云网格空间资源调度算法", 计算机仿真, no. 008, 31 December 2015 (2015-12-31) *
陈磊;陈庆新;毛宁;俞爱林;: "基于排队网的FFS设备配置优化方法", 模具工业, no. 08, 15 August 2013 (2013-08-15) *

Also Published As

Publication number Publication date
CN114035889B (zh) 2024-06-14

Similar Documents

Publication Publication Date Title
CN107688493B (zh) 训练深度神经网络的方法、装置及系统
US20190253490A1 (en) Resource load balancing control method and cluster scheduler
CN111274036B (zh) 一种基于速度预测的深度学习任务的调度方法
US8510747B2 (en) Method and device for implementing load balance of data center resources
CN112416585B (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN104657205B (zh) 一种基于虚拟化的视频内容分析方法及系统
EP4242843A1 (en) Graphics card memory management method and apparatus, device, and system
CN111966453B (zh) 一种负载均衡方法、系统、设备及存储介质
CN105607952B (zh) 一种虚拟化资源的调度方法及装置
CN110262897B (zh) 一种基于负载预测的Hadoop计算任务初始分配方法
CN110928651B (zh) 一种移动边缘环境下的服务工作流容错调度方法
CN105740059B (zh) 一种面向可分割任务的粒子群调度方法
CN115330189A (zh) 一种基于改进飞蛾火焰算法的工作流优化调度方法
WO2016095068A1 (en) Pedestrian detection apparatus and method
CN112799817A (zh) 一种微服务资源调度系统和方法
CN110347602A (zh) 多任务脚本执行方法及装置、电子设备及可读存储介质
Zhang et al. Learning-driven interference-aware workload parallelization for streaming applications in heterogeneous cluster
CN111459684A (zh) 面向多处理器架构的云计算资源融合调度管理方法、系统及介质
CN114911613A (zh) 一种云际计算环境中跨集群资源高可用调度方法及系统
CN110362411B (zh) 一种基于Xen系统的CPU资源调度方法
CN114035889A (zh) 一种二维时间尺度的容器调度方法及系统
CN117539612A (zh) 基于混沌麻雀算法的ai训推平台任务调度方法和系统
CN112596901A (zh) 云平台自动化部署与运行方法、电子设备及存储介质
CN114048040B (zh) 基于内存与图像分类模型时延关系的任务调度方法
Zhang et al. Learning driven parallelization for large-scale video workload in hybrid CPU-GPU cluster

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