一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于函数计算的资源控制方法、装置、设备和介质与流程

2022-06-05 02:55:07 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及云计算和深度学习技术,具体涉及一种用于函数计算的资源控制方法、装置、设备、介质和程序产品。


背景技术:

2.函数计算是一种具备从0到n弹性伸缩的新型云计算服务模式,其底层需借助iaas能力为上层用户提供足够的计算资源。
3.通常情况下,函数计算平台会申请足够多的iaas资源来满足自身动态扩缩容的能力,但当平台的底层资源不足时,就会严重影响函数的请求服务稳定性。这是因为一旦当前申请的iaas资源都在被使用时,函数计算平台就需要重新申请新的计算资源来处理新的请求,从资源申请、资源初始化到函数代码下载、预热整个过程非常耗时,而且,如果频繁的申请和释放资源也会严重影响整个服务的性能。此外,如果申请到的底层资源没有被使用,也会产生一笔额外的开销。
4.因此,如何提升函数计算平台整体的底层资源利用率,是整个函数计算领域亟需解决的问题。


技术实现要素:

5.本公开提供了一种用于函数计算的资源控制方法、装置、设备、介质和程序产品。
6.根据本公开的一方面,提供了一种用于函数计算的资源控制方法,包括:
7.响应于当前时刻为第一周期的周期节点,对动态资源池进行资源控制;
8.响应于当前时刻为第二周期的周期节点,对静态资源池进行资源控制;
9.其中,所述动态资源池和静态资源池是按不同的变化周期对函数计算资源进行划分;所述第二周期长于所述第一周期;所述资源控制包括扩容或缩容。
10.根据本公开的另一方面,提供了一种用于函数计算的资源控制装置,包括:
11.第一控制模块,用于响应于当前时刻为第一周期的周期节点,对动态资源池进行资源控制;
12.第二控制模块,用于响应于当前时刻为第二周期的周期节点,对静态资源池进行资源控制;
13.其中,所述动态资源池和静态资源池是按不同的变化周期对函数计算资源进行划分;所述第二周期长于所述第一周期;所述资源控制包括扩容或缩容。
14.根据本公开的另一方面,提供了一种电子设备,包括:
15.至少一个处理器;以及
16.与所述至少一个处理器通信连接的存储器;其中,
17.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任意实施例所述的用于函数计算的资源控制方法。
18.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行本公开任意实施例所述的用于函数计算的资源控制方法。
19.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任意实施例所述的用于函数计算的资源控制方法。
20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.附图用于更好地理解本方案,不构成对本公开的限定。其中:
22.图1是根据本公开实施例的一种用于函数计算的资源控制方法的示意图;
23.图2a是根据本公开实施例的一种用于函数计算的资源控制方法的示意图;
24.图2b是用于实现本公开实施例的用于函数计算的资源控制方法的整体框架图;
25.图3a是根据本公开实施例的对动态资源池进行资源控制的方法流程示意图;
26.图3b是根据本公开实施例的对动态资源池进行资源控制的另一种方法流程示意图。
27.图4a是根据本公开实施例的对静态资源池进行资源控制的方法流程示意图;
28.图4b是根据本公开实施例的对静态资源池进行资源控制的另一种方法流程示意图。
29.图5是根据本公开实施例的用于函数计算的资源控制装置的结构示意图;
30.图6是用来实现本公开实施例的用于函数计算的资源控制方法的电子设备的框图。
具体实施方式
31.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
32.图1是根据本公开实施例的用于函数计算的资源控制方法的流程示意图,本实施例可适用于对函数计算的底层资源进行控制,以提高资源利用率情况,涉及计算机技术领域,尤其涉及云计算和深度学习技术。该方法可由一种用于函数计算的资源控制装置来执行,该装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如计算机设备或服务器等。如图1所示,该方法具体包括如下:
33.s101、响应于当前时刻为第一周期的周期节点,对动态资源池进行资源控制。
34.s102、响应于当前时刻为第二周期的周期节点,对静态资源池进行资源控制。
35.其中,动态资源池和静态资源池是按不同的变化周期对函数计算资源进行划分。所述函数计算资源是指函数计算平台当前已经从底层申请的用于处理用户请求的资源。由于用户请求的数量是动态变化的,而且可能会出现激增或骤减的情况,这就需要函数计算平台具备一定的资源扩缩容的能力。因此,这里的资源控制则包括对这些资源进行扩容或
缩容。
36.具体的,本公开实施例中的第二周期长于第一周期。例如,第一周期可以是分钟级别,而第二周期则是小时级别。也就是说,划分的动态资源池和静态资源池中的资源本身是没有区别的,区别只是在于两个资源池的变化周期不相同。其中,静态资源池是按照较长周期变化,例如,每隔几个小时才变化一次;而动态资源池是按照较短的短周期变化,例如,每隔几分钟就变化一次。由此,静态资源池因变化周期长而不会频繁发生扩缩容,动态资源池则可以在较短时间内相对更加频繁的发生扩缩容。从而一方面,在函数计算资源整体上,可以保证较长时间内有一部分资源(静态资源)稳定,以满足大部分的用户请求,提高函数计算服务的稳定性;另一方面,通过对动态资源池在短周期级别的资源控制,以动态地应对变化的并发请求,从而提高资源的利用率。
37.这里还需要说明的是,现有技术中,有一种方案是始终让一部分空闲的资源保持在一个固定值,其他资源则根据请求的实时变化情况进行动态的扩缩容。然而在这种方案中,在请求峰值尚未到来时,常态化管理的这部分资源存在相当的冗余,资源利用率并不高。而在本公开的技术方案中,则是将函数计算资源划分为静态资源池和动态资源池,并让这两个资源池基于不同级别和长短的周期进行变化,使得静态资源池中的资源相对稳定,动态资源池中的资源则可以通过频繁的变化来应对变化的并发请求。而同时,静态资源池也可以在较长周期的周期节点到来时进行动态的扩容或缩容。由此,本公开在整体上,不仅能够稳定地处理大部分的用户请求,同时也能够在不影响资源利用率的同时,有能力应对请求突变的情况。
38.本公开实施例的技术方案,通过将函数计算资源分为两个资源池,其中,静态资源池按照较长周期变化,动态资源池按照较短的短周期变化。由此,静态资源池因变化周期长而不会频繁发生扩缩容,动态资源池则可以在较短时间内相对更加频繁的发生扩缩容。从而可以在保证有一部分资源稳定的同时,动态地应对变化的并发请求,继而提高资源的利用率,以及函数计算服务的稳定性。
39.此外,在一种实施方式中,为了让更多的、大部分的资源保持相对稳定,让函数计算服务更加稳定地处理大部分请求,可以让静态资源池中的资源多于动态资源池中的资源,从而进一步提高函数计算服务的稳定性。
40.图2a是根据本公开实施例的用于函数计算的资源控制方法的流程示意图,本实施例在上述实施例的基础上,对如何进行资源控制做出进一步地优化。如图2a所示,该方法具体包括如下:
41.s201、根据函数计算资源的历史时序数据,对当前预测时段内每一时间节点所需的资源量进行预测。
42.具体的,可以预先在函数计算使用到的底层资源中配备node-exporter、prometheus(开源的系统监控和报警系统)以及时序数据库tsdb。其中,exporter是prometheus的一类数据采集组件的总称,通过node-exporter和prometheus来实时采集函数计算资源的各项指标,并存储在时序数据库tsdb中。
43.此外,还需要配备时间序列预测接口,用于对历史的资源使用情况进行分析,也即根据历史时序数据对未来所需的资源量进行预测。该预测接口可以为某一机器学习模型,也可以是相关的预测工具,例如facebook开源的时间序列预测工具prophet。其中,机器学
习模型可以基于现有的深度学习技术,利用用户请求和资源使用的历史数据构成训练数据,通过模型训练来确定。此处不再赘述。
44.s202、响应于当前时刻为第一周期的周期节点,对动态资源池进行资源控制,并将所述预测的结果作为资源控制的依据之一。
45.s203、响应于当前时刻为第二周期的周期节点,对静态资源池进行资源控制,并将所述预测的结果作为资源控制的依据之一。
46.资源量的预测是指对当前预测时段内每一时间节点所需的资源量进行预测。其中,当前预测时段是指:从当前时刻t到t α时刻之间的时间段,或者从当前时刻t到t p时刻之间的时间段,α为第一周期,p为第二周期。资源量的预测结果则用于作为对动态资源池或静态资源池进行资源控制的依据之一。也即,在按照第一周期对动态资源池进行资源控制的过程中,是基于对从当前时刻t到t α时刻之间的时间段内每一时间节点所需的资源量的预测结果来实现,而按照第二周期对静态资源池进行资源控制的过程中,是基于对从当前时刻t到t p时刻之间的时间段内每一时间节点所需的资源量的预测结果来实现。也就是说,本公开的技术方案中,是根据未来一段时间内资源使用量的预测情况来确定需要扩容或缩容,以及扩容或缩容所需的数量。这样就能够更加准确地确定未来所需资源,并合理进行扩容或缩容,提高资源的利用率。
47.图2b是用于实现本公开实施例的用于函数计算的资源控制方法的整体框架图。如图2b所示,函数计算资源21划分为静态资源池211和动态资源池212。静态资源池211和动态资源池212中的node 213和prometheus214用于实时采集和汇总函数计算资源的各项指标,并存储在时序数据库tsdb 22中。预测接口24用于根据tsdb 22中的历史时序数据对未来所需的资源量进行预测,以便资源控制模块23将所述预测的结果作为对静态资源池211和动态资源池212进行资源控制的依据之一。资源控制包括扩容或缩容,需要扩容的资源是从底层资源25申请并放入静态资源池211或动态资源池212,需要释放的资源则从静态资源池211或动态资源池212释放回底层资源25。
48.本公开实施例的技术方案,将函数计算资源划分为按照较长周期变化的静态资源池,和按照较短的短周期变化的动态资源池,并基于对未来时间段内所需资源的预测结果来对静态资源池和动态资源池进行资源控制。由此,静态资源池因变化周期长而不会频繁发生扩缩容,动态资源池则可以在较短时间内相对更加频繁的发生扩缩容。从而可以在保证有一部分资源稳定的同时,动态地应对变化的并发请求,继而提高资源的利用率,以及函数计算服务的稳定性。同时,通过预测可以更加准确地确定未来所需资源,并合理进行扩容或缩容,进一步提高资源的利用率。
49.此外,在一种实施方式中,如果当前请求数量超出预测的结果,且超出的部分符合预设条件,也即当前请求数量远超出预测的结果,这时当前的函数计算资源可能远不够用,于是,可以按照如下方式对当前请求进行智能调度:
50.优先执行当前请求中的同步请求,并将当前请求中的异步请求放入延时处理队列;以及
51.如果当前的函数计算资源无法满足同步请求,则按照接收同步请求的顺序,将同步请求依次放入同步队列;以及
52.当同步队列中的同步请求执行完后,再执行延时处理队列中的异步请求。
53.也就是说,按照先处理同步请求再处理异步请求的处理顺序对请求进行响应和调度,最小化用户的平均等待时间,有效提高整个服务的可靠性和执行效率,保证所有请求最终一定可处理。
54.图3a是根据本公开实施例的对动态资源池进行资源控制的方法流程示意图,本实施例在上述实施例的基础上,对于当前预测时段是指从当前时刻t到t α时刻之间的时间段,如何对动态资源池进行资源控制做出进一步地优化。如图3a所示,对动态资源池进行资源控制,具体包括如下:
55.s301、根据当前预测时段内每一时间节点所需资源量的预测结果,确定当前预测时段内的资源量预测最大值和资源量预测最小值。
56.动态资源池是按照短周期进行变化,例如,以分钟级别进行变化。因此,预测可以是对(t,t α]时间段内的每一分钟所需的资源量进行预测,然后从中选择最大和最小的预测结果,作为当前预测时段内的资源量预测最大值和资源量预测最小值。
57.s302、根据资源量预测最大值和当前时刻的函数计算资源总量,计算当前预测时段内的资源使用率预测最大值。
58.计算资源量预测最大值与当前时刻的函数计算资源总量的比值,其结果即为当前预测时段内的资源使用率预测最大值。
59.s303、如果资源使用率预测最大值大于预先设定的资源使用率最大阈值,则对动态资源池进行扩容。
60.s304、如果资源使用率预测最大值小于预先设定的资源使用率最小阈值,则对动态资源池进行缩容。
61.其中,资源使用率最大阈值和资源使用率最小阈值可以根据实际情况预先设定,本公开实施例对此不做任何限定。
62.资源使用率最大阈值和资源使用率最小阈值可以用来标定出合理的资源使用率的区间。那么在s303中,根据预测结果,如果资源使用率预测最大值大于预先设定的资源使用率最大阈值,表示未来可能会出现请求峰值,届时的资源使用率将超出资源使用率最大阈值,从而导致资源不够用,因此需要提前进行扩容;在s304中,根据预测结果,如果资源使用率预测最大值小于预先设定的资源使用率最小阈值,表示即使未来出现请求峰值,届时的资源使用率也很低,且已经低于资源使用率最小阈值,从而导致资源冗余,因此需要提前进行缩容。
63.由此,本公开实施例中,根据未来一段时间内资源使用量的预测情况和当前实际资源量来进行资源控制,能够更加准确地确定未来所需资源,从而及时进行扩容和缩容,实现资源的动态调整。同时,还能将未来的资源使用率控制在更为合理的范围内,从而提高资源利用率。此外,由于本公开实施例是按周期进行资源的动态控制,那么即使当前扩容扩多了,也会在下一周期通过缩容来进行资源的回收、释放,有效地减少了资源浪费情况的发生。
64.在一种实施方式中,对动态资源池进行扩容,具体可以包括:
65.调用底层资源申请接口获取扩容所需数量的资源,并将其加入动态资源池;其中,扩容所需数量为:资源量预测最大值与资源使用率最小阈值的比值,减去当前时刻的函数计算资源总量。
66.其中,底层资源例如可以是paas(platform-as-a-service,平台即服务),通过调用底层资源申请接口即可从paas中申请资源。而按照上述方式计算扩容所需数量的目的,在于使得扩容后的资源在请求峰值到来时其整体的资源利用率能够保持在资源使用率最小阈值,这样,就能够确保有充分的资源能够满足未来请求峰值到来时的处理需求,从而提高服务的稳定性。
67.在一种实施方式中,对动态资源池进行缩容,具体可以包括:
68.计算资源量预测最大值与资源使用率最大阈值的比值,并将所述比值减去当前时刻的函数计算资源总量,得到缩容所需释放资源的第一目标数量;
69.按照预先设定的优先级和动态资源池中当前各资源执行任务的状态,对动态资源池中的资源进行释放,直至释放资源的数量达到第一目标数量,或者动态资源池被清空;其中,优先级是指按状态的不同而确定的资源释放顺序。
70.首先需要计算资源量预测最大值与资源使用率最大阈值的比值,并将该比值减去当前时刻的函数计算资源总量,即可得到缩容所需释放资源的第一目标数量。也即,让释放第一目标数量之后,当未来所需的资源数达到资源量预测最大值,届时的资源使用率能够达到资源使用率最大阈值,充分利用资源。然后,则按照预设的优先级和动态资源池中当前各资源执行任务的状态,对动态资源池中的资源进行释放,进一步提高资源利用率。
71.其中,所述状态例如可以包括如下几种:
72.第一状态:用于表示正在执行任务,并且任务执行完后进入第三状态;
73.第二状态:用于表示空闲状态,并且允许被指定函数复用;
74.第三状态:用于表示空闲但不可复用,当执行任务时进入第一状态;
75.第四状态:用于表示被占用,但任务执行完后自动释放。
76.在执行资源控制的过程中,可以对各资源的状态进行标记,根据状态标记即可确定每个资源的当前状态。在此基础之上,优先级按降序排列则可以依次为:第三状态的资源、第二状态的资源、第一状态的资源。也即,优先释放处于第三状态的资源,如果第三状态的资源释放完毕仍未达到第一目标数量,则再选择处于第二状态的资源进行释放,如果第二状态的资源释放完毕仍未达到第一目标数量,则选择第一状态的资源进行释放,直至释放资源的总数达到第一目标数量,或者动态资源池被清空,则不再继续释放。
77.对于资源的释放,这里还需要说明的是,由于第一状态表示正在执行任务,因此,释放处于第一状态的资源不能影响该资源当前正在执行的任务,因此,释放处于第一状态的资源具体是指,将该资源标记为第四状态,那么该资源在执行完当前任务后,就会自动释放。此外,释放第二状态和第三状态的资源,可以是按照资源实例最晚访问最先被释放的顺序进行。也就是说,由于第二状态和第三状态都是表示空闲,区别只在于第二状态表示空闲且允许被指定函数复用。因此,按照空闲时间从短到长的顺序,优先释放刚刚处于空闲状态的资源,因为已经空闲一段时间的资源,可能马上就会被再次复用,进入第二状态,或者直接进入第一状态,如果反过来优先释放这些已经空闲一段时间的资源,那么它们处于空闲等待的时间就浪费了,降低了资源利用率。
78.如上所述,本公开实施例中对动态资源池进行缩容,采用的是状态释放算法,按照资源当前的不同状态来确定释放顺序,从而实现冗余资源的定向回收。由于标记的状态表示资源当前执行任务的状态,这样,就可以根据当前资源的使用情况来进行释放。一方面,
优先释放当前空闲的资源,然后再释放正在执行任务的资源,确保服务的稳定性;另一方面,在空闲的资源中,还基于是否允许被复用加以细分,优先释放不可复用的资源,然后再释放可被指定函数复用的资源,从而提高资源的复用率。同时,通过这种定向回收过程中资源的再利用和复用过程,也能降低冷启动情况的发生,提高任务的处理效率。
79.进一步的,在一种实施方式中,处于第三状态或第二状态的资源,分别以空闲资源队列和可复用资源队列的形式存储,且还存储有第三状态的资源和第二状态的资源各自的键值索引,用于指示资源在各自队列中的位置;第一状态的资源和第四状态的资源,均以集合形式存储。这样做的目的在于:由于遍历队列的时间复杂度是o(n),而本公开实施例中则通过键值索引来记录队列中资源的位置,从而可以实现以o(1)的时间复杂度完成资源的获取、使用和定向回收等,提高了处理效率。
80.图3b是根据本公开实施例的对动态资源池进行资源控制的另一种方法流程示意图。如图3b所示,以第一周期为分钟级别,周期节点为α为例,其具体的资源控制流程为:先判断当前是否到达第一周期的周期节点,也就是从上一个周期节点算起,是否到α分钟。如果判断为否,则继续等待并返回再次进行判断。如果判断为是,则预测(t,t α]时间段内的资源峰值,并根据资源峰值计算资源使用率预测最大值。然后判断资源使用率预测最大值是否在资源使用率最大阈值upper和资源使用率最小阈值lower构成的区间内。如果在区间内,则不对资源进行扩缩容,如果不在区间内,则需要进行扩缩容。具体而言,首先判断资源使用率预测最大值是否大于资源使用率最大阈值upper,如果大于,则进行α级别扩容,如果不大于,则继续判断资源使用率预测最大值是否小于资源使用率最小阈值lower,如果小于,则进行α级别缩容。由此,按照每隔α分钟的周期对动态资源池进行扩容或缩容,对动态资源池进行动态地资源控制。
81.本公开实施例的技术方案,通过将函数计算资源分为两个资源池,其中,静态资源池按照较长周期变化,动态资源池按照较短的短周期变化,从而可以在保证有一部分资源稳定的同时,动态地应对变化的并发请求,继而提高资源的利用率,以及函数计算服务的稳定性。同时,根据未来一段时间内资源使用量的预测情况和当前实际资源量,以及预先设定的资源使用率阈值区间,来判断是否需要扩容或缩容,以及需要扩容或缩容的资源数量,能够更加准确地确定未来所需资源,并合理进行扩容和缩容,并将未来的资源使用率控制在更为合理的范围内,从而提高资源利用率。此外,还采用状态释放算法,按照资源当前所处的不同状态来确定释放资源的顺序,从而实现冗余资源的定向回收,从而提高资源的复用率。同时,通过这种定向回收过程中资源的再利用和复用过程,也能降低冷启动情况的发生,提高任务的处理效率。
82.图4a是根据本公开实施例的对静态资源池进行资源控制的方法流程示意图,本实施例在上述实施例的基础上,对于当前预测时段是指从当前时刻t到t p时刻之间的时间段,如何对静态资源池进行资源控制做出进一步地优化。如图4a所示,对静态资源池进行资源控制,具体包括如下:
83.s401、根据当前预测时段内每一时间节点所需资源量的预测结果获取资源量预测均值。
84.静态资源池是按照长周期进行变化,例如,以小时级别进行变化。因此,预测可以是对(t,t p]时间段内的每一小时所需的资源量进行预测,然后从中计算出资源量预测均
值。
85.s402、根据资源量预测均值和当前时刻的函数计算资源总量,计算当前预测时段内的资源使用率预测均值。
86.计算资源量预测均值与当前时刻的函数计算资源总量的比值,其结果即为当前预测时段内的资源使用率预测均值。
87.s403、如果资源使用率预测均值大于预先设定的资源使用率最大阈值,则对静态资源池进行扩容。
88.s404、如果资源使用率预测均值小于预先设定的资源使用率最小阈值,则对静态资源池进行缩容。
89.其中,资源使用率最大阈值和资源使用率最小阈值可以根据实际情况预先设定,本公开实施例对此不做任何限定。
90.在一种实施方式中,对静态资源池进行扩容,具体可以包括:
91.计算资源量预测均值与资源使用率最小阈值的比值,并将所述比值减去当前时刻的函数计算资源总量,得到扩容所需资源的第二目标数量;
92.如果动态资源池中的资源总数大于第二目标数量,则从动态资源池中获取第二目标数量的资源迁入静态资源池;
93.如果动态资源池中的资源总数小于第二目标数量,则将动态资源池中的全部资源迁入静态资源池,并调用底层资源申请接口获取新的资源放入静态资源池,直至达到所述第二目标数量。
94.由上述可知,对静态资源池进行扩容的过程与对动态资源池进行扩容的过程相比,其区别在于,一方面,扩容所需资源的第二目标数量是根据资源量预测均值来计算;另一方面,对静态资源池进行扩容并不是直接调用底层资源申请接口申请新的资源,而是从静态资源池进行资源迁移。具体而言,如果动态资源池中的资源总数大于第二目标数量,则直接从动态资源池中获取第二目标数量的资源迁入静态资源池即可,而如果动态资源池中的资源总数小于第二目标数量,则将动态资源池中的全部资源迁入静态资源池后,再调用底层资源申请接口获取新的资源放入静态资源池,直至达到第二目标数量。
95.采用这种资源迁移的方式代替直接从底层申请新的资源到静态资源池的方式,相当于将较为活跃的资源(动态资源池中的资源)放到较为稳定的静态资源池中。一方面,由于从资源申请、资源初始化到函数代码下载、预热整个过程非常耗时,因此,本公开实施例可以避免因从底层重新申请资源而导致的这种耗时问题;另一方面,可以确保在未来p时间内资源保持恒定,提高服务的稳定性,并在此基础上,由于动态资源池中会按照更小的短周期进行变化,因此,即使动态资源池中资源被清空,下一个周期很快会到来,并及时对动态资源池进行资源扩容,不会受此资源迁移的影响,从而在整体上提高资源利用率。
96.在一种实施方式中,对静态资源池进行缩容,具体可以包括:
97.计算资源量预测均值与资源使用率最大阈值的比值,并将所述比值减去当前时刻的函数计算资源总量,得到缩容所需释放资源的第三目标数量;
98.如果动态资源池中的资源总数大于所述第三目标数量,则从动态资源池中释放第三目标数量的资源;
99.如果动态资源池中的资源总数小于所述第三目标数量,则清空动态资源池中的资
源后,再从静态资源池中释放资源,直至达到第三目标数量。
100.由此,在上述对静态资源池进行缩容的过程中,是优先从动态资源库中释放资源,其目的与对静态资源池进行扩容过程中的资源迁移相似,都是在满足整体的资源使用率要求的基础上,优先处理相对活跃的资源,保证静态资源库中有足够的稳定资源,提高服务的稳定性。
101.此外,对于静态资源池的资源控制中,从动态资源池中进行资源迁移以及释放资源的过程中,也是基于资源的状态标记,按照上述实施例中描述的状态标记算法进行,也即,按照预先设定的优先级和动态资源池中当前各资源执行任务的状态,进行资源迁移或释放。其中,有关资源的状态和优先级的内容,与上述实施例中描述的相同,此处不再赘述。
102.最后还需要说明的是,如果任意的目标资源在任务执行完时,还未到第一周期或第二周期的周期节点,则将该目标资源的状态标记为第二状态,也就是表示空闲且允许被指定函数复用。由此,虽然此时尚未到达对资源进行动态控制的周期节点,但由于该目标资源已经完成任务,那么将其标记为可复用的第二状态,可以提高资源的复用率。
103.图4b是根据本公开实施例的对静态资源池进行资源控制的另一种方法流程示意图。如图4b所示,以第二周期为小时级别,周期节点为p为例,其具体的资源控制流程为:先判断当前是否到达第二周期的周期节点,也就是从上一个周期节点算起,是否到p小时。如果判断为否,则继续等待并返回再次进行判断。如果判断为是,则预测(t,t p]时间段内的资源均值,并根据资源均值计算资源使用率预测均值。然后判断资源使用率预测均值是否在资源使用率最大阈值upper和资源使用率最小阈值lower构成的区间内。如果在区间内,则不对资源进行扩缩容,如果不在区间内,则需要进行扩缩容。具体而言,则首先判断资源使用率预测均值是否大于资源使用率最大阈值upper,如果大于,则进行资源迁移(从动态资源池迁移资源到静态资源池),如果动态资源池清空后迁移的资源数仍没有达到第二目标数量,则从底层资源为静态资源池继续扩容至达到第二目标数量。如果资源使用率预测均值不大于资源使用率最大阈值upper,则继续判断资源使用率预测均值是否小于资源使用率最小阈值lower,如果小于,则进行p级别缩容(先从动态资源池释放资源,再从静态资源池释放资源)。由此,按照每隔p分钟的周期对静态资源池进行扩容或缩容,对静态资源池进行动态地资源控制。
104.本公开实施例的技术方案,通过将函数计算资源分为两个资源池,其中,静态资源池按照较长周期变化,动态资源池按照较短的短周期变化,从而可以在保证有一部分资源稳定的同时,动态地应对变化的并发请求,继而提高资源的利用率,以及函数计算服务的稳定性。同时,根据未来一段时间内资源使用量的预测情况和当前实际资源量,以及预先设定的资源使用率阈值区间,来判断是否需要扩容或缩容,以及需要扩容或缩容的资源数量,能够更加准确地确定未来所需资源,并合理进行扩容和缩容,并将未来的资源使用率控制在更为合理的范围内,从而提高资源利用率。此外,对静态资源池进行扩容或缩容时,采用资源迁移的方式进行,在满足整体的资源使用率要求的基础上,优先处理相对活跃的资源,保证静态资源库中有足够的稳定资源,在确保资源利用率的同时,还能进一步提高服务的稳定性。
105.图5是根据本公开实施例的用于函数计算的资源控制装置的结构示意图,本实施例可适用于对函数计算的底层资源进行控制,以提高资源利用率情况,涉及计算机技术领
域,尤其涉及云计算和深度学习技术。该装置可实现本公开任意实施例所述的用于函数计算的资源控制方法。如图5所示,该装置500具体包括:
106.第一控制模块501,用于响应于当前时刻为第一周期的周期节点,对动态资源池进行资源控制;
107.第二控制模块502,用于响应于当前时刻为第二周期的周期节点,对静态资源池进行资源控制;
108.其中,所述动态资源池和静态资源池是按不同的变化周期对函数计算资源进行划分;所述第二周期长于所述第一周期;所述资源控制包括扩容或缩容。
109.可选的,所述静态资源池中的资源多于动态资源池中的资源。
110.可选的,所述装置还包括预测模块,具体用于:
111.根据所述函数计算资源的历史时序数据,对当前预测时段内每一时间节点所需的资源量进行预测,所述预测的结果用于作为对所述动态资源池或静态资源池进行资源控制的依据之一;
112.其中,所述当前预测时段是指:从当前时刻t到t α时刻之间的时间段,或者从当前时刻t到t p时刻之间的时间段,α为所述第一周期,p为所述第二周期。
113.可选的,所述当前预测时段是指从当前时刻t到t α时刻之间的时间段;相应的,所述第一控制模块501包括:
114.资源量预测峰值计算单元,用于根据所述当前预测时段内每一时间节点所需资源量的预测结果,确定所述当前预测时段内的资源量预测最大值和资源量预测最小值;
115.资源使用率预测最大值计算单元,用于根据所述资源量预测最大值和所述当前时刻的函数计算资源总量,计算所述当前预测时段内的资源使用率预测最大值;
116.动态资源池扩容单元,用于如果所述资源使用率预测最大值大于预先设定的资源使用率最大阈值,则对所述动态资源池进行扩容;
117.动态资源池缩容单元,用于如果所述资源使用率预测最大值小于预先设定的资源使用率最小阈值,则对所述动态资源池进行缩容。
118.可选的,所述动态资源池扩容单元,具体用于:
119.调用底层资源申请接口获取扩容所需数量的资源,并将其加入所述动态资源池;
120.其中,所述扩容所需数量为:所述资源量预测最大值与所述资源使用率最小阈值的比值,减去所述当前时刻的函数计算资源总量。
121.可选的,所述动态资源池缩容单元,具体用于:
122.计算所述资源量预测最大值与所述资源使用率最大阈值的比值,并将所述比值减去所述当前时刻的函数计算资源总量,得到缩容所需释放资源的第一目标数量;
123.按照预先设定的优先级和所述动态资源池中当前各资源执行任务的状态,对所述动态资源池中的资源进行释放,直至释放资源的数量达到所述第一目标数量,或者所述动态资源池被清空;
124.其中,所述优先级是指按所述状态的不同而确定的资源释放顺序。
125.可选的,所述状态包括:
126.第一状态:用于表示正在执行任务,并且任务执行完后进入第三状态;
127.第二状态:用于表示空闲状态,并且允许被指定函数复用;
128.第三状态:用于表示空闲但不可复用,当执行任务时进入第一状态;
129.第四状态:用于表示被占用,但任务执行完后自动释放。
130.可选的,所述优先级按降序排列依次为:所述第三状态的资源、所述第二状态的资源、所述第一状态的资源。
131.可选的,所述当前预测时段是指从当前时刻t到t p时刻之间的时间段;相应的,所述第二控制模块502,包括:
132.资源量预测均值计算单元,用于根据所述当前预测时段内每一时间节点所需资源量的预测结果获取资源量预测均值;
133.资源使用率预测均值计算单元,用于根据所述资源量预测均值和所述当前时刻的函数计算资源总量,计算所述当前预测时段内的资源使用率预测均值;
134.静态资源池扩容单元,用于如果所述资源使用率预测均值大于预先设定的资源使用率最大阈值,则对所述静态资源池进行扩容;
135.静态资源池缩容单元,用于如果所述资源使用率预测均值小于预先设定的资源使用率最小阈值,则对所述静态资源池进行缩容。
136.可选的,所述静态资源池扩容单元,具体用于:
137.计算所述资源量预测均值与所述资源使用率最小阈值的比值,并将所述比值减去所述当前时刻的函数计算资源总量,得到扩容所需资源的第二目标数量;
138.如果所述动态资源池中的资源总数大于所述第二目标数量,则从所述动态资源池中获取所述第二目标数量的资源迁入所述静态资源池;
139.如果所述动态资源池中的资源总数小于所述第二目标数量,则将所述动态资源池中的全部资源迁入所述静态资源池,并调用底层资源申请接口获取新的资源放入所述静态资源池,直至达到所述第二目标数量。
140.可选的,所述静态资源池缩容单元,具体用于:
141.计算所述资源量预测均值与所述资源使用率最大阈值的比值,并将所述比值减去所述当前时刻的函数计算资源总量,得到缩容所需释放资源的第三目标数量;
142.如果所述动态资源池中的资源总数大于所述第三目标数量,则从所述动态资源池中释放所述第三目标数量的资源;
143.如果所述动态资源池中的资源总数小于所述第三目标数量,则清空所述动态资源池中的资源后,再从所述静态资源池中释放资源,直至达到所述第三目标数量。
144.可选的,所述装置还包括:
145.标记模块,用于如果任意的目标资源在任务执行完时,还未到所述第一周期或第二周期的周期节点,则将所述目标资源的状态标记为所述第二状态。
146.可选的,处于所述第三状态或第二状态的资源,分别以空闲资源队列和可复用资源队列的形式存储,且还存储有所述第三状态的资源和所述第二状态的资源各自的键值索引,用于指示资源在各自队列中的位置;所述第一状态的资源和第四状态的资源,均以集合形式存储。
147.可选的,所述装置还包括智能调度模块,用于响应于当前请求数量超出所述预测的结果,且超出的部分符合预设条件,则按照如下方式对所述当前请求进行调度:
148.优先执行所述当前请求中的同步请求,并将所述当前请求中的异步请求放入延时
处理队列;以及
149.如果当前的函数计算资源无法满足所述同步请求,则按照接收所述同步请求的顺序,将所述同步请求依次放入同步队列;以及
150.当所述同步队列中的同步请求执行完后,再执行所述延时处理队列中的异步请求。
151.上述产品可执行本公开任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
152.本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
153.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
154.图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
155.如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram603中,还可存储设备600操作所需的各种程序和数据。计算单元601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
156.设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
157.计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如用于函数计算的资源控制方法。例如,在一些实施例中,用于函数计算的资源控制方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到ram 603并由计算单元601执行时,可以执行上文描述的用于函数计算的资源控制方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行用于函数计算的资源控制方法。
158.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系
统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
159.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
160.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
161.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
162.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
163.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
164.人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思
考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
165.云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
166.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
167.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献