CN111475277A - 一种资源分配方法、系统、设备及机器可读存储介质 - Google Patents

一种资源分配方法、系统、设备及机器可读存储介质 Download PDF

Info

Publication number
CN111475277A
CN111475277A CN201910062292.4A CN201910062292A CN111475277A CN 111475277 A CN111475277 A CN 111475277A CN 201910062292 A CN201910062292 A CN 201910062292A CN 111475277 A CN111475277 A CN 111475277A
Authority
CN
China
Prior art keywords
hardware
resource
target
application program
resources
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
Application number
CN201910062292.4A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910062292.4A priority Critical patent/CN111475277A/zh
Publication of CN111475277A publication Critical patent/CN111475277A/zh
Pending legal-status Critical Current

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/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
    • 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/5044Allocation 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 hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种资源分配方法、系统、设备及机器可读存储介质,该方法包括:共享资源扩展调度器获取第一应用程序的占用资源数量,根据可扩展硬件的可用资源数量和占用资源数量,从多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;将第一应用程序与目标可扩展硬件的绑定关系发送给设备资源管理器;设备资源管理器接收到绑定关系后,将目标可扩展硬件分配给第一应用程序,以使第一应用程序使用目标可扩展硬件的资源。通过本申请的技术方案,可以避免资源的浪费,支持多应用程序的资源共享。

Description

