CN108228354A - 调度方法、系统、计算机设备和介质 - Google Patents

调度方法、系统、计算机设备和介质 Download PDF

Info

Publication number
CN108228354A
CN108228354A CN201711498194.2A CN201711498194A CN108228354A CN 108228354 A CN108228354 A CN 108228354A CN 201711498194 A CN201711498194 A CN 201711498194A CN 108228354 A CN108228354 A CN 108228354A
Authority
CN
China
Prior art keywords
scheduling
container set
grouping
scheduling container
calculate node
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
CN201711498194.2A
Other languages
English (en)
Other versions
CN108228354B (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.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Hangzhou Langhe Technology Co Ltd
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 Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN201711498194.2A priority Critical patent/CN108228354B/zh
Publication of CN108228354A publication Critical patent/CN108228354A/zh
Application granted granted Critical
Publication of CN108228354B publication Critical patent/CN108228354B/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施方式提供了一种调度方法。该方法包括:分别对至少一个待调度容器集合和至少一个计算节点进行分组,所述待调度容器集合包括至少一个容器,以及为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点。通过对待调度容器集合以及计算节点进行分组,并将属于同一分组内的待调度容器集合与计算节点进行匹配,本发明的方法使得组内的匹配过程可以串行处理,从而避免了资源竞争引发的冲突,并且不同组间的匹配过程可以并行处理,从而提高调度效率。此外,本发明的实施方式提供了一种调度系统。

Description

调度方法、系统、计算机设备和介质
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及一种调度方法、系统、计算机设备和介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着虚拟化技术的发展,容器(container)作为一种轻量级的虚拟化技术,近年来发展迅速。容器技术为不同的应用程序创造了独立的运行环境,实现了资源隔离、配置与安全保障,能够满足应用按需分配的资源需求以及保证应用的隔离性和可用性。
为了满足大型应用的需求,实践中往往需要将很多容器部署在计算机集群中进行统一管理并对外提供服务。容器集群管理工具目前有Google公司的Kubernetes,Docker公司的Docker Swarm,CloudFoundry公司的Diego等。以Kuberentes为例,Kubernetes是由Google开源的容器集群管理系统,为在分布式集群环境下大规模容器化的应用提供资源调度、部署运行、服务发现、弹性伸缩等功能。Kubernetes通过在线方式监控容器集群状态,判断容器运行状态是否符合用户的配置,以决定是否要创建或删除容器。
资源调度是容器集群管理系统需要解决的一个重要问题,资源调度是指为一个待调度的容器通过一定的规则在集群的众多计算节点中选择一个适合创建该容器的计算节点,调度器一般需要考虑待调度容器需要的资源(多少CPU、多少Memory、多少硬盘等)以及一些其它约束,例如是否需要创建在指定位置、是否需要把该容器与和它相同类型的其它容器分散创建在集群中等等。
目前,已经出现一些针对容器集群的资源调度方法。例如,调度器在给待调度容器挑选计算节点时,对集群中的所有计算节点做遍历式挑选。又例如,多个调度器独立同时运行,同时对集群所有待调度容器在相同的计算节点集合中进行并行调度。再例如,多个调度器同时运行,但是多个调度器之间相互通讯,每个调度器在调度时参考其他调度器的信息。
发明内容
但是,上述现有技术中的各种资源调度方法中,或者是串行处理导致调度时间长,调度效率低,或者是独立并行处理导致在调度过程中容易出现资源冲突情况,或者是通信并行处理导致的实现逻辑复杂等。
为此,非常需要一种改进的调度方法,以使资源调度效率提高、实现简单、运维方便。
在本上下文中,本发明的实施方式期望提供一种调度方法和调度系统。
在本发明实施方式的第一方面中,提供了一种调度方法,包括:分别对至少一个待调度容器集合和至少一个计算节点进行分组,所述待调度容器集合包括至少一个容器;为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点。
在本发明的一个实施例中,上述为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点,包括:同一分组内的待调度容器集合的所述匹配的过程串行处理;不同分组内的待调度容器集合的所述匹配的过程并行处理。
在本发明的另一实施例中,上述为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点,包括:确定当前待调度容器集合需要的计算资源;确定与所述当前待调度容器集合属于同一分组内的至少一个计算节点的剩余的计算资源;根据所述当前待调度容器集合需要的计算资源以及所述至少一个计算节点的剩余的计算资源为当前待调度容器集合匹配计算节点。
在本发明的又一个实施例中,该方法还包括:为每个所述分组创建存储队列,所述存储队列用于存储属于该分组内的至少一个待调度容器集合,其中,所述存储队列采用先进先出的存储模式。
在本发明的再一个实施例中,上述存储队列用于存储属于该分组内的至少一个待调度容器集合,包括:通过分组队列对所述至少一个待调度容器集合进行分组后,将属于每个分组内的至少一个待调度容器集合存储到相应分组的存储队列中。
在本发明的再一个实施例中,该方法还包括:创建线程池,所述线程池中包括至少一个线程;每个所述至少一个线程并行地对相应的分组内的待调度容器集合进行所述匹配处理。
在本发明的再一个实施例中,上述每个所述至少一个线程并行地对相应的分组内的待调度容器集合进行所述匹配处理,包括:每个所述至少一个线程对相应分组中的待调度容器集合处理数量累计达到预设阈值时,主动让出所述线程以供其他分组使用。
在本发明实施方式的第二方面中,提供了一种调度系统,包括分组模块和匹配模块。分组模块分别对至少一个待调度容器集合和至少一个计算节点进行分组,所述待调度容器集合包括至少一个容器。匹配模块为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点。
在本发明的一个实施例中,上述为述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点,包括:同一分组内的待调度容器集合的所述匹配的过程串行处理;不同分组内的待调度容器集合的所述匹配的过程并行处理。
在本发明的另一个实施例中,上述为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点,包括:确定当前待调度容器集合需要的计算资源;确定与所述当前待调度容器集合属于同一分组内的至少一个计算节点的剩余的计算资源;根据所述当前待调度容器集合需要的计算资源以及所述至少一个计算节点的剩余的计算资源为当前待调度容器集合匹配计算节点。
在本发明的又一个实施例中,该系统还包括:存储队列创建模块,为每个所述分组创建存储队列,所述存储队列用于存储属于该分组内的至少一个待调度容器集合,其中,所述存储队列采用先进先出的存储模式。
在本发明的再一个实施例中,上述存储队列用于存储属于该分组内的至少一个待调度容器集合,包括:通过分组队列对所述至少一个待调度容器集合进行分组后,将属于每个分组内的至少一个待调度容器集合存储到相应分组的存储队列中。
在本发明的再一个实施例中,该系统还包括:线程池创建模块,创建线程池,所述线程池中包括至少一个线程;每个所述至少一个线程并行地对相应的分组内的待调度容器集合进行所述匹配处理。
在本发明的再一个实施例中,上述每个所述至少一个线程并行地对相应的分组内的待调度容器集合进行所述匹配处理,包括:每个所述至少一个线程对相应分组中的待调度容器集合处理数量累计达到预设阈值时,主动让出所述线程以供其他分组使用。
在本发明实施方式的第三方面中,提供了一种计算设备,包括:一个或多个存储器,存储有可执行指令;以及一个或多个处理器,执行所述可执行指令,以实现上述实施例中任一项的调度方法。
在本发明实施方式的第四方面中,提供了一种介质,其上存储有可执行指令,所述指令在被处理器执行时实现上述实施例中任一项的调度方法。
根据本发明实施方式的调度方法和调度系统,通过对待调度容器集合以及计算节点进行分组,并且实现属于同一分组内的待调度容器集合与计算节点进行匹配,本发明的方法使得组内的匹配过程可以串行处理,从而避免了资源竞争引发的冲突,并且不同组间的匹配过程可以并行处理,从而提高调度效率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性示出了根据本发明实施例的调度方法和调度系统的应用场景;
图2示意性示出了根据本发明实施例的调度方法的流程图;
图3示意性示出了根据本发明另一实施例的调度方法的流程图;
图4示意性示出了根据本发明实施例的计算机可读介质的示意图;
图5示意性示出了根据本发明实施例的调度系统的框图;
图6示意性示出了根据本发明另一实施例的调度系统的框图;
图7示意性示出了根据本发明实施例的计算设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种调度方法、系统、计算设备和介质。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,为了提高调度效率并且减少调度过程中的冲突现象,可以将待调度容器集合以及计算节点进行分组,为待调度容器集合匹配属于同一分组内的计算节点,以实现同一分组内的待调度容器集合的匹配过程可以串行处理,不同分组内的待调度容器集合的匹配过程可以并行处理。从而实现在提高了调度效率的同时,也基本上避免了资源冲突的问题。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,图1示意性示出了根据本发明实施例的调度方法和调度系统的应用场景100。
如图1所示,该应用场景100包括多个待调度容器集合110、多个计算节点120以及调度器130,其中,调度器130包括多个线程。
根据本发明实施例,一个容器集合(Pod)中可以包括一个或者多个容器,一个容器集合中的一个或多个容器可以共享同一网络环境(例如,IP、端口等)。例如,在Kubernetes里Pod是进行调度的基本单位,Pod里的所有容器匹配到同一个计算节点上。
在本发明实施例中,计算节点(Node)130上拥有一定的CPU、内存等计算资源,容器需要利用这些计算资源才能正常运行。
调度器130例如可以用于为待调度的容器集合在计算节点中找到满足其所需的CPU、内存及其他所有限制条件的合适的计算节点。调度例如可以理解为为容器集合匹配计算节点的过程。
在本发明实施例中,分别将多个待调度容器集合110以及多个计算节点120进行分组。例如,在多租户环境下,可以将具有同一租户属性的待调度容器集合110与计算节点120分为一组。例如,有待调度容器集合P1、P2、P3、P4和P5,有计算节点1、2、3、4、5和6,则可以按待调度容器集合和计算节点的租户属性将其进行分组,例如,待调度容器集合P1和P2的租户属性为租户A,计算节点1、2、5的租户属性也为租户A,则可以将待调度容器集合P1、P2、计算节点1、2、5分为同一组。
调度器130为待调度容器集合匹配属于同一分组内的计算节点,在本公开实施例中,在同一组内的调度过程可以串行处理,不同组间的调度过程可以并行处理,从而实现调度的高效以及低冲突率。
示例性方法
下面结合图1的应用场景,参考图2~图3来描述根据本发明示例性实施方式的用于调度的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2示意性示出了根据本发明实施例的调度方法的流程图。
如图2所示,该方法包括操作S201~S202。
在操作S201,分别对至少一个待调度容器集合和至少一个计算节点进行分组,其中,待调度容器集合包括至少一个容器。
根据本公开实施例,容器集合(Pod)中可以包括一个或多个容器,一个Pod中的一个或多个容器可以共享同一网络环境(例如,IP、端口等)。例如,在Kubemetes里Pod是进行调度的基本单位,Pod里的所有容器匹配到同一个计算节点上。
根据本公开实施例,计算节点(Node)上拥有一定的CPU、内存等计算资源,容器需要利用这些计算资源才能正常运行。可以理解,计算节点可以是虚拟机也可以是物理机,一个计算节点上可以部署一个或多个容器集合。
在本公开实施例中,对待调度容器集合和计算节点进行分组拆分,例如可以根据租户属性分别对待调度容器集合和计算节点进行分组。例如,在多租户环境下,每个Pod和Node都有唯一的租户属性,可以将具有同一租户属性的待调度容器集合与计算节点分为一组,例如,可以按照租户ID对待调度容器集合和计算节点进行分组。
可以理解,上述通过租户属性对待调度容器集合以及计算节点进行分组仅是本公开的一实施例,本公开不限定分组的方式,本领域技术人员可以根据实际情况选择分组的方式,例如,可以根据资源类型、或者区域等条件进行分组处理。
在操作S202,为至少一个待调度容器集合匹配与该待调度容器集合属于同一分组内的计算节点。
根据本公开实施例,同一分组内的待调度Pod可以调度到属于同一分组内的Node上,即,每个分组内的待调度Pod可以在本组内的至少一个Node里进行调度选择。
在本公开实施例中,可以实现同一分组内的待调度容器集合与计算节点的匹配过程串行处理,不同分组内的待调度容器集合与计算节点的匹配过程并行处理。
本公开实施例中的组内串行处理可以通过以下方式实现。例如,可以是在给Pod挑选Node时通过对集群中所有Node做的顺序遍历来实现的,如果同时有多个新建的Pod需要调度,按照其创建顺序一个接一个的串行调度。具体地,每个Pod与所有Node进行匹配判断时,可以经过两个阶段:Predicates和Priorities,它们都是由一系列预定配置的计算函数组成。Predicates阶段会根据Pod的描述需求检查所有Predicates函数条件是否都满足(例如,在每个Pod在所有Node范围内做Predicates函数条件匹配时,也可以将多个Node之间串行计算改为并行计算),只有Predicates函数全都满足的Node才会进入后面的priorities阶段,否则丢弃该Node,这个阶段最终得到一批满足Pod所有条件的Node列表。Priorities阶段则对上一阶段的Node列表再依次进行最优筛选,每一个Node都需要分别用这些Priorities函数对Node做与Pod的匹配度计算打分,再将这些函数的打分结果累加,得到该Node与Pod最终的调度匹配得分。其余所有Node的调度流程都是如此,最后进入Priorities阶段的所有Node中得分最高的Node就是Pod最终要匹配的Node。
可以理解,上述举例中的串行处理的实现方式仅为本公开一实施例,本公开不限制同一分组内的待调度容器集合与计算节点的匹配过程的具体工作方式。
例如,为待调度容器集合匹配与该待调度容器集合属于同一分组内的计算节点也可以为:确定当前待调度容器集合需要的计算资源;确定同一分组内的至少一个计算节点的剩余的计算资源;以及根据当前待调度容器集合需要的计算资源以及至少一个计算节点的剩余的计算资源为当前待调度容器集合匹配计算节点。
根据本公开实施例,同一组内的多个待调度容器集合可以按照顺序依次进行计算节点的匹配处理,但是不同分组内的待调度容器集合的计算节点的匹配处理则可以同时进行。
本公开实施例通过将待调度容器集合以及计算节点按照一定规则进行分组处理,同一分组内的待调度容器集合只能使用同一分组内的计算节点的计算资源,缩小了处理范围,避免了调度过程中的资源竞争引发的冲突状况。
本公开的一些实施例中实现同一分组内的待调度容器集合与计算节点的匹配过程串行处理,从而避免了资源竞争引发的冲突,不同分组内的待调度容器集合与计算节点的匹配过程并行处理,从而提高调度效率。
可以理解,本公开提供了一种调度方法,通过对待调度对象以及被调度计算资源进行分组,同一分组内的待调度对象只能使用同一分组内的被调度计算资源,从而避免了调度过程中的资源竞争引发的冲突状况,但是本公开不限制待调度对象的种类,待调度对象可以是容器集合、也可以是虚拟机、或者可以是物理机、还可以是计算任务等。
图3示意性示出了根据本发明另一实施例的调度方法的流程图。
如图3所示,该方法包括操作S201以及S301~S303。其中,操作S201与上述参考图2描述的方法相同或者类似,在此不再赘述。
在操作S301中,为每个分组创建存储队列,存储队列用于存储属于该分组内的至少一个待调度容器集合,其中,存储队列采用先进先出的存储模式。
根据本公开实施例,一个集群中的Pod和Node的数量是不断变化的,例如,根据用户需求,会有Pod和/或Node的增加或者删除,因此每个分组内的Pod和Node也需要动态调整。本公开实施例提供了一种分组队列,该分组队列例如可以是带分组功能的先进先出的队列,通过该分组队列对至少一个待调度容器集合或者至少一个计算节点进行分组后,将属于每个分组内的至少一个待调度容器集合或至少一个计算节点存储到相应分组的存储队列中。
例如,多个尚未分组的待调度容器集合首先进入到分组队列中,该分组队列判断待调度容器集合所述的分组,然后将该待调度容器集合存储到相应分组的存储队列中。分组队列可以以先进先出的模式工作,多个尚未分组的待调度容器集合可以依次进入该分组队列,然后该分组队列根据待调度容器集合的属性依次将该些待调度容器集合存储到相应分组的存储队列中。可以理解,本公开实施例中的分组队列的对可管理的分组数可以没有个数限制,该分组队列可以根据入队/出队的对象(如容器集合或计算节点)的实际情况自行判断是否需要创建新的分组或者删除空的分组。
在本公开实施例中,每个分组可以配置有相应的存储队列,用于存储已经经过分组但是尚未进行匹配调度的待调度容器集合,该存储队列可以以先进先出的模式工作。
在操作S302,创建线程池,线程池中包括至少一个线程。
根据本公开实施例,可以创建线程池,通过线程池中的线程实现待调度容器集合与计算节点的匹配。例如,可以为每个分组配置一个线程处理该分组的匹配过程,也可以预设固定数量的线程,根据一定的规则处理各个分组的匹配过程。
在操作S303,每个所述至少一个线程并行地对相应的分组内的待调度容器集合进行匹配处理。
根据本公开实施例,可以创建多个线程,多个线程可以并行地实现不同分组内的待调度容器集合的计算节点匹配处理。
例如,可以预设100个线程(仅为示例),每个有待调度容器集合的分组按照创建的先后顺序各占用一个线程,100个线程耗尽后剩余有待调度容器集合的分组可以等待。例如,如果100个线程被耗尽了,剩余的待调度容器集合的分组则需要等待其他分组处理结束后让出的线程。
在本公开实施例中,每个线程对相应分组中的待调度容器集合一旦处理数量累计达到预设阈值时,就会主动让出该线程以供其他分组可以使用该线程。
例如,已经占用一个线程的分组一次最多连续调度10个Pod后就主动让出占用的线程,如果该分组内还有待调度的Pod就留在该分组的先进先出队列中,等待下一次的处理,这样所有分组都能公平地占用线程资源。
在本公开实施例中,通过分组队列以及存储队列可以实现按照创建顺序快速分组的效果。并且,通过创建多个线程,每个线程独立处理一个分组内的待调度容器的调度问题,多个线程并行处理不同分组内的待调度容器的调度问题,在不产生资源竞争引发冲突的情况下,大幅度地提高了调度效率。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的、用于实现调度方法的计算机可读存储介质进行说明,该计算机可读存储介质上存储有可执行指令,所述指令在被处理器执行时实现上述方法实施例中任一项上述的调度方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于图表的数据处理方法中的步骤,例如,所述计算设备可以执行如图2所示的操作S201:分别对至少一个待调度容器集合和至少一个计算节点进行分组,待调度容器集合包括至少一个容器;操作S202:为至少一个待调度容器集合匹配与该待调度容器集合属于同一分组内的计算节点。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图4所示,描述了根据本发明的实施方式的用于图表的数据处理的程序产品40,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性装置
在介绍了本发明示例性实施方式的介质之后,接下来,参考图5~图6对本发明示例性实施方式的调度系统进行说明。
图5示意性示出了根据本发明实施例的调度系统500的框图。
如图5所示,调度系统500可以包括分组模块510和匹配模块520。
分组模块510可以分别对至少一个待调度容器集合和至少一个计算节点进行分组,待调度容器集合包括至少一个容器。根据本公开实施例,分组模块510例如可以执行上文参考图2描述的操作S201,在此不再赘述。
匹配模块520可以为至少一个待调度容器集合匹配与该待调度容器集合属于同一分组内的计算节点。根据本公开实施例,匹配模块520例如可以执行上文参考图2描述的操作S202,在此不再赘述。
本公开实施例通过将待调度容器集合以及计算节点按照一定规则进行分组处理,同一分组内的待调度容器集合只能使用同一分组内的计算节点的计算资源,缩小了处理粒度,避免了调度过程中的资源竞争引发的冲突状况。
本公开的一些实施例中实现同一分组内的待调度容器集合与计算节点的匹配过程串行处理,从而避免了资源竞争引发的冲突,不同分组内的待调度容器集合与计算节点的匹配过程并行处理,从而提高调度效率。
图6示意性示出了根据本发明另一实施例的调度系统600的框图。
如图6所示,调度系统600可以包括分组模块510、匹配模块520、存储队列创建模块530、以及线程池创建模块540。其中,分组模块510和匹配模块520与上述参考图5描述的模块相同或类似,在此不再赘述。
存储队列创建模块530为每个分组创建存储队列,存储队列用于存储属于该分组内的至少一个待调度容器集合或者至少一个计算节点,其中,存储队列采用先进先出的存储模式。根据本公开实施例,存储队列创建模块530例如可以执行上文参考图3描述的操作S301,在此不再赘述。
线程池创建模块540创建线程池,线程池中包括至少一个线程。根据本公开实施例,线程池创建模块540例如可以执行上文参考图3描述的操作S302,在此不再赘述。
在本公开实施例中,通过分组队列以及存储队列可以实现按照创建顺序快速分组的效果。并且,通过创建多个线程,每个线程独立处理一个分组内的待调度容器的调度问题,多个线程并行处理不同分组内的待调度容器的调度问题,在不产生资源竞争引发冲突的情况下,大幅度地提高了调度效率。
可以理解的是,分组模块510、匹配模块520、存储队列创建模块530、以及线程池创建模块540可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,分组模块510、匹配模块520、存储队列创建模块530、以及线程池创建模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,分组模块510、匹配模块520、存储队列创建模块530、以及线程池创建模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图7对本发明示例性实施方式的、用于实现调度方法和调度系统的计算设备进行说明。
本发明实施例还提供了一种计算设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的信息呈现方法中的步骤。例如,所述计算设备可以执行如图2所示的操作S201:分别对至少一个待调度容器集合和至少一个计算节点进行分组,待调度容器集合包括至少一个容器;操作S202:为至少一个待调度容器集合匹配与该待调度容器集合属于同一分组内的计算节点。
下面参照图7来描述根据本发明的这种实施方式的用于实现调度方法的调度计算设备70。如图7所示的计算设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算设备70以通用计算设备的形式表现。计算设备70的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件(包括存储单元702和处理单元701)的总线703。
总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)7021和/或高速缓存存储器7022,还可以进一步包括只读存储器(ROM)7023。
存储单元702还可以包括具有一组(至少一个)程序模块5024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备70也可以与一个或多个外部设备704(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与计算设备70交互的设备通信,和/或与使得计算设备70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口705进行。并且,计算设备70还可以通过网络适配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与计算设备70的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了调度系统的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种调度方法,包括:
分别对至少一个待调度容器集合和至少一个计算节点进行分组,所述待调度容器集合包括至少一个容器;
为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点。
2.根据权利要求1所述的方法,其中,为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点,包括:
同一分组内的待调度容器集合的所述匹配的过程串行处理;
不同分组内的待调度容器集合的所述匹配的过程并行处理。
3.根据权利要求1所述的方法,所述为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点,包括:
确定当前待调度容器集合需要的计算资源;
确定与所述当前待调度容器集合属于同一分组内的至少一个计算节点的剩余的计算资源;
根据所述当前待调度容器集合需要的计算资源以及所述至少一个计算节点的剩余的计算资源为当前待调度容器集合匹配计算节点。
4.根据权利要求1所述的方法,还包括:
为每个所述分组创建存储队列,所述存储队列用于存储属于该分组内的至少一个待调度容器集合,其中,所述存储队列采用先进先出的存储模式。
5.根据权利要求4所述的方法,其中,所述存储队列用于存储属于该分组内的至少一个待调度容器集合,包括:
通过分组队列对所述至少一个待调度容器集合进行分组后,将属于每个分组内的至少一个待调度容器集合存储到相应分组的存储队列中。
6.根据权利要求1所述的方法,还包括:
创建线程池,所述线程池中包括至少一个线程;
每个所述至少一个线程并行地对相应的分组内的待调度容器集合进行所述匹配处理。
7.根据权利要求6所述的方法,其中,所述每个所述至少一个线程并行地对相应的分组内的待调度容器集合进行所述匹配处理,包括:
每个所述至少一个线程对相应分组中的待调度容器集合处理数量累计达到预设阈值时,主动让出所述线程以供其他分组使用。
8.一种调度系统,包括:
分组模块,分别对至少一个待调度容器集合和至少一个计算节点进行分组,所述待调度容器集合包括至少一个容器;
匹配模块,为所述至少一个待调度容器集合匹配与所述待调度容器集合属于同一分组内的计算节点。
9.一种计算设备,包括:
一个或多个存储器,存储有可执行指令;以及
一个或多个处理器,执行所述可执行指令,以实现根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,所述指令在被处理器执行时实现根据权利要求1~7中任一项所述的方法。
CN201711498194.2A 2017-12-29 2017-12-29 调度方法、系统、计算机设备和介质 Active CN108228354B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711498194.2A CN108228354B (zh) 2017-12-29 2017-12-29 调度方法、系统、计算机设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711498194.2A CN108228354B (zh) 2017-12-29 2017-12-29 调度方法、系统、计算机设备和介质

Publications (2)

Publication Number Publication Date
CN108228354A true CN108228354A (zh) 2018-06-29
CN108228354B CN108228354B (zh) 2022-03-18

Family

ID=62642342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711498194.2A Active CN108228354B (zh) 2017-12-29 2017-12-29 调度方法、系统、计算机设备和介质

Country Status (1)

Country Link
CN (1) CN108228354B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117265A (zh) * 2018-07-12 2019-01-01 北京百度网讯科技有限公司 在集群中调度作业的方法、装置、设备及存储介质
CN109343947A (zh) * 2018-09-26 2019-02-15 郑州云海信息技术有限公司 一种资源调度方法及装置
CN109634735A (zh) * 2018-12-18 2019-04-16 郑州云海信息技术有限公司 一种调度Pod的方法及装置
CN109783218A (zh) * 2019-01-24 2019-05-21 中国—东盟信息港股份有限公司 一种基于Kubernetes容器集群的与时间相关联的容器调度方法
CN109947435A (zh) * 2019-03-12 2019-06-28 中国工商银行股份有限公司 服务器集群软件环境的部署方法及系统
CN110704165A (zh) * 2019-10-08 2020-01-17 浪潮云信息技术有限公司 一种容器高可用部署方法
CN111008063A (zh) * 2019-11-15 2020-04-14 苏州浪潮智能科技有限公司 一种基于docker的用户绑定调度方法及系统
CN111090503A (zh) * 2018-10-24 2020-05-01 上海雪湖信息科技有限公司 一种基于fpga芯片的高性价比云计算服务系统
CN111159002A (zh) * 2019-12-31 2020-05-15 山东有人信息技术有限公司 一种基于分组的数据边缘采集方法、边缘采集设备及系统
CN112202860A (zh) * 2020-09-22 2021-01-08 广州品唯软件有限公司 一种容器流量调整方法、装置及系统
CN112363811A (zh) * 2020-11-16 2021-02-12 中国电子科技集团公司电子科学研究院 一种人工智能计算资源调度方法及计算机可读存储介质
CN113495787A (zh) * 2020-04-03 2021-10-12 Oppo广东移动通信有限公司 资源分配方法、装置、存储介质及电子设备
CN113590317A (zh) * 2021-07-27 2021-11-02 杭州朗和科技有限公司 离线业务的调度方法、装置、介质和计算设备
CN113760502A (zh) * 2021-02-02 2021-12-07 北京沃东天骏信息技术有限公司 用于集群的资源分配方法、装置及系统
WO2022002148A1 (zh) * 2020-07-01 2022-01-06 中兴通讯股份有限公司 资源调度方法、资源调度系统及设备
CN114390106A (zh) * 2022-03-24 2022-04-22 广州医科大学附属第五医院 基于Kubernetes容器资源的调度方法、调度器及调度系统
CN114443302A (zh) * 2022-01-27 2022-05-06 苏州浪潮智能科技有限公司 容器集群扩容方法、系统、终端及存储介质
CN114706596A (zh) * 2022-04-11 2022-07-05 中国电信股份有限公司 容器部署方法、资源调度方法、装置、介质和电子设备
WO2024016596A1 (zh) * 2022-07-21 2024-01-25 天翼云科技有限公司 容器集群调度的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572308A (zh) * 2015-02-10 2015-04-29 飞狐信息技术(天津)有限公司 计算资源分配方法、分布式计算方法及装置
EP3101870A1 (en) * 2014-02-24 2016-12-07 Huawei Technologies Co., Ltd. Storage resource scheduling method and storage calculation system
CN106897132A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种服务器任务调度的方法以及装置
CN107450971A (zh) * 2017-06-29 2017-12-08 北京五八信息技术有限公司 任务处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3101870A1 (en) * 2014-02-24 2016-12-07 Huawei Technologies Co., Ltd. Storage resource scheduling method and storage calculation system
CN104572308A (zh) * 2015-02-10 2015-04-29 飞狐信息技术(天津)有限公司 计算资源分配方法、分布式计算方法及装置
CN106897132A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种服务器任务调度的方法以及装置
CN107450971A (zh) * 2017-06-29 2017-12-08 北京五八信息技术有限公司 任务处理方法及装置

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117265A (zh) * 2018-07-12 2019-01-01 北京百度网讯科技有限公司 在集群中调度作业的方法、装置、设备及存储介质
CN109343947A (zh) * 2018-09-26 2019-02-15 郑州云海信息技术有限公司 一种资源调度方法及装置
CN111090503A (zh) * 2018-10-24 2020-05-01 上海雪湖信息科技有限公司 一种基于fpga芯片的高性价比云计算服务系统
CN111090503B (zh) * 2018-10-24 2023-07-21 上海雪湖信息科技有限公司 一种基于fpga芯片的高性价比云计算服务系统
CN109634735A (zh) * 2018-12-18 2019-04-16 郑州云海信息技术有限公司 一种调度Pod的方法及装置
CN109783218A (zh) * 2019-01-24 2019-05-21 中国—东盟信息港股份有限公司 一种基于Kubernetes容器集群的与时间相关联的容器调度方法
CN109947435A (zh) * 2019-03-12 2019-06-28 中国工商银行股份有限公司 服务器集群软件环境的部署方法及系统
CN110704165A (zh) * 2019-10-08 2020-01-17 浪潮云信息技术有限公司 一种容器高可用部署方法
CN111008063A (zh) * 2019-11-15 2020-04-14 苏州浪潮智能科技有限公司 一种基于docker的用户绑定调度方法及系统
CN111008063B (zh) * 2019-11-15 2022-07-19 苏州浪潮智能科技有限公司 一种基于docker的用户绑定调度方法及系统
CN111159002A (zh) * 2019-12-31 2020-05-15 山东有人信息技术有限公司 一种基于分组的数据边缘采集方法、边缘采集设备及系统
CN111159002B (zh) * 2019-12-31 2023-04-28 山东有人物联网股份有限公司 一种基于分组的数据边缘采集方法、边缘采集设备及系统
CN113495787A (zh) * 2020-04-03 2021-10-12 Oppo广东移动通信有限公司 资源分配方法、装置、存储介质及电子设备
WO2022002148A1 (zh) * 2020-07-01 2022-01-06 中兴通讯股份有限公司 资源调度方法、资源调度系统及设备
CN113961335A (zh) * 2020-07-01 2022-01-21 中兴通讯股份有限公司 资源调度方法、资源调度系统及设备
CN112202860A (zh) * 2020-09-22 2021-01-08 广州品唯软件有限公司 一种容器流量调整方法、装置及系统
CN112202860B (zh) * 2020-09-22 2023-07-14 广州品唯软件有限公司 一种容器流量调整方法、装置及系统
CN112363811A (zh) * 2020-11-16 2021-02-12 中国电子科技集团公司电子科学研究院 一种人工智能计算资源调度方法及计算机可读存储介质
CN113760502A (zh) * 2021-02-02 2021-12-07 北京沃东天骏信息技术有限公司 用于集群的资源分配方法、装置及系统
CN113590317A (zh) * 2021-07-27 2021-11-02 杭州朗和科技有限公司 离线业务的调度方法、装置、介质和计算设备
CN114443302A (zh) * 2022-01-27 2022-05-06 苏州浪潮智能科技有限公司 容器集群扩容方法、系统、终端及存储介质
CN114390106A (zh) * 2022-03-24 2022-04-22 广州医科大学附属第五医院 基于Kubernetes容器资源的调度方法、调度器及调度系统
CN114706596A (zh) * 2022-04-11 2022-07-05 中国电信股份有限公司 容器部署方法、资源调度方法、装置、介质和电子设备
CN114706596B (zh) * 2022-04-11 2023-12-01 中国电信股份有限公司 容器部署方法、资源调度方法、装置、介质和电子设备
WO2024016596A1 (zh) * 2022-07-21 2024-01-25 天翼云科技有限公司 容器集群调度的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN108228354B (zh) 2022-03-18

Similar Documents

Publication Publication Date Title
CN108228354A (zh) 调度方法、系统、计算机设备和介质
CN105808328B (zh) 任务调度的方法、装置和系统
CN108363615B (zh) 用于可重构处理系统的任务分配方法和系统
US11775354B2 (en) Reducing overlay network overhead across container hosts
US9846589B2 (en) Virtual machine placement optimization with generalized organizational scenarios
RU2597556C2 (ru) Структура компьютерного кластера для выполнения вычислительных задач и способ функционирования указанного кластера
CN109743199A (zh) 基于微服务的容器化管理系统
CN105518620B (zh) 一种网卡配置方法及资源管理中心
CN107526645B (zh) 一种通信优化方法及系统
WO2016112701A9 (zh) 异构多核可重构计算平台上任务调度的方法和装置
WO2021155642A1 (zh) 数据处理方法、装置、分布式数据流编程框架及相关组件
CN110162388A (zh) 一种任务调度方法、系统及终端设备
US20090031312A1 (en) Method and Apparatus for Scheduling Grid Jobs Using a Dynamic Grid Scheduling Policy
CN106385329B (zh) 资源池的处理方法、装置和设备
CN109992404A (zh) 集群计算资源调度方法、装置、设备及介质
CN103312763B (zh) 客户端系统、管理服务器、工作区环境设置方法和工作区环境设置程序
US20210049146A1 (en) Reconfigurable distributed processing
US8849888B2 (en) Candidate set solver with user advice
CN109408489A (zh) 数据稽核方法及系统
CN108694089A (zh) 使用非贪婪调度算法的并行计算架构
CN110100255A (zh) 区域有效、可重新配置、节能、速度有效的神经网络基板
Ke et al. Aggregation on the fly: Reducing traffic for big data in the cloud
CN109542398A (zh) 一种业务系统生成方法、装置及计算机可读存储介质
CN105843995A (zh) 一种基于模型驱动的ima系统时间资源配置验证方法
CN110247818A (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
CP01 Change in the name or title of a patent holder

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd.

CP01 Change in the name or title of a patent holder