CN114936089A - 资源调度方法、系统、设备及存储介质 - Google Patents
资源调度方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN114936089A CN114936089A CN202210442475.0A CN202210442475A CN114936089A CN 114936089 A CN114936089 A CN 114936089A CN 202210442475 A CN202210442475 A CN 202210442475A CN 114936089 A CN114936089 A CN 114936089A
- Authority
- CN
- China
- Prior art keywords
- resource
- algorithm model
- resource demand
- access
- user
- 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/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
- G06F9/505—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 considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
- G06F9/5072—Grid computing
Abstract
本申请实施例提供资源调度方法、系统、设备及存储介质。其中,该方法包括:基于历史时段用户针对算法模型的访问记录,预测第一资源需求量;其中,所述算法模型用于为用户提供相应的计算服务;获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量;综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或者缩容。通过上述方案,能够在面对多样化调度需求的情况下也获得准确的资源需求量,能够应对多样化、调度需求多变的资源调度场景,实现准确、及时的调度效果,本申请技术方案在进行资源调度的时候具有更高灵敏度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及资源调度方法、系统、设备及存储介质。
背景技术
随着云计算技术的发展,越来越多的用户选择通过云计算平台实现任务需求。
在现有技术当中,云计算平台可以为用户提供各种可直接调用的模型,这些模型直接部署在云计算平台上,比如,图像识别算法模型等。当用户任务有模型调用需求的时候,则可以直接调用。在实际应用中,可能会有很多用户同时需要调用某个模型,造成资源不足,无法满足那么多的用户的调用需求。还可能当前时间没有多少用户调用模型,导致模型的资源浪费。此外,由于调用该模型的用户有很多,这些用户的资源调度习惯和资源调度规律各不相同,也导致资源调度需求复杂多变。因此,需要一种具有更好调度效果的资源调度方案。
发明内容
为解决或改善现有技术中存在的问题,本申请各实施例提供了资源调度方法、系统、设备及存储介质。
第一方面,在本申请的一个实施例中,提供了一种资源调度方法。该方法包括:
基于历史时段用户针对算法模型的访问记录,预测第一资源需求量;其中,所述算法模型用于为用户提供相应的计算服务;
获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量;
综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或者缩容。
第二方面,在本申请的一个实施例中,提供了一种资源调度方法。该方法包括:
响应于用户的访问请求,生成对部署在云平台上算法模型的访问记录,以便所述算法模型基于所述访问记录请求调用所述云平台的资源;由所述云平台根据历史时段用户针对算法模型的访问记录,预测第一资源需求量;以及,当前时段所述访问记录的访问频率,确定第二资源需求量;综合所述第一资源需求和所述第二资源需求对所述算法模型对应的资源进行相应的扩容或者缩容,以使所述算法模型满足用户的计算需求;
接收所述算法模型反馈的计算结果。
第三方面,在本申请的一个实施例中,提供了一种资源调度系统,所述系统包括:
云平台,用于基于历史时段用户针对算法模型的访问记录,预测第一资源需求量;其中,所述算法模型用于为用户提供相应的计算服务;获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量;综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或者缩容;
客户端,用于响应于用户的访问请求,生成对部署在云平台上算法模型的访问记录,以便所述算法模型基于所述访问记录请求调用所述云平台的资源;由所述云平台根据历史时段用户针对算法模型的访问记录,预测第一资源需求量;以及,当前时段所述访问记录的访问频率,确定第二资源需求量;综合所述第一资源需求和所述第二资源需求对所述算法模型对应的资源进行相应的扩容或者缩容,以使所述算法模型满足用户的计算需求;接收所述算法模型反馈的计算结果。
第四方面,在本申请的一个实施例中,提供了一种电子设备,包括存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于实现第一方面所述的一种资源调度方法或第二方面所述的一种资源调度方法。
第五方面,在本申请的一个实施例中,提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如第一方面所述的一种资源调度方法或第二方面所述的一种资源调度方法。
本申请实施例提供的技术方案中,在云平台上部署有可供用户调用的各种模型,比如算法模型,以便为用户提供相应服务。将算法模型部署到云平台之后,可以对用户对算法模型或者算法模型对云平台资源的访问情况实时监测,能够及时确定当前的资源需求量,根据资源需求量进行资源调度,满足复杂多变的调度需求。具体来说,利用历史访问记录生成具有主动调度效果的第一资源需求量;并通过对访问记录的访问频率的实时监测,生成用于被动资源调整的第二资源需求量。进而,综合利用第一资源需求量和第二资源需求量,按照综合处理结果进行资源调度,从而能够获得更及时、更准确的资源调度效果。第一资源需求量可以通过在线预测模型进行预测,该在线预测模型能够实时在线进行训练优化,因此,能够在面对多样化调度需求的情况下也能够获得准确的资源需求量。为了避免预测模型出现预测不准导致资源调度失败的情况,还配置有第二资源需求量。通过上述方案,能够应对多样化、调度需求多变的资源调度场景,实现准确、及时的调度效果,本调度方案的灵敏度更高、更灵活。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的资源调度方法的流程示意图;
图2为本申请实施例举例说明一种资源调度方法的流程示意图;
图3为本申请实施例提供的一种模型训练方法的流程示意图;
图4为本申请实施例举例说明的在线预测模型的框架示意图;
图5为本申请实施例提供的另一种资源调度方法的流程示意图;
图6为本申请实施例举例说明的资源调度流程示意图;
图7为本申请实施例提供的一种资源调度装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图;
图9为本申请实施例提供的另一种资源调度装置的结构示意图;
图10为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。此外,下文描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着云计算技术的发展,越来越多的场景中,比如,利用云计算进行图像识别场景、文字识别场景等等,需要调用部署在云平台上的算法模型提供计算服务,以完成相应计算任务。部署在云平台的算法模型,通常具有较好硬件配置,能为很多用户提供计算服务。一般来说,算法模型在部署到云平台之前,算法模型在上线部署前需要确定模型部署所需的硬件资源规格(常规手段是按照访问信息的访问频率放大N倍后进行压测),如:1cpu、4G内存。并对算法模型的访问频率(每秒查询率,Queries-per second,QPS)是对一个特定的查询服务器在规定时间(每秒钟)内所处理流量多少的衡量标准)进行评估后,放大N倍进行压测等流程。但是,真实环境访问量爆发,当访问频率超过算法模型当前配置资源的承载能力时,算法模型需要对资源进行紧急扩容。这种扩容方式属于被动扩容,又是难以满足爆发访问量的资源需求,导致用户体验差。此外,在有的真实环境访问量很少,将会导致资源浪费。以及,在一些情况下,若有多个算法模型在使用同一组资源,有的算法模型资源闲置,闲置资源不能得到及时释放,而另一些算法模型资源紧张,无法得到及时扩容的矛盾情况。因此,需要一种能够及时进行资源调度的方案。
在本申请技术方案中,具体工作过程,将在下述实施例中说明。
如图1为本申请实施例提供的资源调度方法的流程示意图。该资源调度方法的执行主体可以是服务端设备(比如,云服务端等)如图1所示,该资源调度方法包括如下步骤:
步骤101:基于历史时段用户针对算法模型的访问记录,预测第一资源需求量;其中,所述算法模型用于为用户提供相应的计算服务。
步骤102:获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量。
步骤103:综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或者缩容。
需要说明的是,预测第一资源需求量的方式可以是利用训练好的固定的机器学习模型,在线预测模型进行预测。其中,训练好的机器学习模型是固定的,通常是基于同一个访问发起方训练,并且只对该访问发起方起到很好的预测效果,对于其他的访问发起方不能起到预测作用。在线预测模型(比如,Alink)是机器学习的一种,可以根据线上数据的变化,实时优化训练模型,是模型能够适应线上的实时变化,从而提高线上预测的准确率。
在线预测模型尤其适用于当有多个用户或者客户端需要使用算法模型的情况,而且各个用户或者客户端是按照各自的习惯、需求使用算法模型,各个用户或者客户端的使用需求实时变化,规律性不强。该在线预测模型可以利用历史时段(也就是被接入或者部署到云平台之前)先进行初步训练,得到初始模型,然后将该在线预测模型接入云平台后,可以利用实时得到的数据对该在线预测模型进行优化,从而使得在线预测模型能够基于最新数据训练后具有更好的灵敏度,能够根据最新的用户或客户端的资源调用情况实现更加准确的预测效果。利用该在线预测模型所得到的第一资源需求量是超前预测的结果,可以为算法模型提前进行扩容或缩容,是一种主动扩容或缩容方式,能够避免被动扩容导致扩容不及时的问题出现,或者被动缩容不及时导致资源闲置浪费以及导致其他算法模型资源匮乏的问题出现。
这里所说的云平台,比如可以是kubernetes:简称K8s,可用于管理云平台中多个主机上的容器化的应用,从而使得部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。当然,在进行资源调度的时候,可以以pod容器为粒度进行调度,也可以以为其他容器为粒度进行调度。
这里所说的第一资源需求量和第二资源需求量,可以理解为算法模型对硬件(比如,CPU、内存、GPU等)相关资源的需求。资源需求量,可以是扩容(增大当前资源需求)的数量或缩容(减小当前资源需求,对当前占用资源进行释放)的数量。比如,扩容4G内存,或者,缩容4G内存。
这里所说的访问频率可以是每秒查询率(Queries-per second,QPS)是对一个特定的查询服务器在规定时间(每秒钟)内所处理流量的多少。因此,可以将访问频率作为资源容量进行调整的一个参考依据。一般来说,算法模型所能承受的访问频率都需要经过极限压力测试,也就是说,理论上该算法模型能够承受住较高访问频率情况下的资源调度需求。然而,该算法模型的最初资源配置中是有一定的访问频率上限的,当达到或者接近上限值的时候,就需要进行扩容。简单来说就是,当访问频率大于一定阈值时,说明当前资源无法满足接下来可能再继续增长的访问请求对资源的调用需求,因此,需要进行资源扩容;或者是,当访问频率小于一定阈值时,说明当前算法模型资源过分充足而导致资源闲置浪费,因此,可以对当前已配置资源进行适当缩容,释放出部分资源供其他算法模型使用。
这里所说的综合第一资源需求量和第二资源需求量,可以理解为对第一资源需求量和第二资源需求量进行综合处理。综合处理的方式可以是利用配置策略对通过不同方式所评估得到的资源需求量的结果进行优先级设置,比如,当在线预测模型具有较高预测准确性的情况下,则将该在线预测模型预测得到的结果“第一资源需求量”作为用于对算法模型对应的资源进行相应扩容或者缩容的依据;该在线预测模型所预测得到的结果具有超前效果,能够提前对资源进行相应的扩容或者缩容调整。
这里所说的历史时段访问记录,可以理解为在当前时段之前由至少一个用户或者客户端发起的对算法模型访问请求的记录。
在本申请实施例中,通过在线预测模型和实时计算模型,分别得到一个资源需求量。进而,综合第一资源需求量和第二资源需求量的优先级顺序等,对当前算法模型的资源进行调整,包括按照需求进行资源扩容,或者进行资源缩容,以便在满足用户或者客户端的资源使用需求的同时避免发生资源闲置等情况。
在本申请的一个或者多个实施例中,所述基于历史时段用户针对算法模型的访问记录,预测第一资源需求量,包括:获取所述历史时段用户针对算法模型的访问记录中包含的访问主体标识。基于所述访问主体标识,利用在线预测模型预测所述第一资源需求量。
在实际应用中,部署在云平台上的算法模型等可以同时为多个用户提供计算服务。容易理解的是,不同用户对算法模型的调用习惯可能不完全相同,因此,可以利用在线预测模型来预测第一资源需求量,该模型能够根据需要实现在线优化训练。比如,将在线预测模型接入平台执行预测工作的时候,会在线收集一段时间内的访问记录,并将该访问记录作为训练样本对在线预测模型进行优化训练,从而使得在线预测模型能够实时动态更新,基于最新情况作出更加准确的预测。
假设,当前有两个用户,分别是用户甲和用户乙使用同一算法模型和同一组资源来完成图像识别任务。进一步假设第一个星期,用户甲有新产品发布,吸引来大量使用者体验用户甲提供的产品,则会导致访问量爆发的情况。而用户乙的产品出现小的问题,需要进一步优化调整,导致使用者数量逐渐减少。那么,在线预测模型在正常使用的时候,在线收集用户甲和用户乙对算法模型的访问情况,进而,基于访问记录得到用于对在线预测模型进行优化训练的训练样本,该训练样本中,需要明确包含有访问主体标识,以使得训练优化后得到的在线预测模型能够实现对各个用户以及整体用户的资源需求量。利用最新得到的在线访问记录作为训练样本,满足对多用户资源需求的准确预测要求。
在本申请的一个或者多个实施例中,如图2为本申请实施例举例说明一种资源调度方法的流程示意图。从图2中可以看到,所述综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或缩容,包括:201:若所述在线预测模型的预测结果符合预期结果,则基于配置策略确定按照所述第一资源需求量对所述算法模型对应的资源进行相应的扩容或缩容。202:若所述在线预测模型的预测结果不符合预期结果,则基于配置策略确定按照所述第二资源需求量对所述算法模型对应的资源进行相应的扩容或缩容。203:所述在线预测模型利用当前时段之前的访问记录进行训练优化,若训练优化后的预测结果不符合预期结果,则基于配置策略确定按照所述第二资源需求量对所述算法模型对应的资源进行相应的扩容或缩容。
在实际应用中,在线预测模型只有在基于历史访问记录训练完成后才可以部署到线上为算法模型提供预测服务。具体来说,当训练后的在线预测模型的预测结果能够符合预期结果(算法模型在一段时间后的资源使用量)的时候(当然,也可以基于损失函数确定在线预测模式是否可以用于进行在线预测),则认为该在线预测模型的预测结果可靠,因此,可以根据配置策略对不同方式多得到的资源需求量的优先级进行调整,将第一资源需求量调整为最高优先级。换言之,按照第一资源需求量对算法模型的资源进行相应的扩容或者缩容。
在线预测模型在提供在线预测是可以基于在线访问记录作为训练样本对其进行优化训练的。需要说明的是,虽然在线预测模型能够实现预测并主动进行资源调度,但是难免出现预测不准的情况。若经过将预测结果与实际资源调度情况对比发现预测结果不符合实际进行资源调度过程中所预期结果不匹配,则认为当前优化训练得到的在线预测模型不准确,为了避免造成不良影响,则会根据配置策略,对通过不同方式得到的资源需求量进行优先级调整,将第二资源需求量调整为最高优先级,并按照第二资源需求量对所述算法模型对应的资源进行相应的扩容或缩容。
可知,通过配置策略可以根据实际情况对多种不同方式所得到资源需求量进行综合处理,进行优先级调整,从而选择出更加符合实际情况的资源需求量以便能够满足算法模型的实际资源调度需求。基于上述实施例可以,在利用多种方式评估资源需求量的同时,还进一步利用配置策略根据实际情况筛选出准确率更高的资源需求量,具有更高的灵敏度和更准确的预测效果,有效解决资源不足或者资源闲置问题的出现。
在本申请的一个或者多个实施例中,如图3为本申请实施例提供的一种模型训练方法的流程示意图。从图3中可以看到,所述在线预测模型利用当前时段之前的访问记录进行训练优化方式,包括:301:对顺序获取的所述访问记录进行数据处理,生成包含有所述访问主体标识的多个训练样本。302:按照所述训练样本的获取顺序对所述在线预测模型进行训练。303:若训练后的所述在线预测模型的损失函数符合阈值,则确定所述预测结果符合预期结果。
为了便于理解,下面将结合附图对在线预测模型的整体框架进行举例说明。如图4为本申请实施例举例说明的在线预测模型的框架示意图。从图4中可以看到,包含有初始模型(Initial model)、流式向量训练数据(Train stream data)、流式向量预测数据(Teststream data)、在线预测模型训练、在线预测模型预测。在进行在线训练的时候,训练样本以数据流的形式输入到在线预测模型训练单元对其进行训练。在训练完成后,将优化后的模型参数传递给在线预测模型预测单元,以便基于优化后的模型参数进行相关预测工作。
在实际应用中,在线预测模型接入平台开始执行预测工作之后,利用在线实时得到的访问记录执行相应的预测工作。同时,还会收集访问记录,比如,按照一定周期进行收集,将收集得到的访问进行处理为携带有访问主体标识的数据流作为训练样本对在线预测模型进行训练。需要说明的是,为了确保训练效果,在利用数据流进行训练的时候,要严格按照数据流的先后顺序输入到待训练优化的在线预测模型训练单元中。通过训练可以得到在线预测模型的损失函数。当损失函数符合阈值的时候,则认为训练优化完成,可以利用最新得到的在线预测模型执行相应的预测任务。
在本申请的一个或者多个实施例中,所述获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量,包括:若所述访问频率大于第一频率阈值,则确定包含有扩大资源调度和扩大数量的第二资源需求量。若所述访问频率小于第二频率阈值,则确定包含有缩小资源调度和缩小数量的第二资源需求量。
在实际应用中,还可以对用户对算法模型的访问情况进行监测,从而可以直接判断出当前资源是否能够满足资源需求,为资源调整提供依据。这种调整方式是在已经出现资源不足或者资源闲置的迹象的情况下,再进行相应的资源调整。这种调整方式是相对于基于在线预测模型调整方式来说,属于被动调整。但是本方案中,是基于实时获取到的访问频率等信息确定第二资源需求量,虽然属于被动调整,但是反应灵敏,能够提升被动调整的及时效果。
举例来说,假设,设定第一频率阈值为30次/秒,用户甲第一时刻访问频率Qps为10次/秒,在第二时刻频率阈值50次/秒,大于第一频率阈值30次/秒,并且连续多个时刻(或者在一段时间内有多次)都超过第一频率阈值,则认为需要扩大资源调度和扩大数量。设定第二频率阈值为5次/秒,用户甲第三时刻访问频率Qps为10次/秒,在第四时刻频率阈值4次/秒,小于第二频率阈值5次/秒,并且连续多个时刻(或者在一段时间内有多次)都小于第一频率阈值,则认为需要缩小资源调度和缩小数量。
由于访问频率的采集频率比较高,能够及时发现最新资源需求量,尽可能避免出现因为资源不足而影响算法模型的正常工作。在资源需求量复杂多变的场景中,仅通过一种方式确定的资源需求量准确性不高,因此,本方案采用通过在线预测模型和实时访问频率模型同时计算资源需求量的方式,综合评估出该如何进行资源调度,从而获得更加准确、及时的资源调度结果,以满足算法模型的资源需求,同时避免资源浪费。
此外,还可以预置有基础的资源调度规则,比如,对各种资源设定调整阈值。例如,设定CPU扩容阈值为使用率达到90%,缩容阈值为使用率达到30%等;换言之,当监测发现当前CPU使用率达到90%并且持续一段时间,则表示存在资源不足的风险,需要对其进行扩容;当监测发现当前CPU使用率大30%并持续一段时间,则表示存在资源闲置情况,则对其进行缩容处理,释放闲置资源。
在本申请的一个或者多个实施例中,所述综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或缩容,包括:根据所述预设的配置策略中的权重关系,通过所述第一资源需求量和所述第二资源需求量确定综合资源需求量。根据所述综合资源需求量进行相应的扩容或者缩容。
在实际应用中,资源配置策略除了对不同方式得到的资源需求量的优先级进行调整之外,还可以对不同方式得到的资源需求量设定对应的权重,并经过综合计算确定出综合资源需求量。
例如,设定通过在线预测模型得到的第一资源需求量的权重系数为0.8,基于实时访问频率确定的第二资源需求量的权重系数为0.2。当得到的第一资源需求量为:对内存扩容,扩容量为4G;第二资源需求量为:对内存进行扩容2G;经过计算得到综合资源需求量为4*0.8+2*0.2=3.6,由于没有3.6G内存,因此,采用四舍五入的方式,得到对内存进行扩容,扩容量为4G。
在实际应用中,权重系数还可以根据资源配置策略进行动态调整。比如,当在线预测模型优化后的预测效果不佳,则可以将第一资源需求量对应的权重系数调整为0.1,而将第二资源需求量对应的权重系数调整为0.9,从而能够获得更加准确的预测结果。
在通过上述实施例完成对同时部署在同一云平台,并且调用同一组资源的多个算法模型的资源需求评估的时候,将扩容需求可能性更大的算法模型分配资源。具体举例来说,
当某个算法模型有扩容需求,但是,此时可被调度资源不足以满足该算法模型的资源扩容需求。则此时可以发出紧急资源调度请求,然后获取其他各个算法模型当前资源使用情况,以及未来扩容可能性大小。从而,从至少一个当前资源闲置较多,而且未来扩容可能性小的算法模型的配置资源中释放出部分资源以满足具有紧急扩容需求的某个算法模型。因此,采用上述实施例提供的扩容或缩容方案,能够实现高效、准确、及时的资源评估与调度,本申请技术方案采用主动资源调度(扩容或者缩容)与被动资源调度(扩容或者缩容)相结合的方式,具有较高的灵敏度,适用于各种突发资源调度需求的情况,能够更好的提高资源利用率。
需要说明的是,本申请方案中是以算法模型为例对本方案实现过程进行举例说明的。在实际应用中,除了算法模型之外,还可是其他各种模型,比如资源管理模型等有资源调度、配置需求的模型。
基于同样的思路,本申请实施例还提供另一种资源调度方法。如图5为本申请实施例提供的另一种资源调度方法的流程示意图,该方法可以应用于客户端,所述方法具体包括如下步骤:
501:响应于用户的访问请求,生成对部署在云平台上算法模型的访问记录,以便所述算法模型基于所述访问记录请求调用所述云平台的资源。由所述云平台根据历史时段用户针对算法模型的访问记录,预测第一资源需求量;以及,当前时段所述访问记录的访问频率,确定第二资源需求量;综合所述第一资源需求和所述第二资源需求对所述算法模型对应的资源进行相应的扩容或者缩容,以使所述算法模型满足用户的计算需求。
502:接收所述算法模型反馈的计算结果。
需要说明的是,当用户通过客户端向对应的算法模型发送访问请求后,该访问记录可以由客户端记录然后发送给算法模型,当然,也可以由云平台进行记录,或者,客户端和云平台同时记录。下述实施例中,将以访问记录被记录在客户端为例进行举例说明,但并不构成对本申请技术方案的限制。
作为一可选方案,用户可以通过客户端向对应的算法模块发送访问请求。由于算法模型是被部署在云平台,可供很多用户调用的模型,虽然这里仅以一个客户端发送访问请求为例进行举例说明,在实际情况当中可能有很多个用户通过客户端发起对算法模型的访问请求。由于参与访问的用户比较多,资源需求量复杂多变,因此,采用不同方式分别获取第一资源需求量和第二资源需求量。进而,根据资源配置策略确定能够满足用户需求的资源需求量,并按照资源需求量为算法模型进行资源扩容或者缩容调整。对于第一资源需求量、第二资源需求量确定相关技术方案、以及基于第一资源需求量、第二资源需求量进行资源调度相关方案在上述实施例中已经进行解释说明,这里就不再重复赘述,具体可参考图1至图4对应的实施例。
为了便于理解,下面将以云平台为K8s云平台进行资源调度为例对本申请方案进行举例说明。如图6为本申请实施例举例说明的资源调度流程示意图。从图6中可以看到,在将算法模型接入云平台后,云平台会对该算法模型交互过程中的请求信息进行监测。请求信息会通过消息队列方式发送到实时Qps感知模块实时进行Qps计算,同时Qps计算结果会发送到起到配置策略调整作用的协同模块。同时,在线预测模型会使用线上访问记录逐条训练在线预测模型,从而完成对在线预测模型的迭代优化,在线预测模型能够实现很好地预测效果。在线预测模型会根据访问记录输出的起到决策作用的第一资源需求量,并将该第一资源需求量发送给到协同模块。此外,还可以针对协同模块配置有基本的用于资源调度的规则(比如,设定基本资源调度规则为:当CPU使用率达到90%的时候,对CPU进行扩容)。协同模块根据配置策略最终决定如何对资源进行调度,配置策略可以设定各种方式所得到的资源需求量的优先级、上限下限、权重系数等,同时该配置策略还可以根据需要对优先级、上限下行、权重系数等进行调整,以便获得更加准确的资源调整需求。资源调整模块根据接入的不同云平台资源(比如图6中为K8s云平台),使用相应的API进行资源调整命令的发送和执行。
基于同样的思路,本申请实施例还提供一种资源调度装置。如图7为本申请实施例提供的一种资源调度装置的结构示意图。该资源调度装置包括:
预测模块71,用于基于历史时段用户针对算法模型的访问记录,预测第一资源需求量;其中,所述算法模型用于为用户提供相应的计算服务。
确定模块72,用于获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量。
资源调整模块73,用于综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或者缩容。
可选地,预测模块71,用于获取所述历史时段用户针对算法模型的访问记录中包含的访问主体标识;基于所述访问主体标识,利用在线预测模型预测所述第一资源需求量。
可选地,资源调整模块73,用于若所述在线预测模型的预测结果符合预期结果,则基于配置策略确定按照所述第一资源需求量对所述算法模型对应的资源进行相应的扩容或缩容;
若所述在线预测模型的预测结果不符合预期结果,则基于配置策略确定按照所述第二资源需求量对所述算法模型对应的资源进行相应的扩容或缩容。
可选地,资源调整模块73,还用于所述在线预测模型利用当前时段之前的访问记录进行训练优化,若训练优化后的预测结果不符合预期结果,则基于配置策略确定按照所述第二资源需求量对所述算法模型对应的资源进行相应的扩容或缩容。
可选地,还包括训练模块74,用于对顺序获取的所述访问记录进行数据处理,生成包含有所述访问主体标识的多个训练样本;
按照所述训练样本的获取顺序对所述在线预测模型进行训练;
若训练后的所述在线预测模型的损失函数符合阈值,则确定所述预测结果符合预期结果。
可选地,确定模块72,用于若所述访问频率大于第一频率阈值,则确定包含有扩大资源调度和扩大数量的第二资源需求量;
若所述访问频率小于第二频率阈值,则确定包含有缩小资源调度和缩小数量的第二资源需求量。
可选地,资源调整模块73,还用于根据所述预设的配置策略中的权重关系,通过所述第一资源需求量和所述第二资源需求量确定综合资源需求量;根据所述综合资源需求量进行相应的扩容或者缩容。
本申请一个实施例还提供一种电子设备。该电子设备为计算单元中主节点电子设备。如图8为本申请实施例提供的一种电子设备的结构示意图。该电子设备包括存储器801、处理器802及通信组件803;其中,
所述存储器801,用于存储程序;
所述处理器802,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
基于历史时段用户针对算法模型的访问记录,预测第一资源需求量;其中,所述算法模型用于为用户提供相应的计算服务;
获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量;
综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或者缩容。
上述存储器801可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
进一步地,本实施例中的所述处理器802可以具体是:可编程交换处理芯片,该可编程交换处理芯片中配置有数据复制引擎,能对接收到的数据进行复制。
上述处理器802在执行存储器中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。进一步,如图8所示,电子设备还包括:电源组件804等其它组件。
本申请实施例还提供一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行图1对应实施例所述的方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令被处理器执行时,致使所述处理器能够实现图1对应实施例所述的方法。
基于同样的思路,本申请实施例还提供另一种资源调度装置。如图9为本申请实施例提供的另一种资源调度装置的结构示意图。该资源调度装置包括:
发送模块91,用于响应于用户的访问请求,生成对部署在云平台上算法模型的访问记录,以便所述算法模型基于所述访问记录请求调用所述云平台的资源。由所述云平台根据历史时段用户针对算法模型的访问记录,预测第一资源需求量;以及,当前时段所述访问记录的访问频率,确定第二资源需求量;综合所述第一资源需求和所述第二资源需求对所述算法模型对应的资源进行相应的扩容或者缩容,以使所述算法模型满足用户的计算需求。
接收模块92,用于接收所述算法模型反馈的计算结果。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令被处理器执行时,致使所述处理器能够实现图6对应实施例所述的方法。
本申请一个实施例还提供一种电子设备。该电子设备为计算单元中备节点电子设备。如图10为本申请实施例提供的另一种电子设备的结构示意图。该电子设备包括存储器1001、处理器1002及通信组件1003;其中,
所述存储器1001,用于存储程序;
所述处理器1002,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
响应于用户的访问请求,生成对部署在云平台上算法模型的访问记录,以便所述算法模型基于所述访问记录请求调用所述云平台的资源;由所述云平台根据历史时段用户针对算法模型的访问记录,预测第一资源需求量;以及,当前时段所述访问记录的访问频率,确定第二资源需求量;综合所述第一资源需求和所述第二资源需求对所述算法模型对应的资源进行相应的扩容或者缩容,以使所述算法模型满足用户的计算需求;
接收所述算法模型反馈的计算结果。
上述存储器1001可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
进一步地,本实施例中的所述处理器1002可以具体是:可编程交换处理芯片,该可编程交换处理芯片中配置有数据复制引擎,能对接收到的数据进行复制。
上述处理器1002在执行存储器中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。进一步,如图10所示,电子设备还包括:电源组件1004等其它组件。
本申请实施例还提供一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行图5对应实施例所述的方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令被处理器执行时,致使所述处理器能够实现图5对应实施例所述的方法。
基于上述实施例,在云平台上部署有可供用户调用的各种模型,比如算法模型,以便为用户提供相应服务。将算法模型部署到云平台之后,可以对用户对算法模型或者算法模型对云平台资源的访问情况实时监测,能够及时确定当前的资源需求量,根据资源需求量进行资源调度,满足复杂多变的调度需求。具体来说,利用历史访问记录生成具有主动调度效果的第一资源需求量;并通过对访问记录的访问频率的实时监测,生成用于被动资源调整的第二资源需求量。进而,综合利用第一资源需求量和第二资源需求量,按照综合处理结果进行资源调度,从而能够获得更及时、更准确的资源调度效果。第一资源需求量可以通过在线预测模型进行预测,该在线预测模型能够实时在线进行训练优化,因此,能够在面对多样化调度需求的情况下也能够获得准确的资源需求量。为了避免预测模型出现预测不准导致资源调度失败的情况,还配置有第二资源需求量。通过上述方案,能够应对多样化、调度需求多变的资源调度场景,实现准确、及时的调度效果,本调度方案的灵敏度更高、更灵活。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种资源调整方法,其特征在于,所述方法包括:
基于历史时段用户针对算法模型的访问记录,预测第一资源需求量;其中,所述算法模型用于为用户提供相应的计算服务;
获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量;
综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或者缩容。
2.根据权利要求1所述的方法,其特征在于,所述基于历史时段用户针对算法模型的访问记录,预测第一资源需求量,包括:
获取所述历史时段用户针对算法模型的访问记录中包含的访问主体标识;
基于所述访问主体标识,利用在线预测模型预测所述第一资源需求量。
3.根据权利要求2所述的方法,其特征在于,所述综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或缩容,包括:
若所述在线预测模型的预测结果符合预期结果,则基于配置策略确定按照所述第一资源需求量对所述算法模型对应的资源进行相应的扩容或缩容;
若所述在线预测模型的预测结果不符合预期结果,则基于配置策略确定按照所述第二资源需求量对所述算法模型对应的资源进行相应的扩容或缩容。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述在线预测模型利用当前时段之前的访问记录进行训练优化,若训练优化后的预测结果不符合预期结果,则基于配置策略确定按照所述第二资源需求量对所述算法模型对应的资源进行相应的扩容或缩容。
5.根据权利要求4所述的方法,其特征在于,所述在线预测模型利用当前时段之前的访问记录进行训练优化方式,包括:
对顺序获取的所述访问记录进行数据处理,生成包含有所述访问主体标识的多个训练样本;
按照所述训练样本的获取顺序对所述在线预测模型进行训练;
若训练后的所述在线预测模型的损失函数符合阈值,则确定所述预测结果符合预期结果。
6.根据权利要求1所述的方法,其特征在于,所述获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量,包括:
若所述访问频率大于第一频率阈值,则确定包含有扩大资源调度和扩大数量的第二资源需求量;
若所述访问频率小于第二频率阈值,则确定包含有缩小资源调度和缩小数量的第二资源需求量。
7.一种资源调度方法,其特征在于,应用于客户端,所述方法包括:
响应于用户的访问请求,生成对部署在云平台上算法模型的访问记录,以便所述算法模型基于所述访问记录请求调用所述云平台的资源;由所述云平台根据历史时段用户针对算法模型的访问记录,预测第一资源需求量;以及,当前时段所述访问记录的访问频率,确定第二资源需求量;综合所述第一资源需求和所述第二资源需求对所述算法模型对应的资源进行相应的扩容或者缩容,以使所述算法模型满足用户的计算需求;
接收所述算法模型反馈的计算结果。
8.一种资源调度系统,其特征在于,所述系统包括:
云平台,用于基于历史时段用户针对算法模型的访问记录,预测第一资源需求量;其中,所述算法模型用于为用户提供相应的计算服务;获取当前时段用户针对所述算法模型的访问频率,确定第二资源需求量;综合所述第一资源需求量及所述第二资源需求量,对所述算法模型对应的资源进行相应的扩容或者缩容;
客户端,用于响应于用户的访问请求,生成对部署在云平台上算法模型的访问记录,以便所述算法模型基于所述访问记录请求调用所述云平台的资源;由所述云平台根据历史时段用户针对算法模型的访问记录,预测第一资源需求量;以及,当前时段所述访问记录的访问频率,确定第二资源需求量;综合所述第一资源需求和所述第二资源需求对所述算法模型对应的资源进行相应的扩容或者缩容,以使所述算法模型满足用户的计算需求;接收所述算法模型反馈的计算结果。
9.一种电子设备,包括存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于实现上述权利要求1至6中任一项所述的方法;或实现上述权利要求7所述的方法。
10.一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至6中任一项所述的方法;或实现上述权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210442475.0A CN114936089A (zh) | 2022-04-25 | 2022-04-25 | 资源调度方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210442475.0A CN114936089A (zh) | 2022-04-25 | 2022-04-25 | 资源调度方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114936089A true CN114936089A (zh) | 2022-08-23 |
Family
ID=82861900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210442475.0A Pending CN114936089A (zh) | 2022-04-25 | 2022-04-25 | 资源调度方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114936089A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117424861A (zh) * | 2023-12-18 | 2024-01-19 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种网络资源管理方法、装置、设备及介质 |
-
2022
- 2022-04-25 CN CN202210442475.0A patent/CN114936089A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117424861A (zh) * | 2023-12-18 | 2024-01-19 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种网络资源管理方法、装置、设备及介质 |
CN117424861B (zh) * | 2023-12-18 | 2024-02-23 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种网络资源管理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200137151A1 (en) | Load balancing engine, client, distributed computing system, and load balancing method | |
Bhattacharjee et al. | Barista: Efficient and scalable serverless serving system for deep learning prediction services | |
US8719297B2 (en) | System for managing data collection processes | |
CN109819057B (zh) | 一种负载均衡方法及系统 | |
CN110990138B (zh) | 资源调度方法、装置、服务器及存储介质 | |
CN108228347A (zh) | 一种任务感知的Docker自适应调度系统 | |
CN109246229A (zh) | 一种分发资源获取请求的方法和装置 | |
CN110474852B (zh) | 一种带宽调度方法及装置 | |
CN110597858A (zh) | 任务数据处理方法、装置、计算机设备和存储介质 | |
CN105159782A (zh) | 基于云主机为订单分配资源的方法和装置 | |
CN111026553B (zh) | 离线混部作业的资源调度方法及服务器系统 | |
US11436054B1 (en) | Directing queries to nodes of a cluster of a container orchestration platform distributed across a host system and a hardware accelerator of the host system | |
CN112689007B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN110716808A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN110933178B (zh) | 调整集群系统内的节点配置的方法及服务器 | |
CN114936089A (zh) | 资源调度方法、系统、设备及存储介质 | |
CN113079045B (zh) | 带宽分配方法、装置、服务器及存储介质 | |
CN110191362B (zh) | 数据传输方法及装置、存储介质及电子设备 | |
CN115562841B (zh) | 一种云视频服务自适应资源调度系统和方法 | |
CN114978913B (zh) | 一种基于切链的服务功能链跨域部署方法及系统 | |
CN111796933A (zh) | 资源调度方法、装置、存储介质和电子设备 | |
CN112714037A (zh) | 一种线上服务质量的保障性能评估方法、装置及设备 | |
EP4030708A1 (en) | Method and apparatus for bandwidth allocation | |
CN111258710B (zh) | 一种系统维护方法和装置 | |
CN116795545B (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 |