一种资源分配方法、系统、设备及机器可读存储介质
技术领域
本申请涉及计算机技术领域,尤其是涉及一种资源分配方法、系统、设备及机器可读存储介质。
背景技术
随着云计算技术的不断成熟,容器技术逐步成为业界的发展热点,各主流云计算平台均提供容器服务。Kubernetes是用于自动部署、扩展和管理容器化应用程序的开源系统,对集群内容器的生命周期进行管理,结合自身的健康检查及错误恢复机制,实现集群内部应用层的高可用性。
例如,Kubernetes可以为容器化的应用程序分配可扩展硬件的资源,以支持应用程序的运行。但是,原生Kubernetes只能为应用程序分配整数颗粒度的可扩展硬件的所有资源,多个应用程序无法共享同一个可扩展硬件的资源,从而导致资源的浪费。
发明内容
本申请提供一种基于容器的资源分配方法,该方法包括:
共享资源扩展调度器获取第一应用程序的占用资源数量;
所述共享资源扩展调度器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
所述共享资源扩展调度器将所述第一应用程序与所述目标可扩展硬件进行绑定,并将所述第一应用程序与所述目标可扩展硬件的绑定关系发送给设备资源管理器;
所述设备资源管理器在接收到所述绑定关系后,将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
本申请提供一种基于容器的资源分配方法,所述方法包括:
获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
本申请提供一种基于容器的资源分配系统,包括:
共享资源扩展调度器,用于获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述第一应用程序与所述目标可扩展硬件进行绑定,并将所述第一应用程序与所述目标可扩展硬件的绑定关系发送给设备资源管理器;
设备资源管理器,用于在接收到所述绑定关系后,将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
本申请提供一种共享资源扩展调度器,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
本申请提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
基于上述技术方案,本申请实施例中,可以利用可扩展硬件的可用资源数量与应用程序的占用资源数量,为应用程序选择目标可扩展硬件,将目标可扩展硬件分配给应用程序,以使应用程序根据该占用资源数量使用目标可扩展硬件的资源。在上述过程中,只要目标可扩展硬件的可用资源数量大于或者等于占用资源数量即可,也就是说,目标可扩展硬件不是应用程序独自占用,这个目标可扩展硬件可以分配给多个应用程序,即多个应用程序可以共享目标可扩展硬件的资源,从而避免资源的浪费,支持多应用程序的资源共享。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的基于容器的资源分配方法的流程图;
图2是本申请另一种实施方式中的基于容器的资源分配方法的流程图;
图3是本申请一种实施方式中的应用场景示意图;
图4是本申请一种实施方式中的基于容器的资源分配装置的结构图;
图5是本申请一种实施方式中的共享资源扩展调度器的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种基于容器的资源分配方法,该方法可以应用于包括设备资源管理器和共享资源扩展调度器的集群,所述集群还可以包括多个计算节点,每个计算节点可以包括一个或者多个可扩展硬件。其中,该方法用于向应用程序(如容器化的应用程序)分配可扩展硬件的资源,而可扩展硬件的资源可以称为可扩展资源(ExtendedResource),对此不做限制。
在一个例子中,计算节点可以包括但不限于CPU(Central Processing Unit,中央处理器)、内存(Memory)、GPU(Graphics Processing Unit,图形处理器)、RDMA(RemoteDirect Memory Access,远程直接数据存取)、磁盘、网卡、云盘等物理硬件,可以将除CPU和内存之外的其它物理硬件称为可扩展硬件,也就是说,可扩展硬件可以包括但不限于GPU、RDMA、磁盘、网卡、云盘等。当然,可扩展硬件还可以为其它物理硬件,对此不做限制。可扩展硬件的单位可以为整数,如10个GPU,4个磁盘,2个网卡等,对此不做限制。
在一个例子中,应用程序可以是通过容器实现的应用程序(即在容器内部署的应用程序),当然,上述只是应用程序的示例,还可以采用其它方式实现应用程序,例如,通过虚拟机实现应用程序,对此应用程序的类型不做限制。
在传统方式中,当应用程序1向集群申请可扩展硬件的资源时,将可扩展硬件A的所有资源分配给应用程序1,即使应用程序1只使用可扩展硬件A的部分资源,也是将可扩展硬件A的所有资源分配给应用程序1,可扩展硬件A的资源无法分配给其它应用程序。当应用程序2向集群申请可扩展硬件的资源时,无法将可扩展硬件A的资源分配给应用程序2,而是将另一个可扩展硬件B的所有资源分配给应用程序2,可扩展硬件B的资源无法分配给其它应用程序。
与上述方式不同的是,本申请实施例中,当应用程序1向集群申请可扩展硬件的资源时,可以将可扩展硬件A的部分资源分配给应用程序1,且可以将可扩展硬件A的资源分配给应用程序1之外的其它应用程序。当应用程序2向集群申请可扩展硬件的资源时,可以将可扩展硬件A的资源分配给应用程序2,也就是说,应用程序1和应用程序2可以共享可扩展硬件A的资源,从而实现多个应用程序共享同一可扩展硬件的资源,提高资源使用效率,避免资源浪费。
参见图1所示,为基于容器的资源分配方法的流程示意图,该方法包括:
步骤101,共享资源扩展调度器获取第一应用程序的占用资源数量。
具体的,应用程序1在需要向集群申请可扩展硬件的资源时,应用程序1可以向共享资源扩展调度器发送资源申请请求,该资源申请请求可以携带应用程序1的占用资源数量,例如,占用资源数量为40MiB等,这个占用资源数量的大小可以与应用程序1有关,对此不做限制。共享资源扩展调度器在接收到该资源申请请求时,从该资源申请请求中获取到应用程序1的占用资源数量。
步骤102,共享资源扩展调度器根据可扩展硬件的可用资源数量和该占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,该目标可扩展硬件的可用资源数量大于或者等于该占用资源数量。
在一个例子中,步骤102之前,共享资源扩展调度器可以获取集群的每个可扩展硬件的可用资源数量,基于此,可以利用每个可扩展硬件的可用资源数量执行步骤102。为了获取每个可扩展硬件的可用资源数量,可以采用如下方式:
方式一、设备资源管理器可以获取可扩展硬件数量以及所有可扩展硬件的资源数量和,并将可扩展硬件数量以及资源数量和发送给共享资源扩展调度器;共享资源扩展调度器根据可扩展硬件数量以及资源数量和,确定可扩展硬件的可用资源数量;在资源表中记录可扩展硬件的可用资源数量。
例如,设备资源管理器可以收集可扩展硬件数量(3个)和所有可扩展硬件的资源数量和(即100*3MiB),并向共享资源扩展调度器发送资源上报消息,该资源上报消息可以包括可扩展硬件数量以及资源数量和。共享资源扩展调度器在接收到该资源上报消息后,根据可扩展硬件数量(如3)以及资源数量和(如300MiB),确定每个可扩展硬件的可用资源数量,即每个可扩展硬件的可用资源数量为100MiB。然后在资源表中记录每个可扩展硬件的可用资源数量,即存在3个可扩展硬件,每个可扩展硬件的可用资源数量为100MiB,参见表1所示。
表1
可扩展硬件 可用资源数量
可扩展硬件A 100MiB
可扩展硬件B 100MiB
可扩展硬件C 100MiB
方式二、设备资源管理器获取每个可扩展硬件的可用资源数量,将每个可扩展硬件的可用资源数量发送给共享资源扩展调度器,共享资源扩展调度器在接收到每个可扩展硬件的可用资源数量后,就可以确定每个可扩展硬件的可用资源数量,并在资源表中记录每个可扩展硬件的可用资源数量。
例如,设备资源管理器可以收集可扩展硬件A的可用资源数量100MiB、可扩展硬件B的可用资源数量100MiB、可扩展硬件C的可用资源数量100MiB,并向共享资源扩展调度器发送资源上报消息,该资源上报消息包括每个可扩展硬件的可用资源数量。共享资源扩展调度器接收到资源上报消息后,根据资源上报消息确定每个可扩展硬件的可用资源数量,在资源表中记录每个可扩展硬件的可用资源数量,即每个可扩展硬件的可用资源数量为100MiB,如表1所示。
基于方式一或者方式二,共享资源扩展调度器可以获取每个可扩展硬件的可用资源数量,并基于每个可扩展硬件的可用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件,且目标可扩展硬件的可用资源数量大于或者等于第一程序的占用资源数量。具体的,基于每个可扩展硬件的可用资源数量,共享资源扩展调度器可以从多个可扩展硬件中选择可扩展硬件作为候选可扩展硬件,该候选可扩展硬件的可用资源数量可以大于或等于占用资源数量。然后,将可用资源数量最小的候选可扩展硬件确定为目标可扩展硬件(若存在多个可用资源数量最小的候选可扩展硬件,可以将任意一个可用资源数量最小的候选可扩展硬件确定为目标可扩展硬件);或者,将可用资源数量最大的候选可扩展硬件确定为目标可扩展硬件;或者,将任意一个候选可扩展硬件确定为目标可扩展硬件,当然,上述只是几个示例,对此不做限制。
假设每个可扩展硬件的可用资源数量参见表2所示(在为应用程序分配可扩展硬件的资源后,可以对可用资源数量进行更新,具体更新过程参见后续实施例,在可用资源数量多次更新后,从表1变为表2),第一应用程序的占用资源数量为40MiB。显然,可扩展硬件B和可扩展硬件C的可用资源数量均大于占用资源数量,即,可扩展硬件B和可扩展硬件C均是候选可扩展硬件。从可扩展硬件B和可扩展硬件C中选择一个可扩展硬件作为目标可扩展硬件,例如,将可用资源数量最小的候选可扩展硬件(即可扩展硬件C)作为目标可扩展硬件。
表2
可扩展硬件 可用资源数量
可扩展硬件A 20MiB
可扩展硬件B 60MiB
可扩展硬件C 50MiB
在一个例子中,为了从集群的多个可扩展硬件中选择目标可扩展硬件,可以涉及两个过程,第一过程为过滤过程,第二过程为绑定过程。在过滤过程中,是从集群包括的多个计算节点中选择目标计算节点,也就是说,需要从所有计算节点中过滤出目标计算节点。在绑定过程中,是从目标计算节点的可扩展硬件中选择目标可扩展硬件,继而将目标可扩展硬件与第一应用程序绑定。
综上所述,共享资源扩展调度器根据可扩展硬件的可用资源数量和占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件,可以包括但不限于:在过滤过程,共享资源扩展调度器从集群包括的多个计算节点中选择目标计算节点;其中,目标计算节点的至少一个可扩展硬件的可用资源数量大于或等于占用资源数量。然后,在绑定过程,共享资源扩展调度器根据目标计算节点的可扩展硬件的可用资源数量和占用资源数量,从该目标计算节点的可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件。
例如,若计算节点1包括可扩展硬件11和可扩展硬件12,可扩展硬件11的可用资源数量大于占用资源数量,可扩展硬件12的可用资源数量小于占用资源数量,则可以确定计算节点1是目标计算节点。此外,若计算节点2包括可扩展硬件21和可扩展硬件22,可扩展硬件21的可用资源数量小于占用资源数量,可扩展硬件22的可用资源数量小于占用资源数量,则可以确定计算节点2不是目标计算节点。此外,若计算节点3包括可扩展硬件31,可扩展硬件31的可用资源数量大占用资源数量,则可以确定计算节点3是目标计算节点。
进一步的,由于目标计算节点包括计算节点1和计算节点3,因此,可以根据计算节点1的可扩展硬件11和可扩展硬件12的可用资源数量、计算节点3的可扩展硬件31的可用资源数量,从可扩展硬件11、可扩展硬件12和可扩展硬件31中选择一个可扩展硬件作为目标可扩展硬件。具体的选择方式可以参见上述实施例,例如,基于可扩展硬件11、可扩展硬件12和可扩展硬件31的可用资源数量,共享资源扩展调度器从这些可扩展硬件中选择可扩展硬件作为候选可扩展硬件,如可扩展硬件11和可扩展硬件31作为候选可扩展硬件,然后,将可用资源数量最小的候选可扩展硬件确定为目标可扩展硬件,对此不再赘述。
步骤103,共享资源扩展调度器将第一应用程序与目标可扩展硬件进行绑定,并将第一应用程序与目标可扩展硬件的绑定关系发送给设备资源管理器。
在一个例子中,共享资源扩展调度器将第一应用程序与目标可扩展硬件进行绑定后,基于第一应用程序的占用资源数量,还可以更新资源表中的目标可扩展硬件的可用资源数量。例如,第一应用程序的占用资源数量为40MiB,可扩展硬件C作为目标可扩展硬件,则更新资源表中的可扩展硬件C的可用资源数量,即可用资源数量为10MiB(50MiB-40MiB),参见表3所示。
表3
可扩展硬件 可用资源数量
可扩展硬件A 20MiB
可扩展硬件B 60MiB
可扩展硬件C 10MiB
在一个例子中,共享资源扩展调度器将第一应用程序与目标可扩展硬件进行绑定后,共享资源扩展调度器还可以将该目标可扩展硬件的硬件标识和该第一应用程序的占用资源数量记录到第一应用程序的注释信息(annotation)中。
步骤104,设备资源管理器在接收到该绑定关系(即目标可扩展硬件与第一应用程序的绑定关系)后,将目标可扩展硬件分配给第一应用程序,以使第一应用程序根据占用资源数量使用目标可扩展硬件的资源,例如,第一应用程序根据占用资源数量使用目标可扩展硬件的部分资源,而不是使用全部资源。
具体的,设备资源管理器可以直接将目标可扩展硬件分配给第一应用程序。或者,设备资源管理器可以获取目标可扩展硬件的可用资源数量,并获取第一应用程序的占用资源数量;若目标可扩展硬件的可用资源数量大于或者等于占用资源数量,则设备资源管理器将目标可扩展硬件分配给第一应用程序。
其中,设备资源管理器获取第一应用程序的占用资源数量,可以包括:设备资源管理器获取第一应用程序的注释信息,该注释信息可以包括目标可扩展硬件的硬件标识和第一应用程序的占用资源数量,并从该注释信息中获取第一应用程序的占用资源数量。具体的,共享资源扩展调度器已经将目标可扩展硬件的硬件标识和第一应用程序的占用资源数量记录到第一应用程序的注释信息中,因此,设备资源管理器从注释信息中获取第一应用程序的占用资源数量。
其中,设备资源管理器获取目标可扩展硬件的可用资源数量,包括:若存在第二应用程序的注释信息,且该第二应用程序的注释信息包括目标可扩展硬件的硬件标识和第二应用程序的占用资源数量,则设备资源管理器根据目标可扩展硬件的总资源数量和第二应用程序的占用资源数量,确定目标可扩展硬件的可用资源数量;或者,若不存在第二应用程序的注释信息,则设备资源管理器根据目标可扩展硬件的总资源数量,确定目标可扩展硬件的可用资源数量。
例如,假设第一应用程序的目标可扩展硬件为可扩展硬件C,若不存在第二应用程序的注释信息,则设备资源管理器根据可扩展硬件C的总资源数量(如100MiB),确定可扩展硬件C的可用资源数量为100MiB。或者,若存在第二应用程序的注释信息(即该注释信息中可以包括可扩展硬件C的硬件标识和第二应用程序的占用资源数量,如50MiB),则设备资源管理器可以根据可扩展硬件C的总资源数量(如100MiB)和第二应用程序的占用资源数量(如50MiB),确定可扩展硬件C的可用资源数量为50MiB(即100MiB-50MiB)。
在一个例子中,设备资源管理器可以将目标可扩展硬件分配给第一应用程序,以使第一应用程序根据该占用资源数量使用目标可扩展硬件的部分资源,而不使用目标可扩展硬件的全部资源。例如,假设第一应用程序的目标可扩展硬件为可扩展硬件C,第一应用程序的占用资源数量为40MiB,可扩展硬件C的可用资源数量为50MiB,由于可扩展硬件C的可用资源数量大于第一应用程序的占用资源数量,因此,设备资源管理器将可扩展硬件C分配给第一应用程序,以使第一应用程序根据占用资源数量40MiB使用可扩展硬件C的部分资源,也就是说,第一应用程序只使用可扩展硬件C的40MiB资源。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,可扩展硬件不是应用程序独自占用,这个可扩展硬件可以分配给多个应用程序,即多个应用程序可以共享目标可扩展硬件的资源,从而避免资源的浪费,支持多应用程序的资源共享。
本申请实施例中提出一种基于容器的资源分配方法,参见图2所示,为该方法的流程示意图,可以应用于共享资源扩展调度器,该方法包括:
步骤201,获取第一应用程序的占用资源数量。
步骤202,根据可扩展硬件的可用资源数量和该占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,该目标可扩展硬件的可用资源数量可以大于或者等于该占用资源数量。
在一个例子中,步骤202之前,可以获取可扩展硬件数量以及所有可扩展硬件的资源数量和,并根据可扩展硬件数量以及资源数量和,确定可扩展硬件的可用资源数量,并在资源表中记录可扩展硬件的可用资源数量。
根据可扩展硬件的可用资源数量和该占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件,可以包括但不限于:从该集群包括的多个计算节点中选择目标计算节点;其中,目标计算节点的至少一个可扩展硬件的可用资源数量大于或等于该占用资源数量;进一步的,根据目标计算节点的可扩展硬件的可用资源数量和该占用资源数量,从目标计算节点的可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件。
根据可扩展硬件的可用资源数量和该占用资源数量,从多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件,包括:从多个可扩展硬件中选择可扩展硬件作为候选可扩展硬件,该候选可扩展硬件的可用资源数量大于或等于占用资源数量;将可用资源数量最小的候选可扩展硬件确定为目标可扩展硬件。
其中,步骤201-步骤202可以参见步骤101-步骤102,在此不再赘述。
步骤203,将目标可扩展硬件分配给第一应用程序,以使第一应用程序根据该占用资源数量使用目标可扩展硬件的资源,例如,第一应用程序根据占用资源数量使用目标可扩展硬件的部分资源,而不是使用全部资源。
在一个例子中,将目标可扩展硬件分配给第一应用程序后,还可以基于第一应用程序的占用资源数量,更新资源表中的目标可扩展硬件的可用资源数量。
在一个例子中,将目标可扩展硬件分配给第一应用程序,可以包括:将目标可扩展硬件的硬件标识记录到第一应用程序的注释信息(annotation)中;将第一应用程序的占用资源数量记录到第一应用程序的注释信息中;根据该注释信息将目标可扩展硬件分配给第一应用程序,具体分配参见上述实施例。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,可扩展硬件不是应用程序独自占用,这个可扩展硬件可以分配给多个应用程序,即多个应用程序可以共享目标可扩展硬件的资源,从而避免资源的浪费,支持多应用程序的资源共享。
以下结合具体应用场景,对上述技术方案进行说明。参见图3所示,为本申请实施例的应用场景示意图,本申请实施例中,以Kubernetes的集群为例进行说明。其中,Kubernetes作为容器应用的管理中心,用于自动部署、扩展和管理容器化的应用程序,对集群内部所有容器的生命周期进行管理,Kubernetes可以为容器化的应用程序分配可扩展硬件的资源,以支持应用程序的运行。
在图3中,以1个计算节点31(即node,如个人计算机、物理服务器等)、1个资源分配节点32和1个应用程序33(通过容器实现的应用程序)为例,在实际应用中,计算节点的数量还可以更多,应用程序的数量还可以更多。
参见图3所示,计算节点31包括可扩展硬件311和可扩展硬件312,可扩展硬件311和可扩展硬件312可以是GPU、RDMA、磁盘、网卡、或者云盘等,后续以GPU为例进行说明。计算节点31还可以包括设备资源管理器(也可以称为共享设备插件,即Share Device Plugin)、Kubelet模块和设备检查点(Device Check Point)。其中,Kubernetes是一种用于自动部署、扩展和管理应用程序(如应用程序33)的开源系统,可以为应用程序分配可扩展硬件的资源,以支持应用程序的运行。为实现Kubernetes技术,可以在计算节点31部署设备资源管理器、Kubelet模块和设备检查点,通过设备资源管理器、Kubelet模块和设备检查点的配合,实现Kubernetes功能,为应用程序分配可扩展硬件的资源。
其中,设备资源管理器(即Share Device Plugin)、Kubelet模块和设备检查点的功能,可以参见传统实现方式,在此不再赘述。在后续实施例中,介绍设备资源管理器、Kubelet模块和设备检查点在本申请实施例中的相关功能。
参见图3所示,应用程序33是通过容器实现的应用程序,可以将应用程序33理解为Kubernetes中的Pod。在Kubernetes中,最小的管理单元不是一个个独立的容器,而是Pod,一个Pod是一个容器环境下的“逻辑主机”,它可能包含一个或者多个紧密相连的应用程序,这些应用程序可能部署在同一个物理主机或者虚拟机上。为了方便描述,本文中以应用程序33为例进行说明。
参见图3所示,资源分配节点32可以包括调度模块(scheduler)和共享资源扩展调度器(也可以称为共享调度扩展模块,即Share Scheduler Extender)。资源分配节点32承载着整个集群的资源调度功能,其根据特定调度算法和策略,将应用程序调度到最优的计算节点,从而更合理与充分的利用集群计算资源。
其中,共享资源扩展调度器是本实施例新增加的功能模块,用于实现资源的共享。通过调度模块和共享资源扩展调度器的配合,可以为应用程序分配目标可扩展硬件,以使应用程序使用目标可扩展硬件的部分资源,并实现资源的共享。针对调度模块和共享资源扩展调度器的功能,在后续实施例中介绍。
其中,调度模块和共享资源扩展调度器可以部署在同一个设备,也可以部署在不同设备,对此不做限制,图3中以二者均部署在资源分配节点32为例。
在上述应用场景下,本申请实施例的资源分配方法,可以包括如下过程:
一、资源上报过程。
参见图3所示,设备资源管理器可以收集计算节点31的可扩展硬件数量、计算节点31的所有可扩展硬件的资源数量和。具体的,设备资源管理器可以收集两个参数,一个参数是计算节点31的可扩展硬件数量(可以称为count),如可扩展硬件数量为2。另一个参数是所有可扩展硬件的资源数量和(可以称为mem),假设每个可扩展硬件的资源为16276MiB(即16GiB),则所有可扩展硬件(即可扩展硬件311和可扩展硬件312)的资源数量和为32552MiB。
然后,设备资源管理器可以将count和mem发送给Kubelet模块,而Kubelet模块可以向调度模块发送资源上报消息,该资源上报消息可以包括count和mem。调度模块在接收到资源上报消息后,还可以将count和mem发送给共享资源扩展调度器,最终,调度模块和共享资源扩展调度器可以得到count和mem。
基于count和mem,调度模块可以确定每个可扩展硬件的总资源数量,如count为2,mem为32552MiB时,调度模块确定每个可扩展硬件的总资源数量是16276MiB,后续过程中,调度模块是利用总资源数量16276MiB进行过滤。
基于count和mem,共享资源扩展调度器确定每个可扩展硬件的可用资源数量,如count为2,mem为32552MiB时,共享资源扩展调度器确定每个可扩展硬件的可用资源数量是16276MiB(32552MiB/2),参见表4所示的资源表。
表4
Figure BDA0001954535320000141
二、应用程序33申请可扩展硬件的资源。
参见图3所示,应用程序33需要申请可扩展硬件的资源时,可以向调度模块发送资源申请请求,该资源申请请求可以携带应用程序33的占用资源数量。
调度模块在接收到资源申请请求时,可以从资源申请请求中获取到应用程序33的占用资源数量。若占用资源数量大于总资源数量16276MiB,则直接拒绝资源申请请求,不再为应用程序33分配可扩展硬件的资源。若占用资源数量不大于总资源数量16276MiB,则将资源申请请求发送给共享资源扩展调度器。
在一个例子中,假设可扩展硬件是GPU,则应用程序对GPU的诉求在于模型预测场景,即在模型预测场景下申请GPU的资源。在此模型预测场景下,应用程序申请的GPU资源上限不会超过单个GPU的总资源数量16276MiB,也就是说,应用程序33的占用资源数量小于或等于总资源数量16276MiB。若应用程序33的占用资源数量大于总资源数量16276MiB,则直接拒绝资源申请请求。
例如,若应用程序33的占用资源数量为10240MiB,由于占用资源数量不大于总资源数量16276MiB,因此,将资源申请请求发送给共享资源扩展调度器。
共享资源扩展调度器接收到资源申请请求时,可以从资源申请请求中获取到应用程序33的占用资源数量。若应用程序33的占用资源数量大于每个可扩展硬件的可用资源数量,则拒绝资源申请请求,不再为应用程序33分配可扩展硬件的资源。若有可扩展硬件的可用资源数量大于或者等于应用程序33的占用资源数量,则为应用程序33分配可扩展硬件的资源,具体方式参见后续实施例。
三、共享资源扩展调度器为应用程序33分配可扩展硬件的资源。
在一个例子中,共享资源扩展调度器为应用程序33分配可扩展硬件的资源时,可以包括两个过程,第一过程为过滤过程,第二过程为绑定过程。在过滤过程中,共享资源扩展调度器从集群包括的多个计算节点中选择目标计算节点,也就是说,需要从所有计算节点中过滤出目标计算节点。在绑定过程中,是从目标计算节点的可扩展硬件中选择目标可扩展硬件,继而将目标可扩展硬件与应用程序33绑定,为应用程序33分配可扩展硬件的资源。
在过滤过程中,共享资源扩展调度器从集群包括的多个计算节点中选择目标计算节点,目标计算节点的至少一个可扩展硬件的可用资源数量大于或等于应用程序33的占用资源数量,对此过滤过程不再赘述,参见上述实施例。
在绑定过程中,共享资源扩展调度器可以根据目标计算节点的每个可扩展硬件的可用资源数量确定候选可扩展硬件,且每个候选可扩展硬件的可用资源数量大于应用程序33的占用资源数量。例如,共享资源扩展调度器可以维护表4所示的资源表(每次为应用程序分配可扩展硬件的资源后,对资源表的可用资源数量进行更新),基于该资源表,共享资源扩展调度器可以获知每个可扩展硬件的可用资源数量,并根据每个可扩展硬件的可用资源数量确定候选可扩展硬件。然后,将可用资源数量最小的候选可扩展硬件确定为应用程序33的目标可扩展硬件。例如,将可扩展硬件311确定为应用程序33的目标可扩展硬件。
进一步的,共享资源扩展调度器可以将目标可扩展硬件(即可扩展硬件311)的硬件标识记录到应用程序33的注释信息(annotation)中,并将占用资源数量(10240MiB)记录到应用程序33的注释信息中。然后,共享资源扩展调度器可以将应用程序33的注释信息发送给Kubelet模块,Kubelet模块将应用程序33的注释信息存储到设备检查点中,由设备检查点存储应用程序33的注释信息。
共享资源扩展调度器可以将应用程序33与可扩展硬件311进行绑定,并将绑定信息(即应用程序33与可扩展硬件311绑定)发送给Kubelet模块,由Kubelet模块为应用程序33分配可扩展硬件311的资源,具体方式参见后续实施例。
共享资源扩展调度器还可以根据占用资源数量更新可扩展硬件311的可用资源数量,例如,共享资源扩展调度器可以将可扩展硬件311的可用资源数量减去占用资源数量,从而得到更新后的可用资源数量,参见表5所示。
表5
Figure BDA0001954535320000161
后续过程中,当应用程序33释放可扩展硬件311的资源时,还可以根据占用资源数量更新可扩展硬件311的可用资源数量,即,将可扩展硬件311的可用资源数量加占用资源数量,得到更新后的可用资源数量,对此不再赘述。
四、Kubelet模块为应用程序33分配可扩展硬件的资源。
在一个例子中,Kubelet模块在接收到绑定信息(即应用程序33与可扩展硬件311绑定的信息)后,可以向设备资源管理器发送资源请求,这个资源请求用于使设备资源管理器将可扩展硬件311的部分资源分配给应用程序33。
在一个例子中,设备资源管理器在接收到资源请求后,可以直接将可扩展硬件311的部分资源分配给应用程序33。或者,可以从设备检查点中读取所有应用程序的注释信息,并从注释信息中获取每个应用程序对应的目标可扩展硬件的硬件标识和占用资源数量,并利用每个应用程序对应的目标可扩展硬件的硬件标识和占用资源数量,判断是否将可扩展硬件311的部分资源分配给应用程序33。如果是,则将可扩展硬件311的部分资源分配给应用程序33。
例如,假设设备检查点包括应用程序33的注释信息A、应用程序34的注释信息B、应用程序35的注释信息C,注释信息A包括可扩展硬件311的硬件标识和占用资源数量1,注释信息B包括可扩展硬件311的硬件标识和占用资源数量2,注释信息C包括可扩展硬件312的硬件标识和占用资源数量3。
由于应用程序33需要与应用程序34共享同一个可扩展硬件311,因此,若占用资源数量1(即10240MiB)与占用资源数量2的和,小于或者等于可扩展硬件311的总资源数量(16276MiB),则设备资源管理器允许将可扩展硬件311的部分资源分配给应用程序33。若占用资源数量1与占用资源数量2的和,大于可扩展硬件311的总资源数量,则设备资源管理器不允许将可扩展硬件311的部分资源分配给应用程序33,也就是说,拒绝为应用程序33分配资源。
若设备资源管理器允许将可扩展硬件311的部分资源分配给应用程序33,则可以将可扩展硬件311分配给应用程序33,以使应用程序33根据占用资源数量使用可扩展硬件311的部分资源,而不使用可扩展硬件311的的全部资源。
其中,设备资源管理器可以将占用资源数量(即10240MiB)显示给用户,用户可以根据占用资源数量(即10240MiB)调整应用程序的代码,以使应用程序只使用可扩展硬件311的部分资源,即10240MiB的资源,而不使用可扩展硬件311的的全部资源,从而使得多个应用程序可以共享可扩展硬件311的资源。
其中,设备资源管理器将可扩展硬件311分配给应用程序33,可以采用传统方式,对此不做限制,只要能够将可扩展硬件311分配给应用程序33即可。
经过上述处理,成功将可扩展硬件311分配给应用程序33,而且,应用程序33根据占用资源数量使用可扩展硬件311的部分资源,从而节约资源。
综上所述,可扩展硬件不是应用程序独自占用,而是可以分配给多个应用程序,即多个应用程序可以共享可扩展硬件的资源,从而避免资源的浪费,支持多应用程序的资源共享,从而在Kubernetes上实现多实例的共享资源的调度。
基于与上述方法同样的申请构思,本申请实施例中还提供一种基于容器的资源分配系统,包括:
共享资源扩展调度器,用于获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述第一应用程序与所述目标可扩展硬件进行绑定,并将所述第一应用程序与所述目标可扩展硬件的绑定关系发送给设备资源管理器;
设备资源管理器,用于在接收到所述绑定关系后,将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用目标可扩展硬件的资源。
所述设备资源管理器,还用于获取可扩展硬件数量以及资源数量和,并将所述可扩展硬件数量和所述资源数量和发送给共享资源扩展调度器;
所述共享资源扩展调度器,还用于根据所述可扩展硬件数量和所述资源数量和,确定可扩展硬件的可用资源数量;在资源表中记录可扩展硬件的可用资源数量;在将所述第一应用程序与所述目标可扩展硬件进行绑定后,基于第一应用程序的占用资源数量,更新资源表中的目标可扩展硬件的可用资源数量。
所述共享资源扩展调度器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件时具体用于:从所述集群包括的多个计算节点中选择目标计算节点;所述目标计算节点的至少一个可扩展硬件的可用资源数量大于或等于所述占用资源数量;根据目标计算节点的可扩展硬件的可用资源数量和所述占用资源数量,从所述目标计算节点的可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件。
所述共享资源扩展调度器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件时具体用于:从所述多个可扩展硬件中选择可扩展硬件作为候选可扩展硬件,所述候选可扩展硬件的可用资源数量大于或等于所述占用资源数量;
将可用资源数量最小的候选可扩展硬件确定为所述目标可扩展硬件。
所述设备资源管理器将所述目标可扩展硬件分配给所述第一应用程序时具体用于:获取所述目标可扩展硬件的可用资源数量,并获取所述第一应用程序的占用资源数量;若所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量,则将所述目标可扩展硬件分配给所述第一应用程序。
所述共享资源扩展调度器,还用于将所述目标可扩展硬件的硬件标识和所述第一应用程序的占用资源数量记录到所述第一应用程序的注释信息;
所述设备资源管理器获取所述目标可扩展硬件的可用资源数量,并获取所述第一应用程序的占用资源数量时具体用于:获取所述第一应用程序的注释信息,并从所述注释信息中获取所述第一应用程序的占用资源数量;
若存在第二应用程序的注释信息,第二应用程序的注释信息包括所述目标可扩展硬件的硬件标识和第二应用程序的占用资源数量,根据所述目标可扩展硬件的总资源数量和所述第二应用程序的占用资源数量,确定所述目标可扩展硬件的可用资源数量;或者,若不存在第二应用程序的注释信息,根据所述目标可扩展硬件的总资源数量,确定所述目标可扩展硬件的可用资源数量。
基于与上述方法同样的申请构思,本申请实施例中还提供一种基于容器的资源分配装置,可以应用于共享资源扩展调度器,如图4所示,为所述资源分配装置的结构图,所述资源分配装置包括:
获取模块41,用于获取第一应用程序的占用资源数量;
选择模块42,用于根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
分配模块43,用于将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用目标可扩展硬件的资源。
基于与上述方法同样的申请构思,本申请实施例还提供一种共享资源扩展调度器,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
所述处理器获取第一应用程序的占用资源数量之前还用于:
获取所述集群的可扩展硬件数量、所述集群的资源数量和,并根据所述可扩展硬件数量以及所述资源数量和,确定可扩展硬件的可用资源数量;
在资源表中记录可扩展硬件的可用资源数量;
所述处理器将所述目标可扩展硬件分配给所述第一应用程序之后还用于:
基于所述第一应用程序的占用资源数量,更新所述资源表中的所述目标可扩展硬件的可用资源数量。
所述处理器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件时具体用于:
从所述集群包括的多个计算节点中选择目标计算节点;其中,所述目标计算节点的至少一个可扩展硬件的可用资源数量大于或等于所述占用资源数量;
根据目标计算节点的可扩展硬件的可用资源数量和所述占用资源数量,从所述目标计算节点的可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件。
所述处理器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件时具体用于:
从所述多个可扩展硬件中选择可扩展硬件作为候选可扩展硬件,所述候选可扩展硬件的可用资源数量大于或等于所述占用资源数量;
将可用资源数量最小的候选可扩展硬件确定为所述目标可扩展硬件。
本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
参见图5所示,为本申请实施例中提出的共享资源扩展调度器的结构示意图,共享资源扩展调度器50包括:处理器51,网络接口52,总线53,存储器54。存储器54可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据等等。例如,存储器54可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等)。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (21)

