CN107729126A - 一种容器云的任务调度方法和装置 - Google Patents
一种容器云的任务调度方法和装置 Download PDFInfo
- Publication number
- CN107729126A CN107729126A CN201610662906.9A CN201610662906A CN107729126A CN 107729126 A CN107729126 A CN 107729126A CN 201610662906 A CN201610662906 A CN 201610662906A CN 107729126 A CN107729126 A CN 107729126A
- Authority
- CN
- China
- Prior art keywords
- resource
- slave
- task
- idle
- cpu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 169
- 238000012216 screening Methods 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims description 137
- 238000012545 processing Methods 0.000 claims description 58
- 239000011159 matrix material Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 239000010410 layer Substances 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 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/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
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种容器云的任务调度方法,包括:获取各个从节点的空闲资源和运行信息;向框架发送资源邀请,接收所述框架根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。本发明还公开了一种容器云的任务调度装置。
Description
技术领域
本发明涉及业务支撑技术领域,尤其涉及一种容器云的任务调度方法和装置。
背景技术
随着容器化技术的发展,容器化技术正在成为应用交付的新标准,基于容器化技术的云平台将成为下一代云计算的核心。在部署容器云的平台中,容器的调度使用对于业务系统的正常运行和系统的稳健性起着非常关键的作用。各大互联网公司正逐渐的使用容器化技术代替传统的虚拟机技术。由于业务的扩展需要,对资源的需求分配也越来越高,在应用需求资源时,传统的资源调度分配方法不能均衡的分配资源,造成个别节点上的容器数过多而致使部署在节点上的业务应用过载。常用的方法是采用开源分布式资源管理框架(Mesos)对容器资源进行调度,Mesos的主(Master)节点作为资源整合的分配节点,Mesos的从(Slave)节点作为容器的宿主机。
Mesos采用双层调度架构,第一层Mesos将资源分配给框架,主节点根据框架(Framework)响应的资源需求信息,对资源列表进行过滤,再进行二级调度,任务调度系统的结构如图1所示。图1中,Mesos的调度工作流程采用双层调度架构进行调度,从节点主动的向主节点上报资源空闲情况,主节点根据获取的从节点的空闲资源情况向Framework发出资源邀约,资源邀约中的资源若满足Framework上的作业需求时,则Framework中的调度器(Scheduler)单元向主节点响应资源需求,主节点根据中央处理器(CPU)和内存资源对从节点进行过滤,在满足资源需求的剩余从节点中,再根据轮询调度算法进行节点的选取,并向Framework的线程池(Executor)分配资源并启动容器执行任务,保证作业的顺利执行。
虽然通过Mesos的两层调度框架可以完成作业的需求,且不会在资源不够的节点上运行任务。但在多数情况下,这种调度策略无法均衡的使用容器集群,合理的利用资源;导致节点的维护性变差,容器集群出现故障。在以下情况时会导致Mesos集群中的任务运行出现故障。例如:当有多个框架时,会给Mesos调度架构带来压力,会使相同框架下的任务较为集中,容错性无法保证;以及,在主节点得到资源需求响应后,采用轮询的调度算法,可能会使某些从节点的任务过多而导致系统崩溃、宕机等状况。在发生以上故障时,会导致某些节点出现运行过载、内存资源和中央处理器(CPU)资源耗尽等状况,严重时,导致业务系统故障,需要重新启动。
具体来说,现有技术的调度方法存在如下缺点:
1、现有的Mesos调度机制采用双层调度架构,第二层调度策略通常采用轮询的方式进行调度,导致某些从节点运行的容器过多,压力过大,任务分配不均衡;
2、在正常调度过程中,不同任务的资源需求差异较大,现有的Mesos调度方法没有考虑从节点的运行情况,只能硬性的分配任务,无法协调任务和节点之间的细粒度调度。
Mesos的资源调度异常会影响整个系统或业务的运行状况,对于核心系统或业务来说是不可接受的。
发明内容
有鉴于此,本发明实施例期望提供一种容器云的任务调度方法和装置,能够结合从节点的运行情况,将请求资源的任务均衡分配到各个从节点上执行,提高从节点的工作效率和系统的稳定性。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种容器云的任务调度方法,所述方法包括:
获取各个从节点的空闲资源和运行信息;
向框架发送资源邀请,接收所述框架根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;
根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。
上述方案中,所述资源邀请包括:各个从节点的空闲资源;
所述资源需求包括:执行任务所需的中央处理器CPU的个数、执行任务所需的内存资源;
所述空闲资源包括:空闲的中央处理器CPU的个数、空闲的内存资源;
所述运行信息包括:中央处理器CPU的占用率、内存资源的使用率和当前运行的进程个数。
上述方案中,所述根据资源需求和从节点的空闲资源筛选从节点;包括:
保留所述空闲的中央处理器CPU的个数大于或等于所述执行任务所需的中央处理器CPU的个数且所述空闲的内存资源大于或等于所述执行任务所需的内存资源的从节点;
删除所述空闲的中央处理器CPU的个数小于所述执行任务所需的中央处理器CPU的个数和/或所述空闲的内存资源小于所述执行任务所需的内存资源的从节点。
上述方案中,所述根据从节点的运行信息,从筛选后的各个从节点中确定任务从节点;包括:
根据所述从节点的运行信息,确定所述从节点的中央处理器CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例;
确定所述中央处理器CPU的占用率的权重、所述内存资源的使用率的权重和所述当前运行的进程个数占总集群进程数的比例的权重;
根据所述中央处理器CPU的占用率、所述中央处理器CPU的占用率的权重、所述内存资源的使用率、所述内存资源的使用率的权重、所述当前运行的进程个数占总集群进程数的比例和所述当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;
根据所述从节点的参考指标,从筛选后的各个从节点中选择满足设定条件的从节点作为任务从节点。
上述方案中,所述根据从节点的运行信息,确定所述从节点的中央处理器CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例,包括:
从所述从节点的运行信息中读取所述从节点的中央处理器CPU的占用率、内存资源的使用率和当前运行的进程个数;
获取所述从节点的总集群进程数,根据所述当前运行的进程个数和所述总集群进程数确定所述当前运行的进程个数占总集群进程数的比例。
本发明实施例提供了一种容器云的任务调度装置,所述装置包括:收集模块和分配模块;其中,
所述收集模块,用于获取各个从节点的空闲资源和运行信息;
所述分配模块,用于向框架发送资源邀请,接收所述框架根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;
根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。
上述方案中,所述资源邀请包括:各个从节点的空闲资源;
所述资源需求包括:执行任务所需的中央处理器CPU的个数、执行任务所需的内存资源;
所述空闲资源包括:空闲的中央处理器CPU的个数、空闲的内存资源;
所述运行信息包括:中央处理器CPU的占用率、内存资源的使用率和当前运行的进程个数。
上述方案中,所述分配模块,具体用于:
保留所述空闲的中央处理器CPU的个数大于或等于所述执行任务所需的中央处理器CPU的个数且所述空闲的内存资源大于或等于所述执行任务所需的内存资源的从节点;
删除所述空闲的中央处理器CPU的个数小于所述执行任务所需的中央处理器CPU的个数和/或所述空闲的内存资源小于所述执行任务所需的内存资源的从节点。
上述方案中,所述分配模块,具体用于:根据所述从节点的运行信息,确定所述从节点的中央处理器CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例;
确定所述中央处理器CPU的占用率的权重、所述内存资源的使用率的权重和所述当前运行的进程个数占总集群进程数的比例的权重;
根据所述中央处理器CPU的占用率、所述中央处理器CPU的占用率的权重、所述内存资源的使用率、所述内存资源的使用率的权重、所述当前运行的进程个数占总集群进程数的比例和所述当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;
根据所述从节点的参考指标,从筛选后的各个从节点中选择满足设定条件的从节点作为任务从节点。
上述方案中,所述分配模块,还用于:
从所述从节点的运行信息中读取所述从节点的中央处理器CPU的占用率、内存资源的使用率和当前运行的进程个数;
获取所述从节点的总集群进程数,根据所述当前运行的进程个数和所述总集群进程数确定所述当前运行的进程个数占总集群进程数的比例。
与现有技术相比,本发明提供的容器云的任务调度方法和装置,获取各个从节点的空闲资源和运行信息;向框架Framework发送资源邀请,接收所述框架Framework根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。本发明实施例提供的方法和装置,考虑从节点的CPU的占用率、内存资源的使用率以及运行的任务个数,把任务分发到各个从节点,提高从节点的工作效率和整个系统的稳定性;针对频繁性的任务分发、多任务、多框架下的资源分配能够很好的进行应对,保障系统和业务的稳定运行。
附图说明
图1为现有技术中容器云的任务调度系统结构示意图;
图2为本发明实施例提供的容器云的任务调度方法流程示意图;
图3为本发明实施例提供的容器云的任务调度装置结构示意图;
图4为本发明实施例提供的采用开源分布式资源管理框架的任务调度系统结构示意图;
图5为本发明实施例提供的主节点的收集模块和分配模块进行任务调度的流程示意图;
图6为本发明实施例提供的分配模块的处理流程示意图。
具体实施方式
本发明实施例中,获取各个从节点的空闲资源和运行信息;向框架(Framework)发送资源邀请,接收所述框架根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。
下面结合实施例对本发明再作进一步详细的说明。
如图2所示,为本发明实施例提供的容器云的任务调度方法流程示意图,所述方法包括:
步骤101:获取各个从(Slave)节点的空闲资源和运行信息;
步骤102:向框架(Framework)发送资源邀请,接收所述框架(Framework)根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;
步骤103:根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。
具体的,步骤101中,主(Master)节点接收各个从节点上报的空闲资源,主节点采集各个从节点的运行信息。
所述从节点根据设定的时间间隔向主节点上报自身的空闲资源;所述时间间隔根据任务调度系统的性能要求设定;
所述运行信息可以保存在从节点的缓存区中,主节点从缓存区中采集从节点的运行信息。
所述空闲资源包括:空闲的中央处理器(CPU,Central Processing Unit)的个数和空闲的内存资源;
所述运行信息包括:CPU的占用率、内存资源的使用率、当前运行的进程个数。
这里,所述当前运行的进程个数可以理解为从节点上当前运行的容器个数;从节点上运行的一个容器相当于从节点上的一个进程。
主节点将各个从节点及其对应的空闲资源、运行信息保存到资源列表中。
具体的,步骤102中,主节点向Framework发送资源邀请;这里,所述资源邀请中包括:各个从节点的空闲资源,所述空闲资源包括:空闲的CPU的个数和空闲的内存资源。
Framework根据接收到所述资源邀请,根据资源邀请判断从节点是否满足要求,不满足要求时,则拒绝所述资源邀请继续等待,满足要求时则向主节点反馈资源需求。所述资源需求包括:执行任务所需的CPU的个数、执行任务所需的内存资源。
这里,Framwork根据资源邀请判断从节点是否满足要求包括:
判断所述从节点的空闲资源中的空闲的CPU的个数是否超过执行任务所需的CPU的个数,及所述从节点的空闲资源中的空闲的内存资源是否超过执行任务所需的内存资源;均超过时则认为满足要求,任一不超过则认为不满足要求。
步骤102中,主节点接收Framework发送的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;具体包括:
主节点保留所述空闲的CPU的个数大于或等于所述资源需求中的执行任务所需的CPU的个数且所述空闲的内存资源大于或等于所述资源需求中的执行任务所需的内存资源的从节点;
主节点删除所述空闲的CPU的个数小于所述资源需求中的执行任务所需的CPU的个数和/或所述空闲的内存资源小于所述资源需求中的执行任务所需的内存资源的从节点。
这里,主节点将各个从节点及其对应的空闲资源、运行信息保存到资源列表中;主节点通过步骤102的方法对资源列表中的从节点进行筛选。具体的,主节点可以遍历资源列表中的各个从节点,获得各个从节点的空闲资源;将从节点的空闲资源与资源需求进行比对;
判断所述从节点的空闲的CPU的个数是否大于或等于所述资源需求中的执行任务所需的CPU的个数且所述从节点的空闲的内存资源是否大于或等于所述资源需求中的执行任务所需的内存资源;
所述从节点的空闲的CPU的个数大于或等于所述资源需求中的执行任务所需的CPU的个数且所述从节点的空闲的内存资源大于或等于所述资源需求中的执行任务所需的内存资源时,则在资源列表中保留该从节点;
所述从节点的空闲的CPU的个数小于所述资源需求中的执行任务所需的CPU的个数和/或所述从节点的空闲的内存资源小于所述资源需求中的执行任务所需的内存资源时,则在资源列表中删除该从节点。
通过上述方法完成对资源列表中各个从节点的筛选。
需要说明的是,启动容器时,Framework会指定运行容器所需要的内存资源和CPU的个数,即可确定所述资源需求。
具体的,所述步骤103中,主节点根据从节点的运行信息,从筛选后的各个从节点中确定任务从节点;包括:
步骤1031:主节点根据从节点的运行信息,确定从节点的CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例;
步骤1032:确定所述CPU的占用率的权重、内存资源的使用率的权重和当前运行的进程个数占总集群进程数的比例的权重;
步骤1033:根据所述CPU的占用率、CPU的占用率的权重、内存资源的使用率、内存资源的使用率的权重、当前运行的进程个数占总集群进程数的比例和当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;
步骤1034:根据所述从节点的参考指标,从筛选后的各个从节点中选择满足设定条件的从节点作为任务从节点;所述设定条件包括:所述从节点的参考指标最低,或所述从节点的参考指标低于指标阈值。
具体来说,步骤1031包括:主节点从资源列表中的获取经过步骤102筛选后的各个从节点的运行信息;从所述运行信息中获取CPU的占有率、内存资源的使用率和当前运行的进程个数;获取从节点的总集群进程数,结合所述当前运行的进程个数计算当前运行的进程个数占总集群进程数的比例。
从节点上的一个进程相当于从节点上运行的一个容器;总集群进程数表示该集群中可运行的所有容器的个数。
这里,通过Framework的接口根据从节点的信息计算获得各个从节点的总集群进程数,主节点获取从节点的总集群进程数。
具体来说,步骤1032包括,选择CPU的占用率、内存资源的使用率和当前运行的进程个数占总集群进程数的比例作为参考因素,运用层次分析法构建判断矩阵,求取各个参考因素的权值;
所述判断矩阵如下式(1)所示:
其中,aij表示指标i对于指标j的重要程度;
指标i包括:CPU的占用率、内存资源的使用率和当前运行的进程个数占总集群进程数的比例;
指标j包括:CPU的占用率、内存资源的使用率和当前运行的进程个数占总集群进程数的比例;
根据所述判断矩阵获得各个参考因素的权值之后,根据一致性检验公式判断权值是否达标;一致性指标CI和一致性比率CR的公式如下式(2)所示:
其中,λmax是判断矩阵的最大特征根,n是比λmax小的最大整数,RI是随机一致性指标,其值参照表1;
表1随机一致性指标RI值
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
RI | 0 | 0 | 0.58 | 0.90 | 1.12 | 1.24 | 1.32 | 1.41 | 1.45 | 1.49 | 1.51 |
根据一致性检验公式确定一致性比率CR,当一致性比率CR<0.1时,认为构建的判断矩阵满足条件,计算的权值达标;当一致性比率CR≥0.1时,认为构建的判断矩阵不满足条件,更改上述判断矩阵中各个参考因素之间的相互影响程度,重新构建判断矩阵,并计算各个参考因素的权值。
具体来说,步骤1033:根据所述CPU的占用率、CPU的占用率的权重、内存资源的使用率、内存资源的使用率的权重、当前运行的进程个数占总集群进程数的比例和当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;
即:所述从节点的参考指标=权值1*指标1+权值2*指标2+权值3*指标3;
其中,指标1为从节点上的CPU的占用率,指标2为从节点上的内存资源的使用率,指标3为从节点上的当前运行的进程个数占总集群进程数的比例;
权值1为从节点上的CPU的占用率的权重,权值2为从节点上的内存资源的使用率的权重,权值3为从节点上的当前运行的进程个数占总集群进程数的比例的权重。
具体来说,步骤1034:根据所述从节点的参考指标,从筛选后的各个从节点中选择满足设定条件的从节点作为任务从节点;所述设定条件包括:所述从节点的参考指标最低,或所述从节点的参考指标低于指标阈值。
这里,所述从节点的参考指标越低,表示该从节点越优,能够更好的执行任务。本发明实施例中提供两种任务从节点的选择方法:
第一种,根据所述从节点的参考指标对资源列表中筛选后的各个从节点进行排序,选择参考指标最低的从节点作为任务从节点;
第二种,读取指标阈值,根据筛选后的各个从节点的参考指标和所述指标阈值,确定参考指标低于指标阈值的各个从节点,从确定的参考指标低于指标阈值的各个从节点中选择任意一个从节点作为任务从节点;
这里,所述指标阈值可以根据用户对系统性能、任务调度效率等要求确定,要求越高,指标阈值越低。
主节点确定任务从节点,调用框架(Framework)的调度器(Scheduler)在所述任务从节点上创建任务,并执行任务。
如图3所示,为本发明实施例提供的容器云的任务调度装置结构示意图;所述装置包括:收集模块和分配模块;其中,
所述收集模块,用于获取各个从节点的空闲资源和运行信息;
所述分配模块,用于向框架(Framework)发送资源邀请,接收所述框架(Framework)根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;
根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。
具体的,所述资源邀请包括:各个从节点的空闲资源;
所述资源需求包括:执行任务所需的CPU的个数、执行任务所需的内存资源;
所述空闲资源包括:空闲的CPU的个数、空闲的内存资源;
所述运行信息包括:CPU的占用率、内存资源的使用率和当前运行的进程个数。
具体的,所述分配模块,具体用于:保留所述空闲的CPU的个数大于或等于所述执行任务所需的CPU的个数且所述空闲的内存资源大于或等于所述执行任务所需的内存资源的从节点;
删除所述空闲的CPU的个数小于所述执行任务所需的CPU的个数和/或所述空闲的内存资源小于所述执行任务所需的内存资源的从节点。
所述分配模块,具体还用于:根据所述从节点的运行信息,确定所述从节点的CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例;
确定所述CPU的占用率的权重、所述内存资源的使用率的权重和所述当前运行的进程个数占总集群进程数的比例的权重;
根据所述CPU的占用率、所述CPU的占用率的权重、所述内存资源的使用率、所述内存资源的使用率的权重、所述当前运行的进程个数占总集群进程数的比例和所述当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;
根据所述从节点的参考指标,从筛选后的各个从节点中选择满足设定条件的从节点作为任务从节点;所述设定条件包括:所述从节点的参考指标最低,或所述从节点的参考指标低于指标阈值。
这里,从节点的参考指标=权值1*指标1+权值2*指标2+权值3*指标3;其中,指标1为CPU的占用率,指标2为内存资源的使用率,指标3为从节点上的进程个数/总集群进程数的值,权值1为CPU的占用率的权重,权值2为内存资源的使用率的权重,权值3为当前运行的进程个数占总集群进程数的比例的权重。
所述分配模块,具体还用于:从所述从节点的运行信息中读取所述从节点的CPU的占用率、内存资源的使用率和当前运行的进程个数;
获取所述从节点的总集群进程数,根据所述当前运行的进程个数和所述总集群进程数确定所述当前运行的进程个数占总集群进程数的比例。
所述分配模块,具体用于:根据所述从节点的参考指标对筛选后的各个从节点进行排序,根据排序结果,选择参考指标最低的从节点作为任务从节点。
所述分配模块,具体用于:读取指标阈值,根据筛选后的各个从节点的参考指标和所述指标阈值确定参考指标低于所述指标阈值的各个从节点,从确定的参考指标低于指标阈值的各个从节点中选择任意一个从节点作为任务从节点;
所述指标阈值可以根据用户对系统性能、任务调度效率等要求确定,要求越高,指标阈值越低。
如图4所示,为本发明实施例提供的采用开源分布式资源管理框架的任务调度系统结构示意图;所述系统采用开源分布式资源管理框架(Mesos)对任务进行调度,主节点用于将请求资源的任务分配到从节点上,由从节点执行任务,主节点包括收集模块和分配模块,通过收集模块采集各个从节点的运行信息,通过分配模块对任务进行分配;从节点用于向主节点上报资源,并在其上执行任务。
对容器资源进行调度时,Mesos的主节点(Mesos Master节点)为分配节点,Mesos的从节点(Mesos Slave节点)为容器的宿主机。
从节点按一定时间间隔定期向主节点上报空闲资源的情况,主节点收集从节点的运行信息,并将空闲资源、运行信息保存在资源列表中;所述空闲资源包括:空闲的CPU的个数和空闲的内存资源;所述运行信息包括:CPU的占用率、内存资源的使用率和当前运行的进程个数。
主节点接收所有的空闲资源和从节点的运行信息后,主节点向框架(Framework)发送资源邀约,描述从节点的空闲资源,Framework根据资源需求情况进行判定,如果满足资源条件,则Framework上的调度器(Scheduler)响应主节点,并告知其执行任务所需资源情况,包括执行任务所需的CPU的个数和内存资源。主节点根据执行任务所需的CPU的个数和内存资源,对资源列表中的从节点进行筛选,最后主节点通过调度算法在筛选后的各个从节点中选择任务从节点,在任务从节点上执行任务。
所述调度算法包括:确定所述从节点的CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例、CPU的占用率的权重、所述内存资源的使用率的权重和所述当前运行的进程个数占总集群进程数的比例的权重;根据所述中央处理器CPU的占用率、所述中央处理器CPU的占用率的权重、所述内存资源的使用率、所述内存资源的使用率的权重、所述当前运行的进程个数占总集群进程数的比例和所述当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;根据所述从节点的参考指标,在筛选后的各个从节点中选择满足设定条件的从节点作为任务从节点;所述设定条件包括:所述从节点的参考指标最低,或所述从节点的参考指标低于指标阈值。
如图5所示,为本发明实施例提供的主节点的收集模块和分配模块进行任务调度的流程示意图;从节点按一定时间间隔定期的向主节点上报空闲资源的情况,包括空闲的CPU的个数和空闲的内存资源;同时主节点上的收集模块收集从节点的运行信息,包括CPU的占用率、内存资源的使用率、当前运行的进程个数;主节点获知所有的空闲资源和从节点的运行信息后,触发主节点的分配模块,主节点向框架(Framework)发送资源邀约,描述从节点上的可用资源,Framework根据资源的需求情况判定从节点是否满足资源条件,如果满足资源条件,则Framework上的Scheduler就响应主节点,并告知其所需资源情况,包括执行任务所需的CPU的个数和内存资源。主节点根据得到的执行任务所需的CPU的个数和内存资源对资源列表中的从节点进行筛选,最后主节点再通过分配模块的调度算法从筛选后的从节点中选择合适的从节点启动并执行任务。
如图6所示,为本发明实施例提供的分配模块的处理流程示意图;分配模块根据从节点空闲的CPU的个数和空闲的内存资源,筛选从节点;针对筛选后获得的各个从节点,分配模块确定从节点的CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例;确定所述CPU的占用率的权重、内存资源的使用率的权重和当前运行的进程个数占总集群进程数的比例的权重;根据所述CPU的占用率、CPU的占用率的权重、内存资源的使用率、内存资源的使用率的权重、当前运行的进程个数占总集群进程数的比例和当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;根据从节点的参考指标,从筛选后的从节点中选择满足设定条件的从节点作为任务从节点;所述设定条件包括:所述从节点的参考指标最低,或所述从节点的参考指标低于指标阈值;由选择的任务从节点执行任务。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种容器云的任务调度方法,其特征在于,所述方法包括:
获取各个从节点的空闲资源和运行信息;
向框架发送资源邀请,接收所述框架根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;
根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。
2.根据权利要求1所述的方法,其特征在于,所述资源邀请包括:各个从节点的空闲资源;
所述资源需求包括:执行任务所需的中央处理器CPU的个数、执行任务所需的内存资源;
所述空闲资源包括:空闲的中央处理器CPU的个数、空闲的内存资源;
所述运行信息包括:中央处理器CPU的占用率、内存资源的使用率和当前运行的进程个数。
3.根据权利要求2所述的方法,其特征在于,所述根据资源需求和从节点的空闲资源筛选从节点;包括:
保留所述空闲的中央处理器CPU的个数大于或等于所述执行任务所需的中央处理器CPU的个数且所述空闲的内存资源大于或等于所述执行任务所需的内存资源的从节点;
删除所述空闲的中央处理器CPU的个数小于所述执行任务所需的中央处理器CPU的个数和/或所述空闲的内存资源小于所述执行任务所需的内存资源的从节点。
4.根据权利要求1所述的方法,其特征在于,所述根据从节点的运行信息,从筛选后的各个从节点中确定任务从节点;包括:
根据所述从节点的运行信息,确定所述从节点的中央处理器CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例;
确定所述中央处理器CPU的占用率的权重、所述内存资源的使用率的权重和所述当前运行的进程个数占总集群进程数的比例的权重;
根据所述中央处理器CPU的占用率、所述中央处理器CPU的占用率的权重、所述内存资源的使用率、所述内存资源的使用率的权重、所述当前运行的进程个数占总集群进程数的比例和所述当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;
根据所述从节点的参考指标,从筛选后的各个从节点中选择满足设定条件的从节点作为任务从节点。
5.根据权利要求4所述的方法,其特征在于,所述根据从节点的运行信息,确定所述从节点的中央处理器CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例,包括:
从所述从节点的运行信息中读取所述从节点的中央处理器CPU的占用率、内存资源的使用率和当前运行的进程个数;
获取所述从节点的总集群进程数,根据所述当前运行的进程个数和所述总集群进程数确定所述当前运行的进程个数占总集群进程数的比例。
6.一种容器云的任务调度装置,其特征在于,所述装置包括:收集模块和分配模块;其中,
所述收集模块,用于获取各个从节点的空闲资源和运行信息;
所述分配模块,用于向框架发送资源邀请,接收所述框架根据所述资源邀请反馈的资源需求,根据所述资源需求和所述从节点的空闲资源筛选从节点;
根据所述从节点的运行信息,从筛选后的各个从节点中确定任务从节点,在所述任务从节点上创建任务。
7.根据权利要求6所述的装置,其特征在于,所述资源邀请包括:各个从节点的空闲资源;
所述资源需求包括:执行任务所需的中央处理器CPU的个数、执行任务所需的内存资源;
所述空闲资源包括:空闲的中央处理器CPU的个数、空闲的内存资源;
所述运行信息包括:中央处理器CPU的占用率、内存资源的使用率和当前运行的进程个数。
8.根据权利要求7所述的装置,其特征在于,所述分配模块,具体用于:
保留所述空闲的中央处理器CPU的个数大于或等于所述执行任务所需的中央处理器CPU的个数且所述空闲的内存资源大于或等于所述执行任务所需的内存资源的从节点;
删除所述空闲的中央处理器CPU的个数小于所述执行任务所需的中央处理器CPU的个数和/或所述空闲的内存资源小于所述执行任务所需的内存资源的从节点。
9.根据权利要求6所述的装置,其特征在于,所述分配模块,具体用于:根据所述从节点的运行信息,确定所述从节点的中央处理器CPU的占用率、内存资源的使用率、当前运行的进程个数占总集群进程数的比例;
确定所述中央处理器CPU的占用率的权重、所述内存资源的使用率的权重和所述当前运行的进程个数占总集群进程数的比例的权重;
根据所述中央处理器CPU的占用率、所述中央处理器CPU的占用率的权重、所述内存资源的使用率、所述内存资源的使用率的权重、所述当前运行的进程个数占总集群进程数的比例和所述当前运行的进程个数占总集群进程数的比例的权重确定所述从节点的参考指标;
根据所述从节点的参考指标,从筛选后的各个从节点中选择满足设定条件的从节点作为任务从节点。
10.根据权利要求9所述的装置,其特征在于,所述分配模块,还用于:
从所述从节点的运行信息中读取所述从节点的中央处理器CPU的占用率、内存资源的使用率和当前运行的进程个数;
获取所述从节点的总集群进程数,根据所述当前运行的进程个数和所述总集群进程数确定所述当前运行的进程个数占总集群进程数的比例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610662906.9A CN107729126A (zh) | 2016-08-12 | 2016-08-12 | 一种容器云的任务调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610662906.9A CN107729126A (zh) | 2016-08-12 | 2016-08-12 | 一种容器云的任务调度方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107729126A true CN107729126A (zh) | 2018-02-23 |
Family
ID=61200954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610662906.9A Pending CN107729126A (zh) | 2016-08-12 | 2016-08-12 | 一种容器云的任务调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729126A (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647093A (zh) * | 2018-05-09 | 2018-10-12 | 厦门南讯软件科技有限公司 | 一种分布式任务处理系统及其使用方法 |
CN108833532A (zh) * | 2018-06-13 | 2018-11-16 | 中国联合网络通信集团有限公司 | 基于物联网的服务处理方法、装置和系统 |
CN109324906A (zh) * | 2018-10-22 | 2019-02-12 | 王瑞明 | 云计算平台中选择处理节点的方法 |
CN109413069A (zh) * | 2018-10-29 | 2019-03-01 | 北京百悟科技有限公司 | 基于区块链的虚拟网站防火墙的应用方法及装置 |
CN109639791A (zh) * | 2018-12-06 | 2019-04-16 | 广东石油化工学院 | 一种容器环境下云工作流调度方法及系统 |
CN109656713A (zh) * | 2018-11-30 | 2019-04-19 | 河海大学 | 一种基于边缘计算框架的容器调度方法 |
CN109753356A (zh) * | 2018-12-25 | 2019-05-14 | 北京友信科技有限公司 | 一种容器资源调度方法、装置及计算机可读存储介质 |
CN109995862A (zh) * | 2019-03-29 | 2019-07-09 | 北京百度网讯科技有限公司 | 一种资源调度方法及终端 |
CN110058866A (zh) * | 2019-04-18 | 2019-07-26 | 中国联合网络通信集团有限公司 | 集群组件安装方法及设备 |
CN110209490A (zh) * | 2018-04-27 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及相关设备 |
CN110399200A (zh) * | 2019-06-26 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种云平台资源调度方法和装置 |
CN111078516A (zh) * | 2019-11-26 | 2020-04-28 | 支付宝(杭州)信息技术有限公司 | 分布式性能测试方法、装置、电子设备 |
CN111143063A (zh) * | 2019-12-24 | 2020-05-12 | 青岛海尔科技有限公司 | 任务的资源预约方法及装置 |
CN111198754A (zh) * | 2018-11-19 | 2020-05-26 | 中移(杭州)信息技术有限公司 | 一种任务调度方法及装置 |
CN111258757A (zh) * | 2020-01-10 | 2020-06-09 | 深圳前海环融联易信息科技服务有限公司 | 任务自动编排方法、装置、计算机设备以及存储介质 |
CN111666128A (zh) * | 2020-05-25 | 2020-09-15 | 北京思特奇信息技术股份有限公司 | 一种容器集群组建系统及方法 |
CN111752822A (zh) * | 2019-03-29 | 2020-10-09 | 上海哔哩哔哩科技有限公司 | 一种容器化压测调度方法、计算机设备及可读存储介质 |
CN112416534A (zh) * | 2020-11-23 | 2021-02-26 | 北京中电普华信息技术有限公司 | 一种基于Agent的任务管理方法及装置 |
CN112860386A (zh) * | 2019-11-27 | 2021-05-28 | 上海哔哩哔哩科技有限公司 | 分布式主从系统中节点的切换方法 |
CN112860787A (zh) * | 2019-11-27 | 2021-05-28 | 上海哔哩哔哩科技有限公司 | 分布式主从系统中主节点的切换方法、主节点设备和存储介质 |
CN113032117A (zh) * | 2021-03-10 | 2021-06-25 | 北京百度网讯科技有限公司 | 深度学习框架的训练方法、装置及存储介质 |
CN113301087A (zh) * | 2020-07-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN113590331A (zh) * | 2021-08-05 | 2021-11-02 | 山东派盟网络科技有限公司 | 一种任务处理方法、控制装置及存储介质 |
CN114579271A (zh) * | 2022-02-28 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 任务调度方法、分布式系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753461A (zh) * | 2010-01-14 | 2010-06-23 | 中国建设银行股份有限公司 | 实现负载均衡的方法、负载均衡服务器以及集群系统 |
US20150215172A1 (en) * | 2014-01-30 | 2015-07-30 | Cisco Technology, Inc. | Service-Function Chaining |
CN105338082A (zh) * | 2015-10-30 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 基于应用代理服务器的负载均衡方法及装置 |
-
2016
- 2016-08-12 CN CN201610662906.9A patent/CN107729126A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753461A (zh) * | 2010-01-14 | 2010-06-23 | 中国建设银行股份有限公司 | 实现负载均衡的方法、负载均衡服务器以及集群系统 |
US20150215172A1 (en) * | 2014-01-30 | 2015-07-30 | Cisco Technology, Inc. | Service-Function Chaining |
CN105338082A (zh) * | 2015-10-30 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 基于应用代理服务器的负载均衡方法及装置 |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209490B (zh) * | 2018-04-27 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及相关设备 |
CN110209490A (zh) * | 2018-04-27 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及相关设备 |
CN108647093A (zh) * | 2018-05-09 | 2018-10-12 | 厦门南讯软件科技有限公司 | 一种分布式任务处理系统及其使用方法 |
CN108833532A (zh) * | 2018-06-13 | 2018-11-16 | 中国联合网络通信集团有限公司 | 基于物联网的服务处理方法、装置和系统 |
CN108833532B (zh) * | 2018-06-13 | 2021-11-30 | 中国联合网络通信集团有限公司 | 基于物联网的服务处理方法、装置和系统 |
CN109324906A (zh) * | 2018-10-22 | 2019-02-12 | 王瑞明 | 云计算平台中选择处理节点的方法 |
CN109413069A (zh) * | 2018-10-29 | 2019-03-01 | 北京百悟科技有限公司 | 基于区块链的虚拟网站防火墙的应用方法及装置 |
CN109413069B (zh) * | 2018-10-29 | 2021-11-12 | 北京百悟科技有限公司 | 基于区块链的虚拟网站防火墙的应用方法及装置 |
CN111198754B (zh) * | 2018-11-19 | 2023-07-14 | 中移(杭州)信息技术有限公司 | 一种任务调度方法及装置 |
CN111198754A (zh) * | 2018-11-19 | 2020-05-26 | 中移(杭州)信息技术有限公司 | 一种任务调度方法及装置 |
CN109656713A (zh) * | 2018-11-30 | 2019-04-19 | 河海大学 | 一种基于边缘计算框架的容器调度方法 |
CN109656713B (zh) * | 2018-11-30 | 2022-09-16 | 河海大学 | 一种基于边缘计算框架的容器调度方法 |
CN109639791A (zh) * | 2018-12-06 | 2019-04-16 | 广东石油化工学院 | 一种容器环境下云工作流调度方法及系统 |
CN109753356A (zh) * | 2018-12-25 | 2019-05-14 | 北京友信科技有限公司 | 一种容器资源调度方法、装置及计算机可读存储介质 |
CN111752822A (zh) * | 2019-03-29 | 2020-10-09 | 上海哔哩哔哩科技有限公司 | 一种容器化压测调度方法、计算机设备及可读存储介质 |
CN109995862B (zh) * | 2019-03-29 | 2021-10-15 | 北京百度网讯科技有限公司 | 一种资源调度方法及终端 |
CN109995862A (zh) * | 2019-03-29 | 2019-07-09 | 北京百度网讯科技有限公司 | 一种资源调度方法及终端 |
CN110058866B (zh) * | 2019-04-18 | 2023-07-18 | 中国联合网络通信集团有限公司 | 集群组件安装方法及设备 |
CN110058866A (zh) * | 2019-04-18 | 2019-07-26 | 中国联合网络通信集团有限公司 | 集群组件安装方法及设备 |
CN110399200A (zh) * | 2019-06-26 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种云平台资源调度方法和装置 |
CN111078516A (zh) * | 2019-11-26 | 2020-04-28 | 支付宝(杭州)信息技术有限公司 | 分布式性能测试方法、装置、电子设备 |
CN112860787A (zh) * | 2019-11-27 | 2021-05-28 | 上海哔哩哔哩科技有限公司 | 分布式主从系统中主节点的切换方法、主节点设备和存储介质 |
CN112860386A (zh) * | 2019-11-27 | 2021-05-28 | 上海哔哩哔哩科技有限公司 | 分布式主从系统中节点的切换方法 |
CN111143063A (zh) * | 2019-12-24 | 2020-05-12 | 青岛海尔科技有限公司 | 任务的资源预约方法及装置 |
CN111143063B (zh) * | 2019-12-24 | 2023-08-18 | 青岛海尔科技有限公司 | 任务的资源预约方法及装置 |
CN111258757A (zh) * | 2020-01-10 | 2020-06-09 | 深圳前海环融联易信息科技服务有限公司 | 任务自动编排方法、装置、计算机设备以及存储介质 |
CN111666128A (zh) * | 2020-05-25 | 2020-09-15 | 北京思特奇信息技术股份有限公司 | 一种容器集群组建系统及方法 |
CN111666128B (zh) * | 2020-05-25 | 2023-07-04 | 北京思特奇信息技术股份有限公司 | 一种容器集群组建系统及方法 |
CN113301087A (zh) * | 2020-07-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN113301087B (zh) * | 2020-07-21 | 2024-04-02 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN112416534A (zh) * | 2020-11-23 | 2021-02-26 | 北京中电普华信息技术有限公司 | 一种基于Agent的任务管理方法及装置 |
CN113032117A (zh) * | 2021-03-10 | 2021-06-25 | 北京百度网讯科技有限公司 | 深度学习框架的训练方法、装置及存储介质 |
CN113590331A (zh) * | 2021-08-05 | 2021-11-02 | 山东派盟网络科技有限公司 | 一种任务处理方法、控制装置及存储介质 |
CN114579271A (zh) * | 2022-02-28 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 任务调度方法、分布式系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729126A (zh) | 一种容器云的任务调度方法和装置 | |
US20200287961A1 (en) | Balancing resources in distributed computing environments | |
CN108881495B (zh) | 资源分配方法、装置、计算机设备及存储介质 | |
WO2017166803A1 (zh) | 一种资源调度方法及装置 | |
CN107040479B (zh) | 一种云计算资源调节的方法和装置 | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN108337109A (zh) | 一种资源分配方法及装置和资源分配系统 | |
CN107066332A (zh) | 分布式系统及其调度方法和调度装置 | |
Sun et al. | Rose: Cluster resource scheduling via speculative over-subscription | |
US11496413B2 (en) | Allocating cloud computing resources in a cloud computing environment based on user predictability | |
CN109783225B (zh) | 一种多租户大数据平台的租户优先级管理方法及系统 | |
CN103812886B (zh) | 计算机集群资源分配系统和方法 | |
CN110196773B (zh) | 统一调度计算资源的多时间尺度安全校核系统及方法 | |
CN114090176A (zh) | 一种基于Kubernetes的容器调度方法 | |
CN112015549B (zh) | 一种基于服务器集群的调度节点的选择抢占方法及系统 | |
CN110221920A (zh) | 部署方法、装置、存储介质及系统 | |
CN111190691A (zh) | 适用于虚拟机的自动迁移方法、系统、装置及存储介质 | |
CN111381957B (zh) | 面向分布式平台的服务实例精细化调度方法及系统 | |
CN111930493A (zh) | 集群中NodeManager状态管理方法、装置及计算设备 | |
CN1512380A (zh) | 基于系统级诊断信息的负载衡量方法 | |
CN107203256B (zh) | 一种网络功能虚拟化场景下的节能分配方法与装置 | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和系统 | |
CN114721810A (zh) | 边缘云资源协同调度方法、云管理平台和边缘云节点 | |
CN116680078A (zh) | 云计算资源调度方法、装置、设备以及计算机存储介质 | |
CN116360922A (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: 20180223 |