1.本技术涉及计算机技术领域,具体而言,涉及一种资源控制方法、资源控制装置、电子设备以及计算机可读存储介质。
背景技术:
2.随着云计算和人工智能的发展,容器技术得到越来越广泛使用,在云计算环境下,需要大规模部署容器,与之相应的集群管理方案应运而生,其中,基于容器的集群管理平台(kubernetes)为容器应用提供了服务注册、负载均衡、服务部署和运行、资源的扩容和缩容、以及资源的调度等诸多功能。
3.目前,相关技术中是通过采用kubernetes中的水平自动扩缩机制(horizontal pod autoscaler,hpa)来实现资源的扩容和缩容,具体地,是通过获取资源池的使用率,将之与对应的资源参数的使用上下阈值进行比较,如果资源池的使用率大于对应的资源参数的预设使用率上阈值,则进行资源的扩容操作,如果资源池的使用率小于对应的资源参数的预设使用率下阈值,则进行资源的缩容操作。但是,这种方式会由于频繁进行资源扩缩容操作而带来抖动。
4.由此,如何优化资源控制方案是亟待解决的问题。
技术实现要素:
5.为解决上述技术问题,本技术的实施例提供了一种资源控制方法及装置、电子设备、计算机可读存储介质,进而至少在一定程度上优化了资源控制方案。
6.根据本技术实施例的一个方面,提供了一种资源控制方法,应用于基于容器的集群管理平台,所述方法包括:获取预设服务对应的多个任务;其中,所述预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务;从所述多个任务中确定出现阻塞的目标任务,并统计所述目标任务的数量;若统计结果指示所述目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。
7.根据本技术实施例的一个方面,提供了一种资源控制装置,配置于基于容器的集群管理平台,所述装置包括:获取模块,配置为获取预设服务对应的多个任务;其中,所述预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务;确定与统计模块,配置为从所述多个任务中确定出现阻塞的目标任务,并统计所述目标任务的数量;扩容模块,配置为若统计结果指示所述目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。
8.在本技术的一个实施例中,基于前述方案,所述资源控制装置还包括:确定模块,配置为若统计结果指示所述目标任务的数量未达到所述预设阻塞数量阈值,则基于水平自动扩缩机制确定资源池的使用率是否小于预设使用率阈值;缩容模块,配置为若基于水平自动扩缩机制确定资源池的使用率小于所述预设使用率阈值,则进行资源的缩容操作;其中,所述资源池对应的资源参数包括内存、中央处理器中的至少一个。
9.在本技术的一个实施例中,基于前述方案,所述确定与统计模块包括:第一监测单元,配置为监测在所述预设服务的执行时间段内多个任务的执行情况;第一确定单元,配置为从多个任务中确定出执行时长大于预设时长阈值的任务,以将所述执行时长大于预设时长阈值的任务作为出现阻塞的目标任务。
10.在本技术的一个实施例中,基于前述方案,所述确定与统计模块包括:第二监测单元,配置为监测在所述预设服务的执行时间段内多个任务的执行情况;第二确定单元,配置为从多个任务中确定出在所述预设服务的执行时间段内执行未完成的任务,以将所述执行未完成的任务作为出现阻塞的目标任务。
11.在本技术的一个实施例中,基于前述方案,第一监测单元,具体配置为若所述预设服务的执行时刻到达,则对所述预设服务的各个任务进行监测,并记录各个任务的执行起始时刻;第一确定单元,具体配置为根据各个任务的执行起始时刻与当前时刻,分别确定出各个任务的执行时长;根据各个任务的执行时长,从多个任务中确定出执行时长大于预设时长阈值的任务。
12.在本技术的一个实施例中,基于前述方案,所述扩容模块包括:第一运算单元,配置为将所述目标任务数量与单个实例执行的任务数量进行求商运算,得到第一实例数量;扩容单元,配置为根据所述第一实例数量进行资源的扩容操作。
13.在本技术的一个实施例中,基于前述方案,所述缩容模块包括:第二运算单元,配置为将所述预设服务的所有任务数量与单个实例执行的任务数量进行求商运算,得到第二实例数量;缩容单元,配置为根据所述第二实例数量进行资源的缩容操作。
14.在本技术的一个实施例中,基于前述方案,所述预设服务包括用于采集网络运行数据的采集服务,其中,所述网络运行数据包括告警数据、性能数据、配置数据以及日志数据中的至少一个。
15.根据本技术实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的资源控制方法。
16.根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如前所述的资源控制方法。
17.根据本技术实施例的一个方面,提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如前所述的资源控制方法。
18.在本技术的实施例所提供的技术方案中,通过获取预设服务对应的多个任务,其中,预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务;之后,从多个任务中确定出现阻塞的目标任务,并统计目标任务的数量;之后,若统计结果指示目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。也即,本技术实施例所提供的技术方案中是当统计出预设服务包括的出现阻塞的目标任务的数量达到预设阻塞数量阈值,才进行资源的扩容,而不再是当资源池的使用率大于对应的资源参数的预设使用率上阈值时,就进行资源的扩容操作,这样让资源能够满负荷运转,从而避免由于频繁进行资源扩缩容操作而带来抖动的问题,并且只有当出现阻塞的目标任务的数量达到预设阻塞数量阈值,才进行资源的扩容操作,从而使得资源足以承受预设服务
执行时间段内的任务量,以支持预设服务的正常运行。
19.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
20.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
21.图1是可以应用本技术实施例的技术方案的示例性实施环境的示意图;
22.图2是本技术的一示例性实施例示出的资源控制方法的流程图;
23.图3是图2所示实施例中的步骤s220在一示例性实施例中的流程图;
24.图4是图2所示实施例中的步骤s220在一示例性实施例中的流程图;
25.图5是图2所示实施例中的步骤s220在一示例性实施例中的流程图;
26.图6是图2所示实施例中的步骤s230在一示例性实施例中的流程图;
27.图7是本技术的一示例性实施例示出的资源控制方法的流程图;
28.图8是图7所示实施例中的步骤s720在一示例性实施例中的流程图;
29.图9是本技术的一示例性实施例示出的资源控制方法的流程图;
30.图10是本技术的一示例性实施例示出的资源控制方法的流程图;
31.图11是本技术的一示例性实施例示出的资源控制装置的结构示意图;
32.图12是适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
33.这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
34.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
35.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
36.还需要说明的是:在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
37.在介绍本技术实施例的技术方案之前,先对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
38.kubernetes:kubernetes在容器集群管理系统得到广泛应用,kubernetes是一个
开源的,用于管理云平台中多个主机上的容器化的应用,也是一个容器编排引擎;kubernetes集群(又称容器集群),简称k8s集群,是用8代替8个字符“ubernete”而成的缩写。kubernetes支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用程序的多个实例以便对应用请求进行负载均衡。在kubernetes中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。kubernetes具有水平自动扩展特性。通常对kubernetes集群的监控主要是对业务型的pod等资源的监控和弹性伸缩,其依赖于监控组件提供的监控数据。kubernetes集群的监控组件是其核心组件之一,可以实现对kubernetes集群中的各种资源(例如pod,node,deployment等)进行监控,监控项包括cpu、内存、流量、健康状况、磁盘使用率等。监控数据可作为其他组件的基础数据,为其他组件提供决策支持。
39.pod:pod指的是kubernetes集群中的应用负载,pod运行在节点上。pod由一个或者多个容器组成,例如docker容器引擎创建的容器container,它们共享容器存储、网络和容器运行配置项。pod中的容器被同时调度,有共同的运行环境。
40.相关技术中是通过采用kubernetes中的hpa来实现资源的扩容和缩容,具体地,是通过获取资源池资源参数例如中央处理器(central processing unit,cpu)、内存的使用率,将之与对应的资源参数使用上下阈值进行比较(其中,是将cpu的使用率与对应的cpu预设使用率上阈值进行比较,将内存的使用率与对应的内存预设使用率上阈值进行比较),如果资源池的使用率大于对应的资源参数的预设使用率上阈值,则进行资源的扩容操作,如果资源池的使用率小于对应的资源参数的预设使用率下阈值,则进行资源的缩容操作。但是,这种方式会由于频繁进行资源扩缩容操作而带来抖动。
41.基于此,本技术的实施例提供了一种资源控制方法及装置、电子设备、计算机可读存储介质,可以解决频繁进行资源扩缩容操作而带来抖动的问题,优化了资源控制方案。
42.请参阅图1,图1是本技术一种示例性实施环境的示意图。该实施环境中包括终端设备110和服务器120,终端设备110和服务器120之间通过有线或者无线网络进行通信。
43.应该理解,图1中的终端设备110和服务器120的数目仅仅是示意性的。根据实际需要,可以具有任意数目的终端设备110和服务器120。
44.其中,终端设备110可以是任意具有用户输入接口的电子设备,包括但不限于智能手机、平板、笔记本电脑、计算机等等,其中,用户输入接口包括但不限于触摸屏、键盘、物理按键、音频拾取装置等。
45.其中,服务器120可以是提供各种服务的服务器,其可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对此进行限制。
46.在本技术的一些实施例中,资源控制方法可以由服务器120执行,相应地,资源控制装置配置于kubernetes对应的服务器120中。其中,服务器120可以获取到预设服务对应的多个任务,其中预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务;之后,从多个任务中确定出现阻塞的目标任务,并统计目标任
务的数量;之后,若统计结果指示目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。
47.在本技术的一些实施例中,终端设备110也可以具有与服务器120相似的功能,从而执行本技术实施例提供的资源控制方法。
48.以下对本技术实施例的技术方案的各种实现细节进行详细阐述:
49.请参阅图2,图2是本技术的一个实施例示出的资源控制方法的流程图。该方法可以应用于图1所示的实施环境中,并由图1所示实施环境中的服务器120执行。如图2所示,资源控制方法至少包括步骤s210至步骤s230,详细介绍如下:
50.步骤s210,获取预设服务对应的多个任务;其中,预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务。
51.本技术实施例中预设服务指的是执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务。
52.其中,执行周期指的是预设服务的执行周期;例如预设服务是每隔60分钟执行一次。下述有提及预设服务的执行时间段,这里需要区别两者,预设服务的执行时间段指的是预设服务执行所需花费的时间;例如预设服务执行一次需要花费5分钟。
53.应当明确的是,预设服务的执行周期小于预设周期阈值,以表征预设服务的执行是较为频繁或密集的,对于该预设服务会经常面临着资源扩容和缩容;因此,本技术实施例中需要对此类型的预设服务进行资源控制。在实际应用中,预设周期阈值可以根据具体应用场景进行灵活设置。
54.其中,当预设服务执行时,其具体是会划分为多个任务,进而为多个任务分配实例,可以理解的是,实例在kubernetes中可以指的是pod。
55.应当明确的是,预设服务所包含的所有任务的数量大于预设任务数量阈值,以表征预设服务的任务负载量是较大的,对于该预设服务会经常面临着资源扩容和缩容;因此,本技术实施例中需要对此类型的预设服务进行资源控制。在实际应用中,预设任务数量阈值可以根据具体应用场景进行灵活设置。
56.需要说明的是,由于本技术实施例中是通过统计出现阻塞的目标任务的数量来进行资源的控制,因此,可能会涉及到任务阻塞的现象,那么本技术实施例中的预设服务是能够在一定程度上容忍一定数量的任务阻塞的服务。
57.在本技术的一个实施例中,预设服务包括但不限于用于采集网络运行数据的采集服务,其中,网络运行数据包括告警数据、性能数据、配置数据以及日志数据中的至少一个。
58.也即,可选实施例中预设服务可以是采集服务,具体可以是5g核心网采集业务对应的采集服务,由于采集服务的执行周期比较频繁或密集,并且采集服务所包含的所有任务的数量也较多;因此,采集服务可以作为预设服务的一种示例。在实际应用中,可以根据具体应用场景确定预设服务,只要其属于执行周期比较频繁或密集,且包含的所有任务的数量较多的范畴内。可以理解的是,通常执行周期比较频繁或密集的服务,其所包含的所有任务的数量也较多,当然特殊情况下,也可以仅满足其中一个条件,例如只属于执行周期比较频繁或密集的范畴内,或者只属于包含的所有任务的数量较多的范畴内。
59.在本技术的一个实施例中,预设服务对应有任务池,其中任务池中含有预设服务对应的所有任务;因此,可选实施例中可以从预设服务对应的任务池中获取预设服务对应
的多个任务,这样能够简单便捷地获取到预设服务对应的多个任务。
60.步骤s220,从多个任务中确定出现阻塞的目标任务,并统计目标任务的数量。
61.本技术实施例中获取预设服务对应的多个任务之后,可以从多个任务中确定出现阻塞的任务,将出现阻塞的任务作为目标任务,并统计目标任务的数量。
62.在本技术的一个实施例中,请参阅图3,步骤s220中从多个任务中确定出现阻塞的目标任务的过程,可以包括步骤s310至步骤s320,详细介绍如下:
63.步骤s310,监测在预设服务的执行时间段内多个任务的执行情况;
64.步骤s320,从多个任务中确定出执行时长大于预设时长阈值的任务,以将执行时长大于预设时长阈值的任务作为出现阻塞的目标任务。
65.也即,可选实施例中可以通过监测在预设服务的执行时间段内多个任务的执行情况,其中监测到的多个任务的执行情况包括任务的执行时长,进而根据任务的执行时长,从多个任务中确定出执行时长大于预设时长阈值的任务,此时确定出的执行时长大于预设时长阈值的任务即为出现阻塞的目标任务。
66.可选实施例中,步骤s310中监测在预设服务的执行时间段内多个任务的执行情况的过程,可以包括以下步骤:
67.若预设服务的执行时刻到达,则对预设服务的各个任务进行监测,并记录各个任务的执行起始时刻;
68.相应地,可选实施例中,步骤s320中从多个任务中确定出执行时长大于预设时长阈值的任务的过程,可以包括以下步骤:
69.根据各个任务的执行起始时刻与当前时刻,分别确定出各个任务的执行时长;
70.根据各个任务的执行时长,从多个任务中确定出执行时长大于预设时长阈值的任务。
71.也即,可选实施例中在预设服务的一个执行周期到来,此时可以对预设服务的各个任务进行监测,并当监测到各个任务开始执行时,分别记录各个任务开始执行的起始时刻,之后,可以在一段时间过后,根据各个任务开始执行的起始时刻与当前时刻,确定出各个任务的执行时长,之后,根据各个任务的执行时长,从多个任务中确定出执行时长大于预设时长阈值的任务。
72.举例说明,例如设预设服务1包括5个任务,其中监测到的在预设服务的执行时间段内多个任务的执行情况如下表1所示,同时设任务11、12的执行时长大于预设时长阈值;因此,此时可以从预设服务1所包括的5个任务11、12、13、14、15中确定出任务11、12为出现阻塞的任务,即任务11、12为目标任务。在实际应用中,预设时长阈值可以根据具体应用场景进行灵活设置。
73.预设服务1执行起始时刻当前时刻执行时长任务11t11tt-t11任务12t12tt-t12任务13t13tt-t13任务14t14tt-t14任务15t15tt-t15
74.表1
75.在本技术的一个实施例中,请参阅图4,步骤s220中从多个任务中确定出现阻塞的目标任务的过程,可以包括步骤s410至步骤s420,详细介绍如下:
76.步骤s410,监测在预设服务的执行时间段内多个任务的执行情况;
77.步骤s420,从多个任务中确定出在预设服务的执行时间段内执行未完成的任务,以将执行未完成的任务作为出现阻塞的目标任务。
78.也即,可选实施例中可以通过监测在预设服务的执行时间段内多个任务的执行情况,其中监测到的多个任务的执行情况包括任务是否执行完成/成功,进而根据执行未完成/失败的任务,从多个任务中确定出在预设服务的执行时间段内执行未完成/失败的任务,此时确定出的执行未完成/失败的任务即为出现阻塞的目标任务。
79.举例说明,例如设预设服务2包括5个任务,其中监测到的在预设服务的执行时间段内多个任务的执行情况如下表2所示,可见,任务23、24执行未完成;因此,此时可以从预设服务2所包括的5个任务21、22、23、24、25中确定出任务23、24为出现阻塞的任务,即任务23、24为目标任务。
80.预设服务2执行情况任务21执行完成任务22执行完成任务23执行未完成任务24执行未完成任务25执行完成
81.表2
82.在本技术的一个实施例中,请参阅图5,步骤s220中从多个任务中确定出现阻塞的目标任务的过程,可以包括步骤s510至步骤s520,详细介绍如下:
83.步骤s510,监测在预设服务的执行时间段内多个任务的执行情况;
84.步骤s520,从多个任务中确定出执行时长大于预设时长阈值的任务,以及从多个任务中确定出在预设服务的执行时间段内执行未完成的任务,以将执行时长大于预设时长阈值的任务,以及在预设服务的执行时间段内执行未完成的任务共同作为出现阻塞的目标任务。
85.也即,可选实施例中是从多个任务中确定出执行时长大于预设时长阈值,以及在预设服务的执行时间段内执行未完成的任务,即将从这两个方向筛选出的任务均作为出现阻塞的目标任务,更加符合场景需求。
86.举例说明,例如设预设服务3包括5个任务,其中监测到的在预设服务的执行时间段内多个任务的执行情况如下表3所示,同时设任务31、32的执行时长大于预设时长阈值,并且从表3可知,任务34、35执行未完成;因此,此时可以从预设服务3所包括的5个任务31、32、33、34、35中确定出任务31、32、34、35为出现阻塞的任务,即任务31、32、34、35为目标任务。
87.预设服务3执行是否完成执行时长任务31执行完成t-t31任务32执行完成t-t32任务33执行完成t-t33
任务34执行未完成t-t34任务35执行未完成t-t35
88.表3
89.值得注意的是,前述所示例的是三种从多个任务中确定出现阻塞的目标任务的方式,在实际应用中,可以根据具体应用场景进行调整,只要能从多个任务中确定出现阻塞的目标任务的方式均可。
90.步骤s230,若统计结果指示目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。
91.本技术实施例中从多个任务中确定出现阻塞的目标任务,并统计目标任务的数量之后,可以根据统计结果进行资源的控制操作;其中,如果统计结果指示目标任务的数量达到预设阻塞数量阈值,则此时可以进行资源的扩容操作。即本技术实施例中是当统计出预设服务包括的出现阻塞的目标任务的数量达到预设阻塞数量阈值,才进行资源的扩容,而不再是当资源池的使用率大于对应的资源参数的预设使用率上阈值时,就进行资源的扩容操作,这样让资源能够满负荷运转,从而避免由于频繁进行资源扩缩容操作而带来抖动的问题。
92.在本技术的一个实施例中,请参阅图6,步骤s230中进行资源的扩容操作的过程,可以包括步骤s610至步骤s620,详细介绍如下:
93.步骤s610,将目标任务数量与单个实例执行的任务数量进行求商运算,得到第一实例数量;
94.步骤s620,根据第一实例数量进行资源的扩容操作。
95.也即,可选实施例中可以将目标任务数量与单个实例所执行的任务数量进行求商运算,以得到第一实例数量,之后,根据第一实例数量进行资源的扩容操作。即得到的第一实例数量为进行扩容操作所对应的实例数量;因此,根据该第一实例数量进行资源的扩容操作,可以使得目标任务得以执行,足以支持预设服务的正常运行,不会因为随意进行资源的扩容操作而造成扩容过多或过少的现象。
96.具体地,可以通过下述公式得到第一实例数量:
[0097][0098]
可选地,如果存在目标任务,还可以计算得到预设服务运行所需的实例总数量;具体地,可以通过下述公式得到预设服务运行所需的实例总数量:
[0099][0100]
在本技术的一个实施例中,请参阅图7,该资源控制方法还可以包括步骤s710至步骤s720,详细介绍如下:
[0101]
步骤s710,若统计结果指示目标任务的数量未达到预设阻塞数量阈值,则基于水平自动扩缩机制确定资源池的使用率是否小于预设使用率阈值;
[0102]
步骤s720,若基于水平自动扩缩机制确定资源池的使用率小于预设使用率阈值,则进行资源的缩容操作;其中,资源池对应的资源参数包括内存、中央处理器中的至少一
个。
[0103]
也即,可选实施例中如果统计结果指示目标任务的数量未达到预设阻塞数量阈值,则基于水平自动扩缩机制确定资源池的使用率是否小于预设使用率阈值;其中,如果基于水平自动扩缩机制确定资源池的使用率小于预设使用率阈值,则此时可以进行资源的缩容操作。即本技术实施例中是当资源池的使用率小于预设使用率下阈值时,就进行资源的缩容操作。
[0104]
其中,可选实施例中资源池对应的资源参数包括但不限于内存、中央处理器;可选地,资源池对应的资源参数包括内存、中央处理器中的一个或多个。
[0105]
在本技术的一个实施例中,请参阅图8,步骤s720中进行资源的缩容操作的过程,可以包括步骤s810至步骤s820,详细介绍如下:
[0106]
步骤s810,将预设服务的所有任务数量与单个实例执行的任务数量进行求商运算,得到第二实例数量;
[0107]
步骤s820,根据第二实例数量进行资源的缩容操作。
[0108]
也即,可选实施例中可以将预设服务的所有任务数量与单个实例执行的任务数量进行求商运算,以得到第二实例数量,之后,根据第二实例数量进行资源的缩容操作。即得到的第二实例数量为进行缩容操作所对应的实例数量;因此,根据该第二实例数量进行资源的缩容操作,可以使得回收合理数量的实例,在保证预设服务正常运行的同时,回收空闲的资源以用于其他服务。
[0109]
其中,可选实施例中根据第二实例数量进行资源的缩容操作是在预设服务的执行时间段后,这样才能保证预设服务正常运行,而不至于由于提前进行资源的缩容操作导致预设服务无法正常运行的情况。
[0110]
具体地,可以通过下述公式得到第二实例数量:
[0111][0112]
可选地,如果不存在目标任务,还可以计算得到预设服务运行所需的实例总数量;具体地,可以通过下述公式得到预设服务运行所需的实例总数量:
[0113][0114]
本技术实施例中是当统计出预设服务包括的出现阻塞的目标任务的数量达到预设阻塞数量阈值,才进行资源的扩容,而不再是当资源池的使用率大于对应的资源参数的预设使用率上阈值时,就进行资源的扩容操作,这样让资源能够满负荷运转,从而避免由于频繁进行资源扩缩容操作而带来抖动的问题,并且只有当出现阻塞的目标任务的数量达到预设阻塞数量阈值,才进行资源的扩容,从而使得资源足以承受预设服务执行时间段内的任务量,以支持预设服务的正常运行。
[0115]
以下对本技术实施例的具体应用场景进行详细说明:
[0116]
请参阅图9,图9是本技术的一个实施例示出的资源控制方法的流程图。本技术实施例中以预设服务为采集服务为例进行说明,如图9所示,资源控制方法至少包括步骤s910至步骤s970,详细介绍如下:
[0117]
步骤s910,从采集服务对应的采集任务池中获取采集服务对应的多个采集任务。
[0118]
可选地,步骤s910的具体实施过程可以参照前述实施例的技术方案。
[0119]
步骤s920,监测在采集服务的执行时间段内多个采集任务的执行情况。
[0120]
可选地,本技术实施例中可以由采集任务监控模块监测采集服务在执行时间段内多个采集任务的执行情况;其中,本技术实施例中采集任务监控模块监测采集服务在执行时间段内多个采集任务的执行情况包括采集任务的执行时长以及采集任务是否执行完成/成功。
[0121]
举例说明,例如设从采集服务对应的采集任务池中获取到采集服务1包括的8个采集任务11、12、13、14、15、16、17、18;因此,需要对在采集服务的执行时间段内采集任务11、12、13、14、15、16、17、18的执行情况进行监测,具体地,是监测采集任务的执行时长以及采集任务是否执行完成/成功。
[0122]
步骤s930,从多个采集任务中确定出执行时长大于预设时长阈值的采集任务,以及从多个采集任务中确定出在采集服务的执行时间段内执行未完成的采集任务,以将执行时长大于预设时长阈值的采集任务,以及在采集服务的执行时间段内执行未完成的采集任务共同作为出现阻塞的目标采集任务。
[0123]
其中,本技术实施例中是从采集任务的执行时长以及采集任务在采集服务的执行时间段内是否执行完成两个方向同时进行筛选,以从多个采集任务中确定出出现阻塞的目标采集任务。
[0124]
承接上述示例,进一步地,设采集服务1包括的8个采集任务中采集任务11、12在执行时间段内虽然执行完成,但是两者的执行时长大于预设时长阈值,同时采集任务13、14、15在执行时间段内执行未完成;因此,从采集服务1包括的8个采集任务11、12、13、14、15、16、17、18中确定出采集任务11、12、13、14、15为出现阻塞的采集任务,即采集任务11、12、13、14、15为目标采集任务。
[0125]
步骤s940,统计目标采集任务的数量。
[0126]
承接前述示例,进一步地,统计得到目标采集任务的数量为5个。
[0127]
步骤s950,若统计结果指示目标采集任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。
[0128]
承接前述示例,进一步地,设预设阻塞数量阈值为5个,则统计结果指示目标采集任务的数量达到了预设阻塞数量阈值,此时需要进行资源的扩容操作。可选地,进行资源的扩容操作具体可以包括将目标采集任务数量与单个实例执行的采集任务数量进行求商运算,得到第一实例数量,再根据第一实例数量进行资源的扩容操作。
[0129]
步骤s960,若统计结果指示目标采集任务的数量未达到预设阻塞数量阈值,则基于水平自动扩缩机制确定资源池的使用率是否小于预设使用率阈值。
[0130]
可选地,步骤s960的具体实施过程可以参照前述实施例的技术方案。
[0131]
步骤s970,若基于水平自动扩缩机制确定资源池的使用率小于预设使用率阈值,则进行资源的缩容操作。
[0132]
可选地,进行资源的缩容操作具体可以包括将采集服务的所有采集任务数量与单个实例执行的采集任务数量进行求商运算,得到第二实例数量,再根据第二实例数量进行资源的缩容操作。
[0133]
请参阅图10,图10是本技术的一个实施例示出的资源控制方法的流程图。本技术实施例中仍以预设服务为采集服务为例进行说明,如图10所示,资源控制方法至少包括步骤s1010至步骤s1040,详细介绍如下:
[0134]
步骤s1010,采集服务对应有采集任务监控模块从采集任务池中获取采集服务对应的多个采集任务,并监测多个采集任务的执行情况。
[0135]
其中,采集服务根据监测到的多个采集任务的执行情况,可以确定出多个采集任务的是否阻塞。
[0136]
步骤s1020,判断采集任务的阻塞情况;如果阻塞的采集任务数量达到预设阻塞数量阈值,则执行步骤s1030,如果阻塞的采集任务数量未达到预设阻塞数量阈值,则执行步骤s1040。
[0137]
可选地,步骤s1020的具体实施过程可以参照前述实施例的技术方案。
[0138]
步骤s1030,进行资源的扩容操作。
[0139]
可选地,步骤s1030的具体实施过程可以参照前述实施例的技术方案。
[0140]
步骤s1040,若cpu、内存使用率低于预设使用下阈值,则进行资源的缩容操作。
[0141]
可选地,步骤s1040的具体实施过程可以参照前述实施例的技术方案。
[0142]
本技术实施例中是当采集服务包括的出现阻塞的目标采集任务的数量达到预设阻塞数量阈值,才进行资源的扩容操作;当采集服务包括的出现阻塞的目标采集任务的数量未达到预设阻塞数量阈值,且基于水平自动扩缩机制确定资源池的使用率小于预设使用率下阈值,则进行资源的缩容操作;这样避免了由于频繁进行资源扩缩容操作而带来抖动的问题,在极大程度上优化了资源扩缩容方案。
[0143]
图11是本技术的一个实施例示出的资源控制装置的框图。如图11所示,该装置包括:
[0144]
获取模块1110,配置为获取预设服务对应的多个任务;其中,预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务;
[0145]
确定与统计模块1120,配置为从多个任务中确定出现阻塞的目标任务,并统计目标任务的数量;
[0146]
扩容模块1130,配置为若统计结果指示目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。
[0147]
在本技术的一个实施例中,该装置还可以包括:
[0148]
确定模块,配置为若统计结果指示目标任务的数量未达到预设阻塞数量阈值,则基于水平自动扩缩机制确定资源池的使用率是否小于预设使用率阈值;
[0149]
缩容模块,配置为若基于水平自动扩缩机制确定资源池的使用率小于预设使用率阈值,则进行资源的缩容操作;其中,资源池对应的资源参数包括内存、中央处理器中的至少一个。
[0150]
在本技术的一个实施例中,确定与统计模块1120包括:
[0151]
第一监测单元,配置为监测在预设服务的执行时间段内多个任务的执行情况;
[0152]
第一确定单元,配置为从多个任务中确定出执行时长大于预设时长阈值的任务,以将执行时长大于预设时长阈值的任务作为出现阻塞的目标任务。
[0153]
在本技术的一个实施例中,确定与统计模块1120包括:
[0154]
第二监测单元,配置为监测在预设服务的执行时间段内多个任务的执行情况;
[0155]
第二确定单元,配置为从多个任务中确定出在预设服务的执行时间段内执行未完成的任务,以将执行未完成的任务作为出现阻塞的目标任务。
[0156]
在本技术的一个实施例中,
[0157]
第一监测单元,具体配置为若预设服务的执行时刻到达,则对预设服务的各个任务进行监测,并记录各个任务的执行起始时刻;
[0158]
第一确定单元,具体配置为根据各个任务的执行起始时刻与当前时刻,分别确定出各个任务的执行时长;根据各个任务的执行时长,从多个任务中确定出执行时长大于预设时长阈值的任务。
[0159]
在本技术的一个实施例中,扩容模块1130包括:
[0160]
第一运算单元,配置为将目标任务数量与单个实例执行的任务数量进行求商运算,得到第一实例数量;
[0161]
扩容单元,配置为根据第一实例数量进行资源的扩容操作。
[0162]
在本技术的一个实施例中,缩容模块包括:
[0163]
第二运算单元,配置为将预设服务的所有任务数量与单个实例执行的任务数量进行求商运算,得到第二实例数量;
[0164]
缩容单元,配置为根据第二实例数量进行资源的缩容操作。
[0165]
在本技术的一个实施例中,预设服务包括用于采集网络运行数据的采集服务,其中,网络运行数据包括告警数据、性能数据、配置数据以及日志数据中的至少一个。
[0166]
需要说明的是,上述实施例所提供的资源控制装置与前述实施例所提供的资源控制方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,这里不再赘述。
[0167]
本技术的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现前述各个实施例中提供的资源控制方法。
[0168]
图12示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
[0169]
需要说明的是,图12示出的电子设备的计算机系统1200仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0170]
如图12所示,计算机系统1200包括中央处理单元(central processing unit,cpu)1201,其可以根据存储在只读存储器(read-only memory,rom)1202中的程序或者从储存部分1208加载到随机访问存储器(random access memory,ram)1203中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在ram 1203中,还存储有系统操作所需的各种程序和数据。cpu 1201、rom 1202以及ram 1203通过总线1204彼此相连。输入/输出(input/output,i/o)接口1205也连接至总线1204。
[0171]
以下部件连接至i/o接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分1207;包括硬盘等的储存部分1208;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至i/o接口1205。可拆卸介质
1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入储存部分1208。
[0172]
特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(cpu)1201执行时,执行本技术的系统中限定的各种功能。
[0173]
需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0174]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0175]
描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0176]
本技术的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的资源控制方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
[0177]
本技术的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产
品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的资源控制方法。
[0178]
上述内容,仅为本技术的较佳示例性实施例,并非用于限制本技术的实施方案,本领域普通技术人员根据本技术的主要构思和精神,可以十分方便地进行相应的变通或修改,故本技术的保护范围应以权利要求书所要求的保护范围为准。
技术特征:
1.一种资源控制方法,其特征在于,应用于基于容器的集群管理平台,所述方法包括:获取预设服务对应的多个任务;其中,所述预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务;从所述多个任务中确定出现阻塞的目标任务,并统计所述目标任务的数量;若统计结果指示所述目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。2.如权利要求1所述的方法,其特征在于,所述方法还包括:若统计结果指示所述目标任务的数量未达到所述预设阻塞数量阈值,则基于水平自动扩缩机制确定资源池的使用率是否小于预设使用率阈值;若基于水平自动扩缩机制确定资源池的使用率小于所述预设使用率阈值,则进行资源的缩容操作;其中,所述资源池对应的资源参数包括内存、中央处理器中的至少一个。3.如权利要求1所述的方法,其特征在于,所述从所述多个任务中确定出现阻塞的目标任务,包括:监测在所述预设服务的执行时间段内多个任务的执行情况,从多个任务中确定出执行时长大于预设时长阈值的任务,以将所述执行时长大于预设时长阈值的任务作为出现阻塞的目标任务;和/或,监测在所述预设服务的执行时间段内多个任务的执行情况,从多个任务中确定出在所述预设服务的执行时间段内执行未完成的任务,以将所述执行未完成的任务作为出现阻塞的目标任务。4.如权利要求3所述的方法,其特征在于,所述监测在所述预设服务的执行时间段内多个任务的执行情况,包括:若所述预设服务的执行时刻到达,则对所述预设服务的各个任务进行监测,并记录各个任务的执行起始时刻;所述从多个任务中确定出执行时长大于预设时长阈值的任务,包括:根据各个任务的执行起始时刻与当前时刻,分别确定出各个任务的执行时长;根据各个任务的执行时长,从多个任务中确定出执行时长大于预设时长阈值的任务。5.如权利要求1至4中任一项所述的方法,其特征在于,所述进行资源的扩容操作,包括:将所述目标任务数量与单个实例执行的任务数量进行求商运算,得到第一实例数量;根据所述第一实例数量进行资源的扩容操作。6.如权利要求2至4中任一项所述的方法,其特征在于,所述进行资源的缩容操作,包括:将所述预设服务的所有任务数量与单个实例执行的任务数量进行求商运算,得到第二实例数量;根据所述第二实例数量进行资源的缩容操作。7.如权利要求1至4中任一项所述的方法,其特征在于,所述预设服务包括用于采集网络运行数据的采集服务,其中,所述网络运行数据包括告警数据、性能数据、配置数据以及日志数据中的至少一个。
8.一种资源控制装置,其特征在于,配置于基于容器的集群管理平台,所述装置包括:获取模块,配置为获取预设服务对应的多个任务;其中,所述预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务;确定与统计模块,配置为从所述多个任务中确定出现阻塞的目标任务,并统计所述目标任务的数量;扩容模块,配置为若统计结果指示所述目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。9.一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至7中任一项所述的资源控制方法。10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的资源控制方法。
技术总结
本申请的实施例揭示了一种资源控制方法及装置、电子设备、计算机可读存储介质,该方法包括:获取预设服务对应的多个任务,其中,预设服务表征执行周期小于预设周期阈值,且包含的所有任务的数量大于预设任务数量阈值的服务;之后,从多个任务中确定出现阻塞的目标任务,并统计目标任务的数量;之后,若统计结果指示目标任务的数量达到预设阻塞数量阈值,则进行资源的扩容操作。本申请实施例的技术方案极大地优化了资源控制方案,避免了由于频繁进行资源扩缩容操作而带来抖动的问题。源扩缩容操作而带来抖动的问题。源扩缩容操作而带来抖动的问题。
技术研发人员:陈博豪 邱诗鹏 李凌
受保护的技术使用者:中国电信股份有限公司
技术研发日:2021.11.30
技术公布日:2022/3/8