1.一种基于容器的资源分配方法,其特征在于,该方法包括:
共享资源扩展调度器获取第一应用程序的占用资源数量;
所述共享资源扩展调度器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
所述共享资源扩展调度器将所述第一应用程序与所述目标可扩展硬件进行绑定,并将所述第一应用程序与所述目标可扩展硬件的绑定关系发送给设备资源管理器;
所述设备资源管理器在接收到所述绑定关系后,将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
2.根据权利要求1所述的方法,其特征在于,所述共享资源扩展调度器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件之前,所述方法还包括:
所述设备资源管理器获取可扩展硬件数量以及资源数量和,并将所述可扩展硬件数量以及所述资源数量和发送给共享资源扩展调度器;
所述共享资源扩展调度器根据所述可扩展硬件数量以及所述资源数量和,确定可扩展硬件的可用资源数量;
所述共享资源扩展调度器在资源表中记录可扩展硬件的可用资源数量。
3.根据权利要求2所述的方法,其特征在于,所述共享资源扩展调度器将所述第一应用程序与所述目标可扩展硬件进行绑定后,所述方法还包括:
基于所述第一应用程序的占用资源数量,所述共享资源扩展调度器更新所述资源表中的所述目标可扩展硬件的可用资源数量。
4.根据权利要求1所述的方法,其特征在于,所述共享资源扩展调度器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件,具体包括:
从所述集群包括的多个计算节点中选择目标计算节点;其中,所述目标计算节点的至少一个可扩展硬件的可用资源数量大于或等于所述占用资源数量;
根据目标计算节点的可扩展硬件的可用资源数量和所述占用资源数量,从所述目标计算节点的可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件。
5.根据权利要求1或4所述的方法,其特征在于,所述共享资源扩展调度器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件,具体包括:
从所述多个可扩展硬件中选择可扩展硬件作为候选可扩展硬件,所述候选可扩展硬件的可用资源数量大于或等于所述占用资源数量;
将可用资源数量最小的候选可扩展硬件确定为所述目标可扩展硬件。
6.根据权利要求1所述的方法,其特征在于,所述共享资源扩展调度器将所述第一应用程序与所述目标可扩展硬件进行绑定后,所述方法还包括:
所述共享资源扩展调度器将所述目标可扩展硬件的硬件标识和所述第一应用程序的占用资源数量记录到所述第一应用程序的注释信息。
7.根据权利要求6所述的方法,其特征在于,所述设备资源管理器将所述目标可扩展硬件分配给所述第一应用程序,具体包括:
所述设备资源管理器获取所述目标可扩展硬件的可用资源数量,并获取所述第一应用程序的占用资源数量;
若所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量,则所述设备资源管理器将所述目标可扩展硬件分配给所述第一应用程序。
8.根据权利要求7所述的方法,其特征在于,
所述设备资源管理器获取所述第一应用程序的占用资源数量,包括:
所述设备资源管理器获取所述第一应用程序的注释信息,所述注释信息包括所述目标可扩展硬件的硬件标识和所述第一应用程序的占用资源数量,并从所述注释信息中获取所述第一应用程序的占用资源数量。
9.根据权利要求8所述的方法,其特征在于,
所述设备资源管理器获取所述目标可扩展硬件的可用资源数量,包括:
若存在第二应用程序的注释信息,所述第二应用程序的注释信息包括所述目标可扩展硬件的硬件标识和所述第二应用程序的占用资源数量,则所述设备资源管理器根据所述目标可扩展硬件的总资源数量和所述第二应用程序的占用资源数量,确定所述目标可扩展硬件的可用资源数量;或者,
若不存在第二应用程序的注释信息,则所述设备资源管理器根据所述目标可扩展硬件的总资源数量,确定所述目标可扩展硬件的可用资源数量。
10.一种基于容器的资源分配方法,其特征在于,所述方法包括:
获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
11.根据权利要求10所述的方法,其特征在于,
所述根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件之前,获取可扩展硬件数量以及资源数量和,并根据所述可扩展硬件数量以及所述资源数量和,确定可扩展硬件的可用资源数量;在资源表中记录可扩展硬件的可用资源数量;
所述将所述目标可扩展硬件分配给所述第一应用程序后,基于所述第一应用程序的占用资源数量,更新资源表中的所述目标可扩展硬件的可用资源数量。
12.根据权利要求10所述的方法,其特征在于,
所述根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件,包括:
从所述集群包括的多个计算节点中选择目标计算节点;其中,所述目标计算节点的至少一个可扩展硬件的可用资源数量大于或等于所述占用资源数量;
根据目标计算节点的可扩展硬件的可用资源数量和所述占用资源数量,从所述目标计算节点的可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件。
13.根据权利要求10或12所述的方法,其特征在于,
所述根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件,包括:
从所述多个可扩展硬件中选择可扩展硬件作为候选可扩展硬件,所述候选可扩展硬件的可用资源数量大于或等于所述占用资源数量;
将可用资源数量最小的候选可扩展硬件确定为所述目标可扩展硬件。
14.根据权利要求10所述的方法,其特征在于,
所述将所述目标可扩展硬件分配给所述第一应用程序,包括:
将所述目标可扩展硬件的硬件标识记录到所述第一应用程序的注释信息;将所述第一应用程序的占用资源数量记录到所述第一应用程序的注释信息;
根据所述注释信息将所述目标可扩展硬件分配给所述第一应用程序。
15.一种基于容器的资源分配系统,其特征在于,包括:
共享资源扩展调度器,用于获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述第一应用程序与所述目标可扩展硬件进行绑定,并将所述第一应用程序与所述目标可扩展硬件的绑定关系发送给设备资源管理器;
设备资源管理器,用于在接收到所述绑定关系后,将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
16.根据权利要求15所述的系统,其特征在于,
所述设备资源管理器,还用于获取可扩展硬件数量以及资源数量和,并将所述可扩展硬件数量和所述资源数量和发送给共享资源扩展调度器;
所述共享资源扩展调度器,还用于根据所述可扩展硬件数量和所述资源数量和,确定可扩展硬件的可用资源数量;在资源表中记录可扩展硬件的可用资源数量;在将所述第一应用程序与所述目标可扩展硬件进行绑定后,基于第一应用程序的占用资源数量,更新资源表中的目标可扩展硬件的可用资源数量。
17.根据权利要求15所述的系统,其特征在于,
所述共享资源扩展调度器根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件时具体用于:从所述集群包括的多个计算节点中选择目标计算节点;所述目标计算节点的至少一个可扩展硬件的可用资源数量大于或等于所述占用资源数量;根据目标计算节点的可扩展硬件的可用资源数量和所述占用资源数量,从所述目标计算节点的可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件。
18.根据权利要求15所述的系统,其特征在于,所述设备资源管理器将所述目标可扩展硬件分配给所述第一应用程序时具体用于:
获取所述目标可扩展硬件的可用资源数量,并获取所述第一应用程序的占用资源数量;若所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量,则将所述目标可扩展硬件分配给所述第一应用程序。
19.根据权利要求18所述的系统,其特征在于,
所述共享资源扩展调度器,还用于将所述目标可扩展硬件的硬件标识和所述第一应用程序的占用资源数量记录到所述第一应用程序的注释信息;
所述设备资源管理器获取所述目标可扩展硬件的可用资源数量,并获取所述第一应用程序的占用资源数量时具体用于:获取所述第一应用程序的注释信息,并从所述注释信息中获取所述第一应用程序的占用资源数量;
若存在第二应用程序的注释信息,第二应用程序的注释信息包括所述目标可扩展硬件的硬件标识和第二应用程序的占用资源数量,根据所述目标可扩展硬件的总资源数量和所述第二应用程序的占用资源数量,确定所述目标可扩展硬件的可用资源数量;或者,若不存在第二应用程序的注释信息,根据所述目标可扩展硬件的总资源数量,确定所述目标可扩展硬件的可用资源数量。
20.一种共享资源扩展调度器,其特征在于,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
21.一种机器可读存储介质,其特征在于,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
获取第一应用程序的占用资源数量;
根据可扩展硬件的可用资源数量和所述占用资源数量,从集群的多个可扩展硬件中选择一个可扩展硬件作为目标可扩展硬件;其中,所述目标可扩展硬件的可用资源数量大于或者等于所述占用资源数量;
将所述目标可扩展硬件分配给所述第一应用程序,以使所述第一应用程序根据所述占用资源数量使用所述目标可扩展硬件的资源。
CN201910062292.4A 2019-01-23 2019-01-23 一种资源分配方法、系统、设备及机器可读存储介质 Pending CN111475277A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910062292.4A CN111475277A (zh) 2019-01-23 2019-01-23 一种资源分配方法、系统、设备及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910062292.4A CN111475277A (zh) 2019-01-23 2019-01-23 一种资源分配方法、系统、设备及机器可读存储介质

