CN112052084A - 一种资源分配方法和计算机设备 - Google Patents
一种资源分配方法和计算机设备 Download PDFInfo
- Publication number
- CN112052084A CN112052084A CN201910488288.4A CN201910488288A CN112052084A CN 112052084 A CN112052084 A CN 112052084A CN 201910488288 A CN201910488288 A CN 201910488288A CN 112052084 A CN112052084 A CN 112052084A
- Authority
- CN
- China
- Prior art keywords
- session
- computing
- idle
- unit
- resource pool
- 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
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/5011—Pool
Abstract
本申请提供一种资源分配方法和计算机设备,可以使分布式计算系统的管理服务器在接收客户端发送的会话资源请求时,从本地预配置的会话资源池中获取空闲会话单元,将获取的空闲会话单元发送给客户端,以使客户端基于收到的空闲会话单元与本设备建立会话连接;并在收到客户端通过所述会话连接发送的计算资源请求时,从本地预配置的计算资源池中获取空闲计算单元,将获取的空闲计算单元通过会话连接发送给所述客户端。相比于现有技术,本申请可以使管理服务器将预先创建的会话单元和计算单元分配给客户端使用,不需要临时创建,从而降低了调度计算单元和会话单元的时间,提升了分布式计算系统整体的计算执行效率及调度效率。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及一种资源分配方法和计算机设备。
背景技术
目前主流的分布式计算系统,如Spark或Yarn,可以与客户端建立会话,如SparkContext或ApplicationMaster,客户端通过该会话向分布式计算系统提交的计算任务,从而利用分布式计算系统中的计算资源执行客户端提交的计算任务。
具体过程包括:首先客户端与分布式计算系统建立通信时,需要新建会话单元,之后通过该会话单元向分布式计算系统提交作业。当分布式计算系统调度将该作业拆分为可执行的计算任务时,需要向分布式计算系统申请启动计算单元,如Executor或Container,来执行这些计算任务;然后当计算任务完成后,分布式计算系统会销毁分配给客户端的计算单元以及会话单元。
由此可见,当前主流的分布式计算系统中,每次针对客户端的请求,都需要临时创建相应的会话单元和计算单元分配给该客户端,并且在计算任务后,还需要销毁创建的计算单元和会话单元。因此上述创建和销毁的过程降低了计算任务的执行效率,以及分布式计算系统整体的计算效率。
发明内容
有鉴于此,本申请提供一种资源分配方法,用于解决现有技术中分布式计算系统中计算效率低下的问题。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种资源分配方法,所述方法应用于分布式计算系统的管理服务器,所述方法包括:
接收客户端发送的会话资源请求,从本地预配置的会话资源池中获取空闲会话单元,将获取的所述空闲会话单元发送给所述客户端,以使所述客户端基于收到的空闲会话单元与本设备建立会话连接;
接收客户端通过所述会话连接发送的计算资源请求,从本地预配置的计算资源池中获取空闲计算单元,将获取的所述空闲计算单元通过所述会话连接发送给所述客户端。
作为一个实施例,在接收客户端发送的会话资源请求之前,所述方法还包括:
在本地预先配置会话资源池,所述会话资源池中包括多个会话单元,为每个会话单元设置状态标识,状态标识的初始状态为空闲状态;
所述从本地预配置的会话资源池中获取空闲会话单元,包括:
从所述会话资源池中查找状态标识为空闲状态的会话单元,从查找到的会话单元中任选一个会话单元作为所述空闲会话单元。
作为一个实施例,所述在本地预先配置会话资源池,还包括:
为每个所述会话单元配置用于连接客户端的端口和IP地址;
所述将获取的所述空闲会话单元发送给所述客户端,以使所述客户端基于收到的空闲会话单元与本设备建立会话连接,包括:
将空闲会话单元的用于连接客户端的端口和IP地址发送给所述客户端,以使所述客户端基于收到的空闲会话单元的用于连接客户端的端口和IP地址与所述空闲会话单元建立连接。
作为一个实施例,在接收客户端发送的计算资源请求之前,所述方法还包括:
在本地预先配置计算资源池,所述会话资源池中包括多个计算单元,为每个计算单元设置状态标识,状态标识的初始状态为空闲状态;
所述从本地预配置的计算资源池中获取空闲计算单元,包括:
从所述计算资源池中查找状态标识为空闲状态的计算单元,从查找到的计算单元中任选一个计算单元作为所述空闲计算单元。
作为一个实施例,所述在本地预先配置计算资源池,还包括:
为每个计算单元配置指定的CPU核数和内存;
所述从查找到的计算单元中任选一个计算单元作为所述空闲计算单元,包括:
获取所述计算资源请求中所请求的计算资源的CPU核数和内存;
从所述查找到的计算单元中判断是否存在任一计算单元的CPU核数和内存与所请求的计算资源的CPU核数和内存相匹配;
如果存在,将所述计算单元作为所述空闲计算单元。
作为一个实施例,所述方法还包括:
当所述客户端与所述目标计算单元断开连接时,回收所述目标计算单元到所述计算资源池,回收所述目标会话单元到所述会话资源池。
作为一个实施例,所述方法还包括:
在预设时间周期内,判断当前时间周期内是否存在运行的计算单元;
如果是,在检测到所述计算资源池的空闲计算单元数量小于第一阈值时,创建新的空闲计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第一阈值;
如果否,检测所述计算资源池的空闲计算单元数量是否大于第二阈值,所述第二阈值大于所述第一阈值,若是,则将所述计算资源池中的空闲计算单元数量减少到等于所述第二阈值;若否,则创建新的空闲计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第二阈值。
作为一个实施例,所述将所述计算资源池中的空闲计算单元数量减少到等于所述第二阈值,包括:
按照空闲计算单元的回收时间,删除所述计算资源池中的回收时间较早的空闲计算单元以使所述计算资源池中的空闲计算单元数量等于所述第二阈值。
作为一个实施例,所述方法还包括:
在预设时间周期内,判断当前时间周期内是否存在运行的会话单元;
如果是,在检测到所述会话资源池的空闲会话单元数量小于第三阈值时,创建新的空闲会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第三阈值;
如果否,检测所述会话资源池的空闲会话单元数量是否大于第四阈值,所述第四阈值大于所述第三阈值,若是,则将所述会话资源池中的空闲会话单元数量减少到等于所述第四阈值;若否,则创建新的空闲会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第四阈值。
作为一个实施例,将所述会话资源池中的空闲会话单元减少到等于所述第四阈值,包括:
按照空闲会话单元的回收时间,删除所述会话资源池中的回收时间较早的部分空闲会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第四阈值。
根据本申请实施例的第二方面,提供一种计算机设备,包括处理器、通信接口、存储器和通信总线;
其中,所述处理器、通信接口、存储器通过所述通信总线进行相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现任一资源分配方法的步骤。
根据本申请实施例的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一资源分配方法的步骤。
由上述实施例可见,本申请可以使分布式计算系统的管理服务器在接收客户端发送的会话资源请求时,从本地预配置的会话资源池中获取空闲会话单元,将获取的所述空闲会话单元发送给所述客户端,以使所述客户端基于收到的空闲会话单元与本设备建立会话连接;并在收到客户端通过所述会话连接发送的计算资源请求时,从本地预配置的计算资源池中获取空闲计算单元,将获取的所述空闲计算单元通过所述会话连接发送给所述客户端。相比于现有技术,本申请可以使管理服务器将预先创建的会话单元和计算单元分配给客户端使用,不需要临时创建,从而降低了调度计算单元和会话单元的时间,提升了分布式计算系统整体的计算执行效率及调度效率。
附图说明
图1为本申请示例性的一种资源分配方法的实施例流程图;
图2为本申请示例性的分布式计算系统的结构示意图;
图3为本申请示例性的计算单元维护流程图;
图4为本申请示例性的会话单元维护流程图;
图5为本申请一种计算机设备的一个实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面所示的实施例为资源分配方法的实施例。
请参见图1,为本申请示例性的一种资源分配方法的实施例流程图,所述方法应用于分布式计算系统的管理服务器,请参见图2,为本申请示例性的分布式计算系统的结构示意图,其中分布式计算系统包括多个应用服务器,这些应用服务器可以按照服务类型分为会话服务模块和分布式计算模块,会话服务模块连接预先创建的会话资源池,分布式计算模块连接预先创建的计算资源池,会话资源池和计算资源池中分别包含多个预先创建的会话单元和计算单元。该分布式计算系统中还包括一台管理服务器,用于管理全部应用服务器上的计算资源和会话资源,进行统一分配;该管理服务器可以通过操作者默认设置,或者根据预设的选举机制选出。所述方法包括:
步骤101、接收客户端发送的会话资源请求,从本地预配置的会话资源池中获取空闲会话单元,将获取的所述空闲会话单元发送给所述客户端,以使所述客户端基于收到的空闲会话单元与本设备建立会话连接;
在本实施例中,客户端可以获取分布式计算系统预先发布的公共地址信息,例如端口和IP地址,该客户端可以通过获取的公共地址信息向该分布式系统的管理服务器发送会话资源请求。当分布式计算系统的管理服务器收到客户端发送的会话资源请求时,从本地预配置的会话资源池中获取空闲会话单元。
作为一个实施例,管理服务器可以在接收客户端发送的会话资源请求之前或者是系统初始化时,在本地预先配置会话资源池,所述会话资源池中包括多个会话单元,为每个会话单元设置状态标识,状态标识的初始状态为空闲状态。因此管理服务器可以从所述会话资源池中查找状态标识为空闲状态的会话单元,从查找到的会话单元中任选一个会话单元作为所述空闲会话单元。
管理服务器在获取空闲会话单元后,将获取的所述空闲会话单元发送给所述客户端,以使所述客户端基于收到的空闲会话单元与本设备建立会话连接。
作为一个实施例,所述在本地预先配置会话资源池时,可以为每个所述会话单元配置用于连接客户端的端口和IP地址;管理服务器可以将空闲会话单元的用于连接客户端的端口和IP地址发送给所述客户端,以使所述客户端基于收到的空闲会话单元的用于连接客户端的端口和IP地址与所述空闲会话单元建立连接。
需要说明的是,如果会话资源池中不存在空闲状态的会话单元,则管理服务器可以进一步查找本地是否有空闲的用于与客户端连接端口和IP地址,如果存在,则根据查找到的端口和IP地址新建会话单元,并将新建的会话单元发送给客户端。如果本地没有可用的端口和IP地址时,可以将该客户端加入等待队列,或者拒绝该客户端的会话资源请求。
当管理服务器将所述空闲会话单元发送给所述客户端之后,该客户端会与该空闲会话单元建立连接,因此管理服务器可以将所述会话单元的状态标识从空闲状态更新为非空闲状态,从而表示该会话单元已被占用。
步骤102、接收客户端通过所述会话连接发送的计算资源请求,从本地预配置的计算资源池中获取空闲计算单元,将获取的所述空闲计算单元通过所述会话连接发送给所述客户端。
管理服务器在接收客户端通过所述会话连接发送的计算资源请求时,可以从本地预配置的计算资源池中获取空闲计算单元。
作为一个实施例,在接收客户端发送的计算资源请求之前,管理服务器可以在本地预先配置计算资源池,所述会话资源池中包括多个计算单元,为每个计算单元设置状态标识,状态标识的初始状态为空闲状态。因此管理服务器可以从所述计算资源池中查找状态标识为空闲状态的计算单元,从查找到的计算单元中任选一个计算单元作为所述空闲计算单元。
作为一个实施例,客户端可以根据自身的计算任务量通过发送计算资源请求来请求对应的计算单元。为了满足客户端的不同计算需求,管理服务器在本地预先配置计算资源池时,还可以为每个计算单元配置指定的CPU核数和内存,每个计算单元的CPU核数和内存可以与其他计算单元的CPU核数和内存相同也可以不同。当管理服务器在计算资源池查找到的空闲的计算单元后,还可以进一步获取所述计算资源请求中所请求的计算资源的CPU核数和内存;从所述查找到的计算单元中判断是否存在任一计算单元的CPU核数和内存与所请求的计算资源的CPU核数和内存相匹配;如果存在,将所述计算单元作为所述空闲计算单元。如果不存在,则从本地创建满足用户请求的新的计算单元,将新建的计算单元发送给所述客户端。
举例来讲,假设客户端有三个计算任务,每个计算任务需要请求的计算单元为4核+200M内存,则当管理服务器收到客户端的计算资源请求时,获取请求条件,即三个4核+200M内存的计算单元,从而可以从计算资源池中已建立的空闲计算单元中查找符合该条件的计算单元;假设已建立的空闲计算单元01的配置是2核+100M内存,则确定该计算单元的配置不满足该请求条件;假设已建立的空闲计算单元02的配置是4核+200M内存,则确定该计算单元的配置满足该请求条件;假设已建立的空闲计算单元03的配置是4核+400M内存,则确定该计算单元的配置满足该请求条件;但是最好选择与请求条件最匹配的计算单元,如果实在没有相匹配的计算单元,可以选择配置高于请求条件的计算单元,或者也可以根据请求条件创建新的计算单元。
在本实施例中,管理服务器查找到空闲计算单元后,可以将所述空闲计算单元通过所述会话连接分配给所述客户端,以通过所述计算单元处理所述客户端提交的计算任务。具体来讲,管理服务器可以将该目标计算单元的地址信息,例如端口号和IP地址,通过该会话连接发送给该客户端,以使该客户端基于收到的地址信息与目标计算单元建立连接,从而通过该会话连接提交计算任务,并由该目标计算单元处理客户端提交的计算任务。
作为一个实施例,将所述空闲计算单元通过所述会话连接分配给所述客户端之后,还可以将所述计算单元的状态标识从空闲状态更新为非空闲状态,从而表示该计算单元已经被占用。
作为一个实施例,当所述计算任务完成后,客户端可断开与计算单元的连接,因此当管理服务器确定客户端与计算单元的连接断开后,可以认为计算认为结束,从而可以回收所述目标计算单元到所述计算资源池,然后回收所述目标会话单元到所述会话资源池。回收的计算单元和会话单元不会被销毁,而是将该计算单元的状态标识更新为空闲状态,将该会话单元的状态标识更新空闲状态。从而可以使后续客户端再请求会话单元或者计算单元时,可以将空闲状态的计算单元或会话单元分配给客户端使用,避免反复创建和销毁的操作,提升资源利用率,提升分布式系统的调度效率。
需要说明的是,当建立的计算单元和会话单元的数量过多远远大于用户的需求量时,会导致大量已建立的资源闲置,从而也会消耗系统资源;当建立的计算单元和会话单元的数量过少时,会导致出现大量临时创建的操作,从而与现有技术的差异不大,无法提高系统的调度效率。因此如何维护建立的计算单元和会话单元的数量是值得关注的问题。下面分别对计算单元和会话单元的维护进行说明。
作为一个实施例,管理服务器可以按照预设时间周期检测系统中存在运行的计算单元,如果存在运行的计算单元,可以检测空闲计算单元的数量,若检测到所述计算资源池的空闲计算单元数量小于第一阈值时,则说明当前计算单元的数量较少,恐怕无法满足后续的应用需求,因此需要创建新的空闲计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第一阈值;如果不存在运行的计算单元,可以检测所述计算资源池的空闲计算单元数量是否大于第二阈值,所述第二阈值大于所述第一阈值,若是,则说明当前计算资源池的计算单元数量过多,可能造成资源浪费,因此可将计算资源池中的空闲计算单元数量减少到等于所述第二阈值;若否,则创建新的控制计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第二阈值。其中,所述将所述计算资源池中的空闲计算单元数量减少到等于所述第二阈值时,可以按照空闲计算单元在回收时的回收时间,删除所述计算资源池中的回收时间较早的空闲计算单元以使所述计算资源池中的空闲计算单元数量等于所述第二阈值。
需要说明的是,在创建新的计算单元时,还需要考虑当前系统的硬件资源是否可用,所谓的硬件资源可以包括CPU和内存,若当前的CPU和内存不满足创建计算单元的条件时,则无法创建新的计算单元。
下面结合图3对空闲计算单元的数量的维护进行详细说明。
请参见图3所示的计算单元维护流程图,其中包括:
步骤301、初始化时创建计算资源池,在计算资源池中创建空闲计算单元;
步骤302、当前系统中是否存在运行的计算单元,若是,则转步骤303;若否,则转步骤305;
步骤303、判断空闲计算单元的数量是否小于第一阈值,若是,则转步骤304;若否,则结束本周期,返回步骤302,等待下一周期的判断;
步骤304、创建新的计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第一阈值,并结束本周期,返回步骤302,等待下一周期的判断;
步骤305、判断空闲计算单元的数量是否大于第二阈值,该第二阈值大于第一阈值,若是,则转步骤306;若否,则转步骤307;
步骤306、删除回收时间较早的空闲计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第二阈值,并结束本周期,返回步骤302,等待下一周期的判断;
步骤307、创建新的计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第二阈值,并结束本周期,返回步骤302,等待下一周期的判断。
举例来讲,假设系统配置的所述第一阈值为5个,第二阈值为10个,也就是说在系统没有运行计算单元时,空闲计算单元数要维持10个;在系统运行时,空闲计算单元数要维持5个,则具体维护过程如下:
在第一个检测周期时,假如当前系统的计算资源池中共有10个计算单元,其中有7个计算单元已经被使用,那么计算资源池中空闲计算单元数量则剩余3个,由于剩余的空闲计算单元数量小于第一阈值(5个),则需要在计算资源池中创建2个新的空闲计算单元,从而保证计算资源池中维持5个空闲计算单元,则当前计算资源池中一共有12个计算单元;
在第二个检测周期时,假如当前系统的计算资源池中已被使用的7个计算单元都被回收了,那么计算资源池中空闲计算单元数量则为12个,由于当前系统没有运行的计算单元,则当前计算资源池中的空闲计算单元数量已经超过第二阈值(10个),因此需要在计算资源池中删除2个空闲计算单元,则可以删除两个回收时间较早的计算单元,从而保证计算资源池中维持10个空闲计算单元。
本申请通过在动态创建和销毁计算单元,可以保证计算资源池中,任何时刻都有一定数量的空闲计算单元,从而保证任务到达时,无需新建计算单元,因此提高了任务执行效率。
作为一个实施例,管理服务器可以按照预设时间周期检测系统是否存在运行的会话单元,如果存在运行的会话单元,可以检测会话资源池中空闲会话单元的数量,若在预设的时间周期检测到所述会话资源池的空闲会话单元数量小于第三阈值时,则说明当前空闲会话单元的数量较少,因此需要创建新的会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第三阈值;如果不存在运行的会话单元,可以检测所述会话资源池的空闲会话单元数量是否大于第四阈值,所述第四阈值大于所述第三阈值,若是,则说明空闲会话单元的数量较多,因此可以将所述会话资源池中的空闲会话单元数量减少到等于所述第四阈值;若否,则创建新的会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第四阈值。其中,将所述会话资源池中的空闲会话单元减少到等于所述第四阈值,具体可以按照空闲会话单元在回收时的回收时间,删除所述会话资源池中的回收时间较早的部分空闲会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第四阈值。
下面结合图4对空闲会话单元的数量的维护进行详细说明。
请参见图4所示的计算单元维护流程图,其中包括:
步骤401、初始化时创建会话资源池,在会话资源池中创建空闲会话单元;
步骤402、当前系统中是否存在运行的会话单元,若是,则转步骤403;若否,则转步骤405;
步骤403、判断空闲会话单元的数量是否小于第三阈值,若是,则转步骤404;若否,则结束本周期,返回步骤402,等待下一周期的判断;
步骤404、创建新的会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第三阈值,并结束本周期,返回步骤402,等待下一周期的判断;
步骤405、判断空闲会话单元的数量是否大于第四阈值,若是,则转步骤406;若否,则转步骤407;
步骤406、删除回收时间较早的空闲会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第四阈值,并结束本周期,返回步骤402,等待下一周期的判断;
步骤407、创建新的会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第四阈值,并结束本周期,返回步骤402,等待下一周期的判断。
假设系统配置的所述第三阈值为3个,第四阈值为5个,也就是说在系统没有运行会话单元时,空闲会话单元数要维持5个;在系统运行时,空闲会话单元数要维持3个。由于客户端从一个会话连接提交的作业可能拆分成多个计算任务,因此会话单元的数量和计算单元的数量无需一一对应,计算单元的数量可以多于会话单元的数量。则具体维护过程如下:
在第一个检测周期时,假如当前系统的会话资源池中共有5个空闲会话单元,其中有3个会话单元已经被使用,那么计算资源池中空闲会话单元数量则剩余2个,由于剩余的空闲会话单元数量小于第一阈值(3个),则需要在会话资源池中创建1个新的空闲会话单元,从而保证会话资源池中维持3个空闲会话单元,则当前会话资源池中一共有5个会话单元;
在第二个检测周期时,假如当前系统的会话资源池中已被使用的3个会话单元都被回收了,那么会话资源池中空闲会话单元数量则为6个,由于当前系统没有运行的会话单元,则当前会话资源池中的空闲会话单元数量已经超过第二阈值(5个),因此需要在会话资源池中删除1个空闲会话单元,则可以删除两个回收时间较早的会话单元,从而保证会话资源池中维持5个空闲会话单元。
由于现有技术中,会在每个客户端提交作业前,为客户端创建并分配会话连接,在执行完客户端提交的作业后,还需要销毁该会话,而不是重用该会话,因此导致应用启动的延迟较大,降低了客户端向分布式计算系统提交作业的效率,降低了会话连接的利用率;而本申请可以使用已建立的会话连接,可以重复使用会话连接,并且通过动态的创建和删除来维护会话资源池的会话单元数量,因此本申请可以提升客户端向分布式计算系统提交作业的效率,优化会话连接的利用率。
相比于现有技术,本申请可以使管理服务器从预先启动的计算资源池和会话资源池中,获取已创建的空闲计算单元和空闲会话单元单元分配给客户端使用,不需要临时创建,从而降低调度时间,提高了执行效率;并且本申请还可以在计算任务执行完成后,回收分配的计算单元和会话单元,以使该系统可以重复使用计算单元和会话单元,因此不仅提高资源的利用率,还提升了分布式计算系统整体的计算执行效率及调度效率,此外本申请通过动态创建和销毁资源,可以已达到资源池中的资源数量稳定,避免资源过剩或者资源不足的情况,提升资源利用率。
与前述资源分配方法的实施例相对应,本申请还提供了用于执行上述资源分配方法的计算机设备的实施例。
作为一个实施例,请参考图5,一种计算机设备,包括处理器51、通信接口52、存储器53和通信总线54;
其中,所述处理器51、通信接口52、存储器53通过所述通信总线54进行相互间的通信;
所述存储器53,用于存放计算机程序;
所述处理器51,用于执行所述存储器上所存放的计算机程序,所述处理器51执行所述计算机程序时实现任一资源分配方法的步骤。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于计算机设备的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
与前述资源分配方法的实施例相对应,本申请还提供了用于执行上述资源分配方法的计算机可读存储介质的实施例。
作为一个实施例,本申请还包括一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一资源分配方法的步骤。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
综上所述,本申请可以使分布式计算系统的管理服务器在接收客户端发送的会话资源请求时,从本地预配置的会话资源池中获取空闲会话单元,将获取的所述空闲会话单元发送给所述客户端,以使所述客户端基于收到的空闲会话单元与本设备建立会话连接;并在收到客户端通过所述会话连接发送的计算资源请求时,从本地预配置的计算资源池中获取空闲计算单元,将获取的所述空闲计算单元通过所述会话连接发送给所述客户端。相比于现有技术,本申请可以使管理服务器将预先创建的会话单元和计算单元分配给客户端使用,不需要临时创建,从而降低了调度计算单元和会话单元的时间,提升了分布式计算系统整体的计算执行效率及调度效率。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种资源分配方法,其特征在于,所述方法应用于分布式计算系统的管理服务器,所述方法包括:
接收客户端发送的会话资源请求,从本地预配置的会话资源池中获取空闲会话单元,将获取的所述空闲会话单元发送给所述客户端,以使所述客户端基于收到的空闲会话单元与本设备建立会话连接;
接收客户端通过所述会话连接发送的计算资源请求,从本地预配置的计算资源池中获取空闲计算单元,将获取的所述空闲计算单元通过所述会话连接发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,在接收客户端发送的会话资源请求之前,所述方法还包括:
在本地预先配置会话资源池,所述会话资源池中包括多个会话单元,为每个会话单元设置状态标识,状态标识的初始状态为空闲状态;
所述从本地预配置的会话资源池中获取空闲会话单元,包括:
从所述会话资源池中查找状态标识为空闲状态的会话单元,从查找到的会话单元中任选一个会话单元作为所述空闲会话单元。
3.根据权利要求2所述的方法,其特征在于,所述在本地预先配置会话资源池,还包括:
为每个所述会话单元配置用于连接客户端的端口和IP地址;
所述将获取的所述空闲会话单元发送给所述客户端,以使所述客户端基于收到的空闲会话单元与本设备建立会话连接,包括:
将空闲会话单元的用于连接客户端的端口和IP地址发送给所述客户端,以使所述客户端基于收到的空闲会话单元的用于连接客户端的端口和IP地址与所述空闲会话单元建立连接。
4.根据权利要求1所述的方法,其特征在于,在接收客户端发送的计算资源请求之前,所述方法还包括:
在本地预先配置计算资源池,所述会话资源池中包括多个计算单元,为每个计算单元设置状态标识,状态标识的初始状态为空闲状态;
所述从本地预配置的计算资源池中获取空闲计算单元,包括:
从所述计算资源池中查找状态标识为空闲状态的计算单元,从查找到的计算单元中任选一个计算单元作为所述空闲计算单元。
5.根据权利要求4所述的方法,其特征在于,所述在本地预先配置计算资源池,还包括:
为每个计算单元配置指定的CPU核数和内存;
所述从查找到的计算单元中任选一个计算单元作为所述空闲计算单元,包括:
获取所述计算资源请求中所请求的计算资源的CPU核数和内存;
从所述查找到的计算单元中判断是否存在任一计算单元的CPU核数和内存与所请求的计算资源的CPU核数和内存相匹配;
如果存在,将所述计算单元作为所述空闲计算单元。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述客户端与所述目标计算单元断开连接时,回收所述目标计算单元到所述计算资源池,回收所述目标会话单元到所述会话资源池。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在预设时间周期内,判断当前时间周期内是否存在运行的计算单元;
如果是,在检测到所述计算资源池的空闲计算单元数量小于第一阈值时,创建新的空闲计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第一阈值;
如果否,检测所述计算资源池的空闲计算单元数量是否大于第二阈值,所述第二阈值大于所述第一阈值,若是,则将所述计算资源池中的空闲计算单元数量减少到等于所述第二阈值;若否,则创建新的空闲计算单元,以使所述计算资源池中的空闲计算单元数量等于所述第二阈值。
8.根据权利要求7所述的方法,其特征在于,所述将所述计算资源池中的空闲计算单元数量减少到等于所述第二阈值,包括:
按照空闲计算单元的回收时间,删除所述计算资源池中的回收时间较早的空闲计算单元以使所述计算资源池中的空闲计算单元数量等于所述第二阈值。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在预设时间周期内,判断当前时间周期内是否存在运行的会话单元;
如果是,在检测到所述会话资源池的空闲会话单元数量小于第三阈值时,创建新的空闲会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第三阈值;
如果否,检测所述会话资源池的空闲会话单元数量是否大于第四阈值,所述第四阈值大于所述第三阈值,若是,则将所述会话资源池中的空闲会话单元数量减少到等于所述第四阈值;若否,则创建新的空闲会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第四阈值。
10.根据权利要求9所述的方法,其特征在于,将所述会话资源池中的空闲会话单元减少到等于所述第四阈值,包括:
按照空闲会话单元的回收时间,删除所述会话资源池中的回收时间较早的部分空闲会话单元,以使所述会话资源池中的空闲会话单元数量等于所述第四阈值。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一所述方法的步骤。
12.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-10任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910488288.4A CN112052084A (zh) | 2019-06-05 | 2019-06-05 | 一种资源分配方法和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910488288.4A CN112052084A (zh) | 2019-06-05 | 2019-06-05 | 一种资源分配方法和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112052084A true CN112052084A (zh) | 2020-12-08 |
Family
ID=73609484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910488288.4A Pending CN112052084A (zh) | 2019-06-05 | 2019-06-05 | 一种资源分配方法和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052084A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017113074A1 (zh) * | 2015-12-28 | 2017-07-06 | 华为技术有限公司 | 一种资源的分配方法、装置和系统 |
CN107682397A (zh) * | 2017-08-28 | 2018-02-09 | 平安科技(深圳)有限公司 | 客户资源获取方法、装置、终端设备及存储介质 |
CN109450965A (zh) * | 2018-09-07 | 2019-03-08 | 海信集团有限公司 | 会话资源回收处理方法、装置、云平台及物联网系统 |
-
2019
- 2019-06-05 CN CN201910488288.4A patent/CN112052084A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017113074A1 (zh) * | 2015-12-28 | 2017-07-06 | 华为技术有限公司 | 一种资源的分配方法、装置和系统 |
CN107682397A (zh) * | 2017-08-28 | 2018-02-09 | 平安科技(深圳)有限公司 | 客户资源获取方法、装置、终端设备及存储介质 |
CN109450965A (zh) * | 2018-09-07 | 2019-03-08 | 海信集团有限公司 | 会话资源回收处理方法、装置、云平台及物联网系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737270B (zh) | 一种服务器集群的资源管理方法和装置 | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
WO2018149221A1 (zh) | 一种设备管理方法及网管系统 | |
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
CN109451051B (zh) | 服务请求处理方法、装置、电子设备及存储介质 | |
CN107613025B (zh) | 一种基于消息队列顺序回复的实现方法和装置 | |
CN110383764B (zh) | 无服务器系统中使用历史数据处理事件的系统和方法 | |
CN111897638B (zh) | 分布式任务调度方法及系统 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
CN105049268A (zh) | 分布式计算资源分配系统和任务处理方法 | |
EP3675434B1 (en) | Distributed system resource allocation method, device and system | |
CN104461744A (zh) | 一种资源分配方法及装置 | |
US8903981B2 (en) | Method and system for achieving better efficiency in a client grid using node resource usage and tracking | |
WO2017177806A1 (zh) | 一种管理资源的方法和装置 | |
CN110750339B (zh) | 一种线程调度方法、装置及电子设备 | |
CN110688213A (zh) | 一种基于边缘计算的资源管理方法、系统及电子设备 | |
EP4068725A1 (en) | Load balancing method and related device | |
US7219345B2 (en) | System and method for terminating processes in a distributed computing system | |
CN106789421B (zh) | 协同设计的方法和装置 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
JP5540269B2 (ja) | データ負荷分散配置システムおよびデータ負荷分散配置方法 | |
CN105550025A (zh) | 分布式基础设施即服务(IaaS)调度方法及系统 | |
CN107526632B (zh) | 进程池扩充方法和装置 | |
CN111835809B (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
CN109189581B (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 |