资源调度方法、装置、电子设备及计算机可读存储介质与流程

文档序号:22312913发布日期:2020-09-23 01:33阅读:106来源:国知局
资源调度方法、装置、电子设备及计算机可读存储介质与流程
本申请涉及云计算技术中的数据计算领域,尤其涉及一种资源调度方法、装置、电子设备及计算机可读存储介质。
背景技术
:随着计算机技术的发展,越来越多数据中心将基础设施容器化,容器编排系统也越来越成熟,能够支持更高级别的服务器的管理以及不同的资源调度策略。目前,针对容器编排系统中不同业务混合部署的情况,通常只考虑了单机的资源使用情况和pod资源使用情况,导致对服务系统中的资源利用率较低。技术实现要素:本申请提供了一种资源调度方法、装置、电子设备及计算机可读存储介质,以解决现有的服务系统中资源利用率较低的问题。第一方面,本申请提供了一种资源调度方法,包括:确定预设数量的服务中各服务的优先级;获取所述预设数量的服务中各服务的资源使用情况;在接收到目标服务的资源申请请求时,根据所述目标服务的优先级及所述各服务的资源使用情况,对所述资源申请请求进行响应;其中,所述目标服务为所述预设数量的服务中的任意一个。第二方面,本申请提供了一种贴纸测试装置,包括:确定模块,用于确定预设数量的服务中各服务的优先级;获取模块,用于获取所述预设数量的服务中各服务的资源使用情况;响应模块,用于在接收到目标服务的资源申请请求时,根据所述目标服务的优先级及所述各服务的资源使用情况,对所述资源申请请求进行响应;其中,所述目标服务为所述预设数量的服务中的任意一个。第三方面,本申请提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中所述的方法。第四方面,本申请提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面中所述的方法。本申请基于根据目标服务的优先级以及各服务的资源使用情况,来对目标服务的资源申请请求进行响应,以进行资源调度。这样,对于服务系统中的资源调度也就更合理,相比于仅从单个物理机上进行资源调度,本实施例提供的方案有效提高了整个服务系统中资源的利用率。上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1是本申请提供的一种资源调度方法的流程图;图1a是本申请提供的一种资源调度方法中获取各服务的资源使用情况的流程图;图1b是本申请提供的一种资源调度方法中对资源申请请求进行响应的流程图;图2是本申请提供的一种资源调度装置的结构图;图3是实现本申请实施例的资源调度方法的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本申请实施例提供了一种资源调度方法,该方法可以是应用于集群管理系统,在集群管理系统中,通常需要部署大量资源(如计算资源),这些资源可以部署在多个物理机,并且多个物理机之间可以实现资源的调度。其中,物理机可以包括但不限于以下至少一项:服务器、终端设备、手机、平板电脑、个人数字电脑、笔记本电脑、台式计算机等,对此物理机类型不做限定,本申请以下实施例中将以服务器为例进行说明。请参照图1,图1是本申请实施例提供的一种资源调度方法的流程图。如图1所示,该资源调度方法包括如下步骤:步骤s101:确定预设数量的服务中各服务的优先级。其中,所述服务是指能够应用于物理机上的一种应用程序类型。容易理解地,集群管理系统中通常部署有不止一个服务。本申请实施例中,所述预设数量可以是一个,也可以是多个,对此不做限定。其中,若预设数量为一个,那么本步骤中,也就能够确定该服务的优先级为最高级;若预设数量为多个,则需要确定这多个服务中各服务的优先级。需要说明的是,在集群管理系统包括的服务数量为多个的情况下,所述各服务的优先级可以是由用户预先设定的,或者也可以是基于各服务的资源使用情况来确定。例如,各服务的优先级高低与其资源使用量的大小呈正相关,资源使用量越大,则对应的服务的优先级越高。当然,各服务的优先级的确定方式还可以是其他方式,本实施例对此不做赘述。步骤s102:获取所述预设数量的服务中各服务的资源使用情况。其中,服务的资源使用情况可以是包括如下至少一项:中央处理器(centralprocessingunit,cpu)使用情况、内存使用情况、网络带宽使用情况、磁盘空间使用情况、输入输出(inputoutput,io)利用率情况。本申请实施例中,获取集群管理系统中各服务的资源使用情况,可以是获取各服务对应的cpu使用情况、内存使用情况、网络带宽使用情况、io利用率情况以及磁盘空间使用情况等。通过获取各服务的资源使用情况,使得集群管理系统能够在接收到某个服务的资源申请请求时,根据各服务的资源使用情况对资源进行合理调度。可选的,集群管理系统可以是获取预设时间段内各服务的资源使用情况,或者也可以是基于预设周期来获取不同时间段内各服务的资源使用情况,通过分析各服务在不同时间段内的资源使用情况,以更好地对资源进行调度。例如,假设所述服务为搜索服务,集群管理系统可以是分别获取该搜索服务在工作日和周末的资源使用情况,假设该搜索服务在工作日的资源使用情况要大于在周末的资源使用情况,进而当集群管理系统在周末接收到其他服务的资源申请请求时,可以将该搜索服务的部分资源调度至以供其他服务使用。这样,也就能够更合理地分配和管理各服务的资源使用情况,确保资源的利用率,也能够确保服务的有效运行。需要说明的是,本申请实施例所述的集群管理系统可以是k8s系统,k8s系统中部署有预设数量的服务,或者说k8s系统能够支持预设数量的服务。其中,pod为k8s系统中的最小部署单元,一个服务可以是通过多个pod联合完成。作为一种可选的实施方式,请参照图1a,所述步骤s102可以包括:步骤s1021:确定所述预设数量的服务中各服务对应的pod;步骤s1022:获取每一个服务对应的pod的资源使用情况并进行汇聚,以获得各服务的资源使用情况。可以理解地,一个服务可以是部署于多个pod,进而可以通过确定各服务对应的pod,并获取每一个服务对应的pod的资源使用情况并进行汇聚,也就能够获得各服务的资源使用情况。假设搜索服务部署在3个pod上,分别获取这三个pod的cpu使用情况、内存使用情况、网络带宽使用情况、io利用率使用情况等,并将这三个pod的上述资源使用情况进行汇聚,也就获得了该搜索服务的资源使用情况。本申请实施例中,通过获取预设数量的服务中各服务的资源使用情况,基于各服务的资源使用情况能够获得各服务对应的资源画像。需要说明的是,所述资源画像可以是指各服务的资源使用情况的平均值或是拟合均值等。例如,集群管理系统可以是获取多个时间段内各服务的资源使用情况,并对多个时间段内的资源使用情况计算平均值,进而获得各服务对应的资源画像,集群管理系统能够根据各服务的资源画像对各服务的后期资源使用情况进行预测,进而以方便集群管理系统对资源的调度。需要说明的是,所述资源画像的获取包括且不仅限于机器学习等多种方法来实现。可选的,对于多个时间段内各服务的资源使用情况,可以将明显高于或低于其他时间段资源使用情况的某个时间段资源使用情况当做异常数据,在计算平均值时不采集该异常数据,以保障计算获得的资源画像的准确性。步骤s103:在接收到目标服务的资源申请请求时,根据所述目标服务的优先级及所述各服务的资源使用情况,对所述资源申请请求进行响应。其中,所述目标服务为所述预设数量的服务中的任意一个。可以理解地,集群管理系统可以部署有多个服务,那么也就可以接收其中任意一个服务的资源申请请求。本申请实施例中,当集群管理系统接收到目标服务的资源申请请求时,先确定该目标服务的优先级,进而根据目标服务的优先级及各服务的资源使用情况来进行资源调度,以对所述资源申请请求进行响应。本申请实施例提供的技术方案,不再只是考虑单个物理机上的资源使用情况来对资源进行调度,而是从整个服务的角度进行考虑,根据目标服务的优先级以及整个集群管理系统中各服务的资源使用情况,来对目标服务的资源申请请求进行响应,以进行资源调度。这样,对于服务系统中的资源调度也就更合理,相比于仅从单个物理机上进行资源调度,本实施例提供的方案有效提高了整个集群管理系统中资源的利用率。可选的,请参照图1b,所述步骤s103可以包括:步骤s1031:在接收到目标服务的资源申请请求时,根据所述资源申请请求确定资源申请请求数量;步骤s1032:根据资源总量及所述各服务的资源使用情况确定剩余资源数量;步骤s1033:根据所述剩余资源数量及所述目标服务的优先级对所述资源申请请求进行响应。可以理解地,集群管理系统能够获知自身的资源总量,进而根据资源总量及各服务的资源使用情况也就能够计算出剩余资源数量;所述目标服务的资源申请请求中包括资源申请请求数量,进而根据资源申请请求数量也就能够确定剩余资源数量是否能够进行调度,以满足目标服务的资源申请请求,保障资源的合理调度,提高资源利用率。需要说明的是,在对目标服务的资源申请请求进行响应前,还需要考虑目标服务的优先级。例如,若目标服务的优先级较低,即使剩余资源数量满足资源申请请求数量,集群管理系统依然可以调度剩余资源给目标服务,以完成对目标服务的资源申请请求进行的响应。可选的,所述步骤s1033包括:在所述剩余资源数量大于所述资源申请请求数量的情况下,调度满足于所述资源申请请求数量的剩余资源供所述目标服务使用,以对所述资源申请请求进行响应;在所述剩余资源数量小于所述资源申请请求数量的情况下,若所述目标服务的优先级大于非目标服务的优先级,获取所述非目标服务的资源使用情况,根据所述非目标服务的资源使用情况及所述剩余资源对所述资源申请请求进行响应;其中,所述非目标服务为所述预设数量的服务中除所述目标服务外的至少一个。也就是说,若所述剩余资源数量大于目标服务的资源申请请求数量,则集群管理系统可以调度满足于资源申请请求数量的剩余资源供所述目标服务使用,进而以对目标服务的资源申请请求进行响应。这种情况下,由于剩余资源数量充足,可以不考虑目标服务的优先级,进而以确保目标服务的正常运行。例如,集群管理系统的剩余资源数量为6,若目标服务的资源申请请求数量为4,说明此时的剩余资源数量能够满足于目标服务的资源申请请求,则调度剩余资源中的4个以供目标服务使用,这样既能满足于目标服务的正常运行,也不会影响集群管理系统中其他非目标服务的运行。或者,若所述剩余资源数量小于所述资源申请请求数量,此时也就没有足够的剩余资源来对目标服务的资源申请请求进行响应,则获取目标服务的优先级,若目标服务的优先级大于非目标服务的优先级,此时则需要考虑非目标服务的资源使用情况,来对所述资源申请请求进行响应。具体的,所述获取所述非目标服务的资源使用情况,根据所述非目标服务的资源使用情况及所述剩余资源对所述资源申请请求进行响应,包括:获取所述非目标服务的未使用资源数量;在所述非目标服务的未使用资源数量小于预设数量的情况下,终止所述非目标服务,调度所述非目标服务的资源以及剩余资源供所述目标服务使用,以对所述资源申请请求进行响应;在所述非目标服务的未使用资源数量大于等于预设数量的情况下,调度所述非目标服务的未使用的资源以及剩余资源供所述非目标服务使用,以对所述资源申请请求进行响应;其中,所述预设数量为所述资源申请请求数量与所述剩余资源数量之差。需要说明的是,所述非目标服务可以是所述预设数量的服务中除所述目标服务外的其他所有服务,这种情况下,终止所述非目标服务也就是终止所述预设数量的服务中除目标服务外的其他所有服务,以确保能够调度足够的资源以供目标服务使用。或者,所述非目标服务也可以是所述预设数量的服务中除所述目标服务外的一个或多个服务,这种情况下,终止的也就是这一个或多个服务,确保集群管理系统在确保资源合理调度的情况下,除了目标服务还能够同时运行其他服务,以合理充分利用资源,提高资源利用率。以下,将通过一个具体的实施方式对上述步骤进行说明。服务可用资源申请资源剩余资源p1total∑req1total-∑req1p0total-∑used1∑req0total-∑used1-∑req0p2………请参照上述表格,其中p0、p1、p2分别代表服务,其优先级为p0>p1>p2;∑req0是p0申请的资源数量,∑used1是集群管理系统中p1已经使用的资源数量。例如,假设p0为目标服务,p1为非目标服务,集群管理系统的资源总数量total为10个,p1已申请的资源数量∑req1为6个,则集群管理系统的剩余资源数量为4个;若此时接收到目标服务p0的资源申请请求,p0的资源申请请求数量为5个,则此时集群管理系统的剩余资源数量小于资源申请请求数量,此时要分情况来对p0的资源申请请求进行响应。p1已申请的资源数量为6个,但是p1并不一定会全部使用这6个资源,可能只使用了其中的3个或4个,此时要考虑p0的未使用资源数量来对资源申请请求进行响应。例如,p1实际使用的资源数量为6个,那么p1的未使用资源数量为0,p1的未使用资源数量肯定是小于预设数量的,此时终止p1的服务,进而将p1申请的6个资源调度出来,在这6个资源以及剩余资源中选取满足资源申请请求数量的5个资源以供p0使用。或者,若p1实际使用的资源数量为4个,那么p1的未使用资源数量为2,该未使用资源数量大于预设数量(预设数量=资源申请请求数量-剩余资源数量,本实施方式中预设数量=5-4=1),则此时不需要终止p1,而是对p1的未使用资源进行调度,例如调度p1未使用资源中的1个以及4个剩余资源以供p0使用。这样,也就不会终止p1的服务,而同时又能满足p0的资源申请请求,从而能够对集群管理系统的资源得到充分利用,提高集群管理系统资源的利用率。本申请实施例提供的方案,通过确定各服务的优先级以及各服务的资源使用情况,进而在接收到目标服务的资源申请请求时,能够根据目标服务的优先级及各服务的资源使用情况,调度能够满足于资源申请请求的资源供目标服务使用,确保目标服务的正常运行。请参照图2,本申请实施例还提供了一种资源调度装置。如图2所示,所述资源调度装置200包括:确定模块201,用于确定预设数量的服务中各服务的优先级;获取模块202,用于获取所述预设数量的服务中各服务的资源使用情况;响应模块203,用于在接收到目标服务的资源申请请求时,根据所述目标服务的优先级及所述各服务的资源使用情况,对所述资源申请请求进行响应;其中,所述目标服务为所述预设数量的服务中的任意一个。可选的,所述响应模块203包括:第一确定单元,用于在接收到目标服务的资源申请请求时,根据所述资源申请请求确定资源申请数量;第二确定单元,用于根据资源总量及所述各服务的资源使用情况确定剩余资源数量;响应单元,用于根据所述剩余资源数量及所述目标服务的优先级对所述资源申请请求进行响应。可选的,所述响应单元还用于:在所述剩余资源数量大于所述资源申请请求数量的情况下,调度满足于所述资源申请请求数量的剩余资源供所述目标服务使用,以对所述资源申请请求进行响应;在所述剩余资源数量小于所述资源申请请求数量的情况下,若所述目标服务的优先级大于非目标服务的优先级,获取所述非目标服务的资源使用情况,根据所述非目标服务的资源使用情况及所述剩余资源对所述资源申请请求进行响应;其中,所述非目标服务为所述预设数量的服务中除所述目标服务外的至少一个。可选的,所述响应单元还用于:获取所述非目标服务的未使用资源数量;在所述非目标服务的未使用资源数量小于预设数量的情况下,终止所述非目标服务,调度所述非目标服务的资源以及剩余资源供所述目标服务使用,以对所述资源申请请求进行响应;在所述非目标服务的未使用资源数量大于等于预设数量的情况下,调度所述非目标服务的未使用的资源以及剩余资源供所述非目标服务使用,以对所述资源申请请求进行响应;其中,所述预设数量为所述资源申请请求数量与所述剩余资源数量之差。可选的,所述获取模块202还用于:确定所述预设数量的服务中各服务对应的pod;获取每一个服务对应的pod的资源使用情况并进行汇聚,以获得各服务的资源使用情况。本实施例提供的资源调度装置200能够实现上述资源调度方法实施例的全部技术方案,因此至少能够实现上述全部技术效果,此处不再赘述。根据本申请的实施例,本申请还提供了一种电子设备和一种计算机可读存储介质。如图3所示,是根据本申请实施例的资源调度方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。如图3所示,该电子设备包括:一个或多个处理器301、存储器302,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图3中以一个处理器301为例。存储器302即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的资源调度方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的资源调度方法。存储器302作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的资源调度方法对应的程序指令/模块(例如,附图2所示的确定模块201、获取模块202和响应模块203)。处理器301通过运行存储在存储器302中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的资源调度方法。存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据贴纸测试的电子设备的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至贴纸测试的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。资源调度方法的电子设备还可以包括:输入装置303和输出装置304。处理器301、存储器302、输入装置303和输出装置304可以通过总线或者其他方式连接,图3中以通过总线连接为例。输入装置303可接收输入的数字或字符信息,以及产生与贴纸测试电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置304可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。本申请实施例的技术方案,根据目标服务的优先级以及各服务的资源使用情况,来对目标服务的资源申请请求进行响应,以进行资源调度。这样,对于服务系统中的资源调度也就更合理,相比于仅从单个物理机上进行资源调度,本实施例提供的方案有效提高了整个服务系统中资源的利用率。应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1