Publications (1)

Publication Number Publication Date
CN111475277A true CN111475277A (zh) 2020-07-31

Family

ID=71743641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910062292.4A Pending CN111475277A (zh) 2019-01-23 2019-01-23 一种资源分配方法、系统、设备及机器可读存储介质

Country Status (1)

Country Link
CN (1) CN111475277A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813564A (zh) * 2020-09-11 2020-10-23 北京达佳互联信息技术有限公司 集群资源管理方法、装置及容器集群管理系统
CN112463375A (zh) * 2020-11-26 2021-03-09 广州橙行智动汽车科技有限公司 一种数据处理的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103645957A (zh) * 2013-12-25 2014-03-19 北京搜狐新媒体信息技术有限公司 一种虚拟机资源管控方法及装置
CN104580194A (zh) * 2014-12-31 2015-04-29 四达时代通讯网络技术有限公司 面向视频应用的虚拟化资源管理方法及装置
CN105512083A (zh) * 2015-11-30 2016-04-20 华为技术有限公司 基于yarn的资源管理方法、装置及系统
CN107291539A (zh) * 2017-06-19 2017-10-24 山东师范大学 基于资源重要程度的集群程序调度方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103645957A (zh) * 2013-12-25 2014-03-19 北京搜狐新媒体信息技术有限公司 一种虚拟机资源管控方法及装置
CN104580194A (zh) * 2014-12-31 2015-04-29 四达时代通讯网络技术有限公司 面向视频应用的虚拟化资源管理方法及装置
CN105512083A (zh) * 2015-11-30 2016-04-20 华为技术有限公司 基于yarn的资源管理方法、装置及系统
CN107291539A (zh) * 2017-06-19 2017-10-24 山东师范大学 基于资源重要程度的集群程序调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813564A (zh) * 2020-09-11 2020-10-23 北京达佳互联信息技术有限公司 集群资源管理方法、装置及容器集群管理系统
CN112463375A (zh) * 2020-11-26 2021-03-09 广州橙行智动汽车科技有限公司 一种数据处理的方法和装置

