CN110580194A - 基于内存热插拔技术的容器调度方法及管理节点调度器 - Google Patents
基于内存热插拔技术的容器调度方法及管理节点调度器 Download PDFInfo
- Publication number
- CN110580194A CN110580194A CN201910809325.7A CN201910809325A CN110580194A CN 110580194 A CN110580194 A CN 110580194A CN 201910809325 A CN201910809325 A CN 201910809325A CN 110580194 A CN110580194 A CN 110580194A
- Authority
- CN
- China
- Prior art keywords
- memory
- target node
- plug
- hot plug
- scheduling
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 156
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000005516 engineering process Methods 0.000 title claims abstract description 18
- 238000004891 communication Methods 0.000 abstract description 3
- 239000007801 affinity label Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
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
本发明涉及一种基于内存热插拔技术的容器调度方法及管理节点调度器,所述方法包括以下步骤:1)获取容器任务所需内存及亲和标签,基于亲和标签,获取具有亲和性的目标节点;2)基于容器任务所需内存,判断目标节点的内存是否足够,如果不足够,则获取目标节点待增加内存,并执行步骤3),否则执行步骤4);3)基于待增加内存,对目标节点进行内存热插;4)将容器任务调度至目标节点。与现有技术相比,本发明通过提升目标节点的内存,使得具有亲和标签的容器任务能调度到尽可能少的目标节点中,减少因网络通信而带来的性能损耗,具有稳定性好和可靠性高等优点。
Description
技术领域
本发明涉及计算机技术领域,尤其是涉及一种基于内存热插拔技术的容器调度方法及管理节点调度器。
背景技术
随着容器技术的兴起,越来越多的软件系统开始采用以容器的形式分发和部署。而为了解决现阶段容器技术不成熟的问题,通常会将容器调度在虚拟机中运行。
现有的容器的调度方法主要包括:随机调度法和Binpack方法,调度原理为:管理节点调度器综合考虑容器Pod所需的运行空间和虚拟机配置内存,并选区虚拟机配置内存大于Pod所需运行空间的虚拟机作为容器宿主机。但是,管理节点调度在选区虚拟机时,只考虑物理服务器配置给虚拟机的静态内存大小。
具体地,Pod是可以创建和管理Kubernetes计算的最小可部署单元。一个Pod代表着集群中运行的一个进程。
让具有亲和标签的两个容器Pod合理调度,有利于从而提高整体系统的性能。具体原因如下:具有亲和标签应用A与应用B两个应用频繁交互,所以有必要让两个应用所在的Pod尽可能靠近,最好运行在同一个虚拟机节点上,以减少因网络通信而带来的性能损耗。
因此,如何让具有亲和标签的容器任务调度到尽可能少的虚拟机节点上,进一步提高整体系统的性能,是本发明所要解决的问题。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于内存热插拔技术的容器调度方法及管理节点调度器。
本发明的目的可以通过以下技术方案来实现:
一种基于内存热插拔技术的容器调度方法,该方法包括以下步骤:
S1:获取容器任务所需内存及亲和标签,基于亲和标签,获取具有亲和性的目标节点;
S2:基于容器任务所需内存,判断目标节点的内存是否足够,如果不足够,则获取目标节点待增加内存,并执行步骤S3,否则执行步骤S4;
S3:基于待增加内存,对目标节点进行内存热插;
S4:将容器任务调度至目标节点。
进一步地,所述步骤S1中,目标节点为一个或多个。
进一步地,执行所述步骤S3前还包括如下条件判断:
判断是否满足预建立的内存热插条件,如果满足,则继续执行,如果不满足,则发出调度失败报警。
进一步地,所述预建立的内存热插条件包括设定目标节点最大内存上限和目标节点上的剩余虚拟插槽数大于或等于一。
进一步地,所述步骤S3中的对目标节点进行内存热插,具体为,在目标节点所在的物理机上执行内存热插指令,为目标节点的虚拟插槽中添加虚拟内存块,并在目标节点内自动上线使用。
本发明还提供一种管理节点调度器,包括:
获取模块,用于获取容器任务所需内存及亲和标签,基于亲和标签,获取具有亲和性的目标节点;
判断模块,用于基于容器任务所需内存,判断该目标节点的内存是否足够,如果不足够,则获取目标节点待增加内存,并执行内存热插模块,否则执行调度模块;
内存热插模块,用于基于待增加内存,对目标节点进行内存热插;
调度模块,用于将容器任务调度至目标节点。
进一步地,所述获取模块中,目标节点为一个或多个。
进一步地,所述内存热插模块开始运行时还包括条件判断单元,该条件判断单元用于判断是否满足预建立的内存热插条件,如果满足,则继续执行,如果不满足,则发出调度失败报警。
进一步地,所述预建立的内存热插条件包括设定目标节点最大内存上限和目标节点上的剩余虚拟插槽数大于或等于一。
进一步地,所述内存热插模块包括热插单元,该热插单元用于在目标节点所在的物理机上执行内存热插指令,为目标节点的虚拟插槽中添加虚拟内存块,并在目标节点内自动上线使用。
与现有技术相比,本发明具有以下优点:
(1)本发明通过提升目标节点的内存,使得具有亲和标签的容器任务能调度到尽可能少的目标节点中,尤其增加了调度到同一个目标节点的成功率,减少因网络通信而带来的性能损耗,提高了整体系统的性能。
(2)本发明采用内存热插拔技术提升目标节点的内存,内存热插拔技术将系统的内存真正用在业务上,克服了采用内存气球技术,会发生占用大量内存使得系统在总内存还剩余较多的情况下发生内存不够的缺陷,且内存热插拔技术方便可靠,效率高,有利于提升系统性能。
(3)本发明在对目标节点进行内存热插前还设有条件判断步骤,通过设定目标节点最大内存上限,保证了资源的合理分配;通过确保目标节点上的剩余虚拟插槽数大于或等于一,提升了进行内存热插的稳定性。
(4)本发明在进行内存热插条件判断时,对不能进行内存热插的目标节点,会发出调度失败报警,便于查看本发明方法调度优化结果,可靠性高。
附图说明
图1为本发明实施例1的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
一种基于内存热插拔技术的容器调度方法,该方法包括以下步骤:
S1:获取两个容器任务所需内存及亲和标签,基于亲和标签,获取具有亲和性的一个目标节点;
S2:基于容器任务所需内存,判断目标节点的内存是否足够,如果不足够,则获取目标节点待增加内存,并执行步骤S3,否则执行步骤S4;
S3:先进行条件判断,然后基于待增加内存,对目标节点进行内存热插;
条件判断具体为:判断是否满足预建立的内存热插条件,如果满足,则继续执行,如果不满足,则发出调度失败报警。
预建立的内存热插条件包括设定目标节点最大内存上限和目标节点上的剩余虚拟插槽数大于或等于一。
对目标节点进行内存热插,具体为,在目标节点所在的物理机上执行内存热插指令,为目标节点的虚拟插槽中添加虚拟内存块,并在目标节点内自动上线使用。
S4:将容器任务调度至目标节点。
实施例2
本实施例为一种基于内存热插拔技术的容器调度方法,该方法包括以下步骤:
S1:获取五个容器任务所需内存及亲和标签,基于亲和标签,获取具有亲和性的两个目标节点,分别对两个目标节点执行步骤S2至S4;
S2:基于五个容器任务所需总内存,判断两个目标节点的总内存是否足够,如果不足够,则对两个目标节点分别获取待增加内存,并执行步骤S3,否则执行步骤S4;
S3:先进行条件判断,然后基于待增加内存,对两个目标节点分别进行内存热插;
条件判断具体为:判断是否满足预建立的内存热插条件,如果满足,则继续执行,如果不满足,则发出调度失败报警。
预建立的内存热插条件包括设定目标节点最大内存上限和目标节点上的剩余虚拟插槽数大于或等于一。
对目标节点进行内存热插,具体为,在目标节点所在的物理机上执行内存热插指令,为目标节点的虚拟插槽中添加虚拟内存块,并在目标节点内自动上线使用。
S4:将五个容器任务调度至两个目标节点。
实施例3
本实施例为一种管理节点调度器,包括:
获取模块,用于获取容器任务所需内存及亲和标签,基于亲和标签,获取具有亲和性的一个或多个目标节点;
判断模块,用于基于容器任务所需内存,判断该目标节点的内存是否足够,如果不足够,则获取目标节点待增加内存,并执行内存热插模块,否则执行调度模块;
内存热插模块,用于基于待增加内存,对目标节点进行内存热插;
内存热插模块开始运行时还包括条件判断单元,该条件判断单元用于判断是否满足预建立的内存热插条件,如果满足,则继续执行,如果不满足,则发出调度失败报警;预建立的内存热插条件包括设定目标节点最大内存上限和目标节点上的剩余虚拟插槽数大于或等于一。
内存热插模块包括热插单元,该热插单元用于在目标节点所在的物理机上执行内存热插指令,为目标节点的虚拟插槽中添加虚拟内存块,并在目标节点内自动上线使用。
调度模块,用于将容器任务调度至目标节点。
实施例4
如图1所示,本实施例为一种基于内存热插拔技术的容器调度方法,通过在容器调度器中增加内存热插环节,使得配置了亲和标签的容器运行到同一个虚拟机节点的成功率增加,从而提高整体系统的性能,该方法包括以下步骤:
S1:对给需要做亲和的容器Pods做亲和标签;
S2:利用容器的亲和标签在Pod配置文件中配置具有亲和性的目标节点;
S3:在容器调度器判断目标节点是否能容纳具有相同亲和标签的所有容器的集合;如果可以容纳,则直接执行节点的亲和策略,如果内存不够不可以容纳,则执行步骤S4;
S4:容器调度器判断目标节点是否满足内存热插条件,如果不满足,则发出调度失败报警,如果满足,则先执行内存热插,再执行节点的亲和策略。
内存热插条件包括如下条件:
a)目标节点现有内存与需要热插的内存大小之和小于设定的目标节点最大内存上限,即currentMemory+N<Maxmeory;
b)目标节点的剩余虚拟插槽个数大于或等于1,即slots≥1。
执行内存热插的过程具体为,在目标节点所在物理机执行热插指令,为目标节点的剩余虚拟插槽添加虚拟内存块,并在目标节点内自动上线使用。
实施例5
本实施例为一种基于内存热插拔技术的容器调度方法,作用在使用libvirt管理的KVM虚拟化平台上运行Kubernetes容器编排引擎的场景中,该方法包括以下步骤:
S1:采用标签标记节点的调度类型type1;
该步骤的代码如下:
kubectl lable nodes node01scheduleType=type1
S2:创建Pod时在affinity注明对磁盘类型scheduleType;
该步骤的代码如下:
S3:容器调度管理器可以通过在目标节点运行例如cat/proc/meminfo命令获得目标虚拟机的内存信息,并与亲和容器pods所需内存进行比较;
S4:如果目的虚拟机节点内存足够,则直接运行亲和策略。如果内存不够,则判断目标节点是否满足热插条件,检查是否满足如下条件:
a)虚拟机现有内存与需要热插的内存大小之和小于虚拟机的最大内存上限,即currentMemory+N<Maxmeory
b)虚拟机的剩余虚拟插槽个数大于或等于1,即slots≥1
如果满足上述条件,则虚拟机所在物理机执行热插指令,为所述虚拟机添加虚拟内存块,并在虚拟机内自动上线使用;
S5:如果满足热插条件,则执行虚拟机的内存热插,并执行亲和策略;如果不满足,则进行调度失败报警。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种基于内存热插拔技术的容器调度方法,其特征在于,该方法包括以下步骤:
S1:获取容器任务所需内存及亲和标签,基于亲和标签,获取具有亲和性的目标节点;
S2:基于容器任务所需内存,判断目标节点的内存是否足够,如果不足够,则获取目标节点待增加内存,并执行步骤S3,否则执行步骤S4;
S3:基于待增加内存,对目标节点进行内存热插;
S4:将容器任务调度至目标节点。
2.根据权利要求1所述的一种基于内存热插拔技术的容器调度方法,其特征在于,所述步骤S1中,目标节点为一个或多个。
3.根据权利要求1所述的一种基于内存热插拔技术的容器调度方法,其特征在于,执行所述步骤S3前还包括如下条件判断:
判断是否满足预建立的内存热插条件,如果满足,则继续执行,如果不满足,则发出调度失败报警。
4.根据权利要求3所述的一种基于内存热插拔技术的容器调度方法,其特征在于,所述预建立的内存热插条件包括设定目标节点最大内存上限和目标节点上的剩余虚拟插槽数大于或等于一。
5.根据权利要求1所述的一种基于内存热插拔技术的容器调度方法,其特征在于,所述步骤S3中的对目标节点进行内存热插,具体为,在目标节点所在的物理机上执行内存热插指令,为目标节点的虚拟插槽中添加虚拟内存块,并在目标节点内自动上线使用。
6.一种管理节点调度器,其特征在于,包括:
获取模块,用于获取容器任务所需内存及亲和标签,基于亲和标签,获取具有亲和性的目标节点;
判断模块,用于基于容器任务所需内存,判断该目标节点的内存是否足够,如果不足够,则获取目标节点待增加内存,并执行内存热插模块,否则执行调度模块;
内存热插模块,用于基于待增加内存,对目标节点进行内存热插;
调度模块,用于将容器任务调度至目标节点。
7.根据权利要求6所述的一种管理节点调度器,其特征在于,所述获取模块中,目标节点为一个或多个。
8.根据权利要求6所述的一种管理节点调度器,其特征在于,所述内存热插模块开始运行时还包括条件判断单元,该条件判断单元用于判断是否满足预建立的内存热插条件,如果满足,则继续执行,如果不满足,则发出调度失败报警。
9.根据权利要求8所述的一种管理节点调度器,其特征在于,所述预建立的内存热插条件包括设定目标节点最大内存上限和目标节点上的剩余虚拟插槽数大于或等于一。
10.根据权利要求6所述的一种管理节点调度器,其特征在于,所述内存热插模块包括热插单元,该热插单元用于在目标节点所在的物理机上执行内存热插指令,为目标节点的虚拟插槽中添加虚拟内存块,并在目标节点内自动上线使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910809325.7A CN110580194A (zh) | 2019-08-29 | 2019-08-29 | 基于内存热插拔技术的容器调度方法及管理节点调度器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910809325.7A CN110580194A (zh) | 2019-08-29 | 2019-08-29 | 基于内存热插拔技术的容器调度方法及管理节点调度器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110580194A true CN110580194A (zh) | 2019-12-17 |
Family
ID=68812391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910809325.7A Pending CN110580194A (zh) | 2019-08-29 | 2019-08-29 | 基于内存热插拔技术的容器调度方法及管理节点调度器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110580194A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005200A1 (en) * | 2001-06-29 | 2003-01-02 | Kumar Mohan J. | Platform and method for representing and supporting hot-plugged nodes |
US20070226449A1 (en) * | 2006-03-22 | 2007-09-27 | Nec Corporation | Virtual computer system, and physical resource reconfiguration method and program thereof |
CN102222014A (zh) * | 2011-06-16 | 2011-10-19 | 华中科技大学 | 基于内存热插拔的虚拟机动态内存管理系统 |
CN105487928A (zh) * | 2014-09-26 | 2016-04-13 | 联想(北京)有限公司 | 一种控制方法、装置及Hadoop系统 |
CN107111519A (zh) * | 2014-11-11 | 2017-08-29 | 亚马逊技术股份有限公司 | 用于管理和调度容器的系统 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
-
2019
- 2019-08-29 CN CN201910809325.7A patent/CN110580194A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005200A1 (en) * | 2001-06-29 | 2003-01-02 | Kumar Mohan J. | Platform and method for representing and supporting hot-plugged nodes |
US20070226449A1 (en) * | 2006-03-22 | 2007-09-27 | Nec Corporation | Virtual computer system, and physical resource reconfiguration method and program thereof |
CN102222014A (zh) * | 2011-06-16 | 2011-10-19 | 华中科技大学 | 基于内存热插拔的虚拟机动态内存管理系统 |
CN105487928A (zh) * | 2014-09-26 | 2016-04-13 | 联想(北京)有限公司 | 一种控制方法、装置及Hadoop系统 |
CN107111519A (zh) * | 2014-11-11 | 2017-08-29 | 亚马逊技术股份有限公司 | 用于管理和调度容器的系统 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100504827C (zh) | 在次序混乱的dma命令队列中建立命令次序 | |
CN112527449B (zh) | 一种集群节点标签创建方法、系统及电子设备和存储介质 | |
CN114741207A (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
CN109104491A (zh) | 一种微服务调用方法、装置、服务器及存储介质 | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN110162396A (zh) | 内存回收方法、装置、系统和存储介质 | |
CN103577469A (zh) | 数据库连接复用方法和装置 | |
CN102929770B (zh) | 嵌入式linux系统用户态任务独占的监测定位方法 | |
CN112035239B (zh) | 任务调度方法、装置、终端设备及存储介质 | |
CN109002286A (zh) | 基于同步编程的数据异步处理方法及装置 | |
CN113658351A (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN109766131A (zh) | 基于多线程技术实现软件智能化自动升级的系统及方法 | |
CN113760522A (zh) | 一种任务处理方法和装置 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN110580194A (zh) | 基于内存热插拔技术的容器调度方法及管理节点调度器 | |
CN115878333A (zh) | 进程组间的一致性判断方法、装置及设备 | |
CN111767082A (zh) | 计算芯片启动方法、装置和计算机系统 | |
CN109040491A (zh) | 挂机行为处理方法、装置、计算机设备及存储介质 | |
US11836523B2 (en) | Introspection of a containerized application in a runtime environment | |
US11507437B2 (en) | Deploying multiple different applications into a single short-lived container along with a master runtime | |
CN113254143B (zh) | 虚拟化网络功能网元编排调度方法、装置和系统 | |
CN114840238A (zh) | 软件升级方法、装置、电子设备及计算机可读存储介质 | |
CN114443302A (zh) | 容器集群扩容方法、系统、终端及存储介质 | |
CN105138406A (zh) | 一种任务处理方法、装置及系统 | |
CN111741097B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191217 |