Similar Documents

Publication Publication Date Title
CN110647394B (zh) 一种资源分配方法、装置及设备
CN107943421B (zh) 一种基于分布式存储系统的分区划分方法及装置
CN107968810B (zh) 一种服务器集群的资源调度方法、装置和系统
CN112463375A (zh) 一种数据处理的方法和装置
CN115328663A (zh) 基于PaaS平台进行资源调度的方法、装置、设备和存储介质
CN107506145B (zh) 一种物理存储调度方法及云主机创建方法
CN111309440B (zh) 一种多类型gpu的管理调度的方法和设备
WO2023000673A1 (zh) 硬件加速器设备管理方法、装置及电子设备和存储介质
CN103049328A (zh) 计算机系统中内存资源分配方法
CN111798113A (zh) 资源分配方法、装置、存储介质和电子设备
CN111475277A (zh) 一种资源分配方法、系统、设备及机器可读存储介质
CN112269661A (zh) 基于Kafka集群的分区迁移方法和装置
CN110795234A (zh) 一种资源调度方法及装置
CN109788013B (zh) 分布式系统中作业资源分配方法、装置及设备
CN113535087A (zh) 数据迁移过程中的数据处理方法、服务器及存储系统
CN106254516B (zh) 负载均衡方法及装置
CN112596669A (zh) 一种基于分布式存储的数据处理方法及装置
CN114327862B (zh) 一种内存分配方法、装置、电子设备及存储介质
CN110879748A (zh) 一种共享资源分配方法、装置和设备
CN115328608A (zh) 一种Kubernetes容器垂直伸缩调节方法和装置
CN110096355B (zh) 一种共享资源分配方法、装置和设备
CN114237902A (zh) 一种服务部署方法、装置、电子设备及计算机可读介质
CN112988383A (zh) 一种资源分配方法、装置、设备以及存储介质
CN113411362A (zh) 应用实例的控制方法、装置及设备
CN112114959B (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