CN114911617A - 一种资源配置方法、装置、设备和介质 - Google Patents

一种资源配置方法、装置、设备和介质 Download PDF

Info

Publication number
CN114911617A
CN114911617A CN202210512431.0A CN202210512431A CN114911617A CN 114911617 A CN114911617 A CN 114911617A CN 202210512431 A CN202210512431 A CN 202210512431A CN 114911617 A CN114911617 A CN 114911617A
Authority
CN
China
Prior art keywords
idle
query
historical
predicted value
index
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
Application number
CN202210512431.0A
Other languages
English (en)
Inventor
张师瑜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202210512431.0A priority Critical patent/CN114911617A/zh
Publication of CN114911617A publication Critical patent/CN114911617A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本申请公开了一种资源配置方法、装置、设备及介质。该方法包括:获取集群中目标资源的历史空闲指标和申请目标资源的配置资源的历史查询指标;根据历史空闲指标预测目标资源的空闲预测值;以及根据历史查询指标预测配置资源的查询预测值;根据空闲预测值和查询预测值对配置资源的副本数进行增加或减少。本申请实施例通过采集目标资源GPU和配置资源Pod的每秒查询率的预测值,来提高对集群GPU资源的利用率。

Description

一种资源配置方法、装置、设备和介质
技术领域
本发明涉及计算机技术领域,特别是指一种资源配置方法、装置、设备和介质。
背景技术
随着容器技术(Docker)以及容器编排技术(K8S)成熟,越来越多的公司将自己的机器学习训练流程放到容器当中进行。容器技术解决了开发环境和运维环境不一致的问题,能够实现了进程的隔离,允许开发人员将应用打包到容器中,容器将应用程序代码、操作系统库以及所需的依赖环境结合在一起,可以发布到任何流行的系统中运行。而容器编排技术可以用于容器集群的管理,启动监控回收运行在一组服务器上的容器,并同时保证容器健康运行。
利用容器编排技术(K8S)将GPU(英文全称Graphics Processing Unit)资源聚合成资源池来实现统一管理,并借用docker交付深度学习的运行时环境,这种情况已成为K8S集群业务发展的一个重要分支。
但是,目前K8S仅提供基于CPU利用率实现Pod水平方向自动伸缩(英文全称Horizontal Pod Autoscaler,英文缩写HPA)的方案,且支持通过自定义指标(CustomMetrics)来实现HPA。现有的HPA是依赖CPU/Memory利用率控制弹性伸缩,无法满足集群业务在多指标扩缩、弹性伸缩稳定性方面的需求。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种资源配置方法、装置、设备和介质,来解决在集群业务需要GPU资源场景下,采用现有的HPA无法有效地提高集群GPU使用效率的问题。
第一方面,本发明实施例提供了一种资源配置方法,该方法包括:
获取集群中目标资源的历史空闲指标和申请目标资源的配置资源的历史查询指标;
根据历史空闲指标预测目标资源的空闲预测值;以及根据历史查询指标预测所述配置资源的查询预测值;
根据空闲预测值和查询预测值对配置资源的副本数进行增加或减少。
第二方面,本发明实施例还提供了一种资源配置装置,该装置至少包括指标采集模块、指标计算模块和配置模块,其中,
指标采集模块,用于获取集群中目标资源的历史空闲指标和使用目标资源的配置资源的历史查询指标;
指标计算模块,用于根据历史空闲指标预测目标资源的空闲预测值;以及根据历史查询指标预测配置资源的查询预测值;
配置模块,用于根据空闲预测值和查询预测值对配置资源的副本数进行增加或减少。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行该程序时实现本发明实施例描述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本发明实施例描述的方法。
本发明提供的技术方案带来的有益效果是:
本申请提供了一种资源配置方法、装置、设备及介质,该方法通过获取集群中目标资源的历史空闲指标和申请目标资源的配置资源的历史查询指标;然后,根据历史空闲指标预测目标资源的空闲预测值;以及根据历史查询指标预测所述配置资源的查询预测值,最后,根据空闲预测值和查询预测值对配置资源的副本数进行增加或减少,其基于目标资源和配置资源的空闲预测值和查询预测值,较准确地识别配置资源使用目标资源的利用率,并在目标资源的利用率较低时可以释放目标资源,减少配置资源的副本数,其有效地提高了集群中目标资源的使用效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的资源伸缩控制方法的应用场景示意图;
图2示出了本发明实施例提供的K8S框架结构示意图;
图3示出了本发明实施例提供的资源配置方法的流程示意图;
图4示出了本发明一实施例提供的资源配置方法的流程示意图;
图5示出了本发明又一实施例提供的资源配置方法的流程示意图;
图6示出了本发明再一实施例提供的K8S聚合API实现资源配置的原理示意图;
图7示出了本申请实施例提供的资源配置装置的结构示意图;
图8示出了本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,图1示出了本申请实施例提供的资源伸缩控制方法的应用场景示意图。
在图1所示的应用场景中,一个或多个终端设备101通过公用网络102对部署在不同区域的一个或多个服务器103进行资源访问。其中,终端设备101可以包括但不限于智能手机、平板电脑、智能眼镜等移动设备,台式电脑等电子设备。终端设备101上可以预先安装有用于执行业务访问的应用程序。
公用网络102,用于支持终端设备101在各种网络情况下访问业务资源。可选地,上述的公用网络可以包括无线网络或有线网络,通过无线网络或者有线网络使用标准通信技术和/或协议。网络通常为因特网,也可以是任何网络,包括但不限于局域网(Local AreaNetwork,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。
服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在上述应用场景中,可以针对服务器103进行相关配置,以满足K8S云平台部署的需求。K8S全称Kubernetes,是基于容器服务的一种可移植容器的编排管理工具。如图2所示,K8S集群由一个或多个Master节点和多个Node(Worker)节点组成。其中Master节点指的是集群控制节点,管理和控制整个集群。除了Master节点以外的节点被称为Node或者Worker节点,每个Node节点都会被Master节点分配一些工作,在Node节点上维护运行的Pod并提供Kubernetes运行环境。其中,容器被运行在Pod中。Pod是K8S管理的基本单元。Master节点包括但不限于网关API Server,所有指令请求都需要经由API Server转发。Node节点包括但不限于一个或多个Pod,每个Pod可以包括一个或多个容器。
在基于K8S部署的集群面临负载较低或者业务量波动变化等问题时,针对Pod资源的伸缩控制可以有效地保障系统的稳定性。随着机器学习、深度学习在各个行业不断增长,将机器学习训练流程放到容器中,则可以考虑利用GPU资源做人工智能算法模型的推理计算,从而满足业务发展需求。在集群部分业务采用GPU资源的场景下,业务提供方会关注GPU利用率,如何在这个场景下来提高GPU利用率,仅仅依靠现有的基于CPU利用率对Pod的副本数进行控制的伸缩策略,显然不能有效地保障GPU利用率。
因此,本发明基于上述问题,提出了一种资源配置方法,通过对GPU资源的使用情况进行监控,来实现该场景下HPA,从而保障运行在Pod上的服务的稳定性,同时提高集群中的GPU使用效率。
为了更清楚地理解本发明提供的发明构思,下面结合图3-6对本发明提出的资源配置方法展开描述。
请参考图3,图3示出了本发明提出的一种资源配置方法,该方法可以由配置在电子设备中的主节点(Master节点)执行,具体可以在Master节点中创建新的功能模块或在原有功能模块中新增功能子模块来实施。该方法包括以下步骤:
步骤301,获取集群中目标资源的历史空闲指标和申请目标资源的配置资源的历史查询指标;
步骤302,根据历史空闲指标预测目标资源的空闲预测值;以及根据历史查询指标预测配置资源的查询预测值;
步骤303,根据空闲预测值和查询预测值对配置资源的副本数进行增加或减少。
在上述步骤中,目标资源是指集群中包含的GPU资源。配置资源是指集群中包含的Pod资源。历史空闲指标是指集群中GPU资源在不同的监测周期下对应的GPU空闲率。历史空闲指标包括与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标,以及与当前时刻对应的当前空闲指标。当前时刻可以是用于监测自动伸缩的定时器在每次运行时系统所对应的当前时间。例如,定时器每间隔5分钟执行一次。假设定时器在2021年11月16日18点运行,则当前时刻为2021年11月16日18点,下次运行的时间为2021年11月16日18:05分。当前时刻在定时器执行时,被更新赋值。
确定当前时刻可以通过响应于用于监测资源配置的定时器的启动信号,确定系统当前的时钟信号为当前时刻。或者,响应于针对集群资源配置的请求,确定该请求对应的时钟信号为当前时刻。
上述第一监测周期、第二监测周期和第三监测周期,分别对应不同的时间长度的时间周期。时间周期可以是以天或月或年为周期时长。例如,第一监测周期可以是24小时,第二监测周期可以是30或31天,可以为自然月,第三监测周期可以是365天或366天。
当确定预测时刻为t1时,与第一监测周期对应的第一历史空闲指标是指在确定的预测时刻之前的一个第一监测周期内,与确定的预测时刻相同的时刻对应的GPU空闲率。例如,预测时刻为2021年11月16日18:10,则与第一监测周期对应的第一历史空闲指标,可以是2021年11月15日18:10对应的GPU空闲率。
可选地,当确定预测时刻为t1时,与第二监测周期对应的第二历史空闲指标是指在确定的预测时刻之前的一个第二监测周期内,与确定的预测时刻相同的时刻对应的GPU空闲率。例如,预测时刻为2021年11月16日18:10,则与第二监测周期对应的第二历史空闲指标,可以是2021年10月16日18:10对应的GPU空闲率。
可选地,当确定预测时刻为t1时,与第三监测周期对应的第三历史空闲指标是指在确定的预测时刻之前的一个第三监测周期内,与确定的预测时刻相同的时刻对应的GPU空闲率。例如,预测时刻为2021年11月16日18:10,则与第三监测周期对应的第三历史空闲指标,可以是2020年11月16日18:10对应的GPU空闲率。
上述获取集群中目标资源的历史空闲指标,包括:
获取与当前时刻对应的当前空闲指标;
获取与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标。
其中,获取与当前时刻对应的当前空闲指标,包括:
获取当前时刻对应的集群中目标资源的总数量;
获取当前时刻对应的集群中处于未使用状态的目标资源的统计数量;
根据总数量和统计数量计算历史空闲指标。
在Master节点中新增Custom-Metrics Server模块(即指标计算模块)、Prometheus Client模块和Prometheus Exporter模块(Prometheus Client模块和Prometheus Exporter模块即指标采集模块)。通过指标采集模块分别采集GPU数据和QPS数据。其中GPU数据可以通过Client-Go工具包开发Prometheus Exporter模块的来获取,QPS(英文全称Queries Per Second)数据可以通过Prometheus Client模块来获取。
在申请GPU资源的Pod资源中,可能Pod资源的当前状态为Evicted状态,在该状态下Pod资源又同时申请GPU资源,该状态的Pod资源实际上不能正常工作,因此,对于该状态下申请GPU资源的情形需要排除,从而可以有效地提高统计解决的准确性,进而提高GPU资源的利用率。
在获取当前时刻对应的集群中处于未使用状态的目标资源的统计数量时,可以通过以下步骤来实施:
获取集群中包含的每一个配置资源的状态标签;根据状态标签识别处于未使用状态的配置资源;根据处于未使用状态的配置资源累计所述统计数量。
状态标签是指用于指示配置资源的资源状态的标签。例如,可以Evicted状态,可以采用二进制或其他进制的数字标识。
获取当前时刻对应的集群中处于未使用状态的目标资源的统计数量,还可以包括:
在确定当前时刻对应的集群中目标资源的总数量之后,确定集群中包含的每一个配置资源的状态标签,然后利用该总数量减去处于异常状态的配置资源申请GPU的数量;再减去集群中已经使用的GPU数量。
上述与当前时刻对应的当前空闲指标、与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标均表示GPU空闲率,其可以通过以下公式确定:
GPU空闲率=集群中GPU未使用数量/GPU总数
例如,与当前时刻对应的当前空闲指标是指与当前时刻对应的GPU空闲率。同理,与第一监测周期对应的第一历史空闲指标是指与第一监测周期对应的GPU空闲率。其仅仅是统计时刻不同,GPU空闲率的计算方法均相同。
在步骤302中,根据历史空闲指标预测目标资源的空闲预测值,可以包括:
根据与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标和与当前时刻对应的当前空闲指标计算目标资源的空闲预测值。
空闲预测值是指在确定当前时刻之后,与预测时刻对应的GPU空闲率。例如,当前时刻确定为t0,则预测时刻为t1时刻,预测时刻可以根据算法模型的精度需求确定合理的取值。
上述步骤301中,历史查询指标包括与第一监测周期对应的第一查询预测值、与第二监测周期对应的第二查询预测值、与第三监测周期对应的第三查询预测值和与当前时刻对应的当前查询预测值。
历史查询指标是指申请目标资源的配置资源在历史时刻对应的QPS。QPS是“每秒查询率”,是指一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。对于每个申请使用GPU资源的Pod资源,与其对应的QPS,可以理解为按照周期性统计正在运行的Pod每个时间间隔内的QPS。如果每10分钟统计一次,在10分钟内统计的Pod资源接收到的总请求次数除以10分钟*60秒,即表示历史时刻对应的QPS。例如历史QPS(2021年1月1日12点0-10分)=总请求数/(10分钟*60秒)。
还可以通过收集当前区间的QPS来计算查询预测值,当前区间的QPS可以通过计算出当前时刻往前推一个周期的QPS;例如当前区间QPS=(当前时刻t0-周期值)总请求数/(10分钟*60)。
可选地,上述步骤中,根据历史查询指标预测配置资源的查询预测值,包括:
根据第一监测周期对应的第一查询预测值、与第二监测周期对应的第二查询预测值、与第三监测周期对应的第三查询预测值和与当前时刻对应的当前查询预测值,计算配置资源的查询预测值。
当确定预测时刻为t1时,与第一监测周期对应的第一查询预测值是指在确定的预测时刻之前的一个第一监测周期内,与确定的预测时刻相同的时刻对应的历史QPS。例如,预测时刻为2021年11月16日18:10,则与第一监测周期对应的第一查询预测值,可以是2021年11月15日18:10-18:00对应的历史QPS。
当确定预测时刻为t1时,与第二监测周期对应的第二查询预测值是指在确定的预测时刻之前的一个第二监测周期内,与确定的预测时刻相同的时刻对应的历史QPS。例如,预测时刻为2021年11月16日18:10,则与第二监测周期对应的第二查询预测值,可以是2021年10月16日18:10-18:00对应的历史QPS。
当确定预测时刻为t1时,与第三监测周期对应的第三查询预测值是指在确定的预测时刻之前的一个第三监测周期内,与确定的预测时刻相同的时刻对应的历史QPS。例如,预测时刻为2021年11月16日18:10,则与第三监测周期对应的第三查询预测值,可以是2020年11月16日18:10-18:00对应的历史QPS。
本发明提出的资源配置方法通过获取GPU资源的历史使用情况,然后基于历史使用情况预测未来时刻的GPU资源的空闲率和Pod资源的QPS,基于预测结果来对集群中Pod副本数进行控制,其可以准确地了解GPU资源的使用情况,并精确地控制Pod副本数,从而提升GPU资源的利用率。
在上述实施例基础上,如图4所示,图4示出了本申请实施例提供的又一资源配置方法的示例性流程图。该方法该方法可以由配置在电子设备中的主节点(Master节点)执行,具体可以在Master节点中创建新的功能模块或在原有功能模块中新增功能子模块来实施,该方法包括:
步骤401,获取集群中目标资源的历史空闲指标和申请目标资源的配置资源的历史查询指标;
步骤402,根据历史空闲指标预测目标资源的空闲预测值;以及根据历史查询指标预测配置资源的查询预测值。
步骤403,根据空闲预测值与查询预测值确定伸缩控制策略标识;
步骤404,基于伸缩控制策略标识对配置资源的副本数进行增加或减少。
在上述步骤中,伸缩控制策略标识是指用于指示对配置资源的副本数进行增加或减少的指示值。该指示值可以采用二进制标识,或其他符号来指示。
其中,根据空闲预测值与查询预测值确定伸缩控制策略标识,包括:
当空闲预测值大于第一阈值且查询预测值大于第二阈值时,确定伸缩控制策略标识为第一控制标识;
当空闲预测值介于第一阈值和第三阈值之间,且查询预测值大于第二阈值,以及配置资源的服务优先级为第一标志值,确定伸缩控制策略标识为第一控制标识;
当所述空闲预测值小于所述第一阈值,且查询预测值小于第四预测值,以及配置资源的服务优先级为第二标志值,则确定伸缩控制策略标识为第二控制标识;
其中,第三阈值小于第一阈值。
假设已知一个Pod资源能够支持的最大QPS值为QPS_max,通常在部署Pod资源前会进行压测,预先求得最大的QPS值。Pod资源的服务优先级可以在创建Pod时输入。QPS_t1表示t1时刻对应的查询预测值,GPUAvail_t1表示t1时刻对应的空闲预测值。
当QPS_t1>QPS_max*80%且GPUAvail_t1>20%,确定需要进行扩容,可以设置第一控制标识,例如第一控制标识为1。
当QPS_t1>QPS_max*80%且0<GPUAvail_t1<20%且Pod资源的优先级等于1时,确定需要进行扩容,可以设置第一控制标识,例如第一控制标识为1。即根据第一控制标识增加Pod的副本数。
当QPS_t1<QPS_max*20%且GPUAvail_t1<20%且Pod资源的优先级为0时,确定需要进行缩容,可以设置第二控制标识,例如第二控制标识为0。即根据第二控制标识减少Pod的副本数。
当QPS_t1和GPUAvail_t1不能同时满足上述条件时,对于集群中Pod资源可以不用采用任何伸缩控制策略。
本发明提出的资源配置方法通过获取GPU资源的使用情况,然后基于使用情况预测未来时刻的GPU资源的空闲率和Pod资源的QPS,基于预测结果对应的控制标识来对集群中Pod副本数进行控制,其可以节省开销,并提升GPU资源的利用率。
在上述实施例基础上,如图5所示,图5示出了本申请实施例提供的再一资源配置方法的示例性流程图。该方法该方法可以由配置在电子设备中的主节点(Master节点)执行,具体可以在Master节点中创建新的功能模块或在原有功能模块中新增功能子模块来实施,该方法包括:
步骤501,获取集群中目标资源的历史空闲指标和申请目标资源的配置资源的历史查询指标;
步骤502,根据历史空闲指标预测目标资源的空闲预测值;以及根据历史查询指标预测配置资源的查询预测值。
步骤503,根据空闲预测值和查询预测值对配置资源的副本数进行增加或减少。
步骤504,格式化处理空闲预测值、查询预测值、与配置资源对应的最大查询值和与对配置资源的副本数进行增加或减少对应的伸缩控制策略标识。
在上述步骤中,格式化HPA Metrics可以将指标计算模块中的QPS_t1、GPUAvail_t1、QPS_max以及决策结果(扩容或缩容),转成HPA Metrics能够识别的数据类型(Prometheus Metrics格式),可以提供给位于Master节点中的HPA controller收集使用。
本发明提出的资源配置方法,在上述实施例基础,通过格式化处理预测值和控制策略标识可以提高数据处理速度,并同步提升GPU资源的利用率。
下面为了更好地理解本发明,以K8S容器编排系统聚合API实现Custom-MetricsServer模块为例,结合图6详细说明本发明提出的资源配置方法。
通过Kube-Aggregator组件,即API聚合器,将K8S原生的API Server和Custom-Metrics Server模块结合起来,这样GPU资源数据可以从K8S集群的API Server中直接获取,不必再通过其他途径。为了实施本发明提出的资源配置方法,可以至少包括用于对GPU、Pod QPS、Pod优先级等信息进行采集的指标采集模块和用于预测GPU空闲率和Pod资源的QPS的指标计算模块,以及基于预测结果进行决策判断的配置模块,该预测结果是由指标计算模块计算得到的。其中,指标采集模块可以使用Goland语言实现。指标计算模块和配置模块可以采用Python语言实现。
指标采集模块,可以至少包括:用于采集GPU空闲率的Prometheus Exporter子模块、用于采集Pod资源的QPS的Prometheus Client模块。通过使用Client-GO工具包开发的一个Prometheus Exporter模块来获取GPU数据。具体实现流程如下:
a)预先给K8S集群中的GPU机器打上hwtype=“NVIDIAGPU”的标签,并通过K8SClient-Go工具包统计带有该标签的GPU机器上的GPU数据,累加后得到Pod资源可申请的GPU总数,将其暴露为Prometheus Metrics指标,称为“AllocatableGPU”,表示集群中可分配的GPU数量;
b)通过K8S Client-Go工具包与K8S API-Server进行通信,收集K8S集群中处于正常状态Pod资源申请的GPU总数,将其暴露为Prometheus Metrics指标,称为“AllocatedGPU”,表示集群中已分配的GPU数量。
c)将上述数据持久化到MySQL数据库中。
指标采集模块还可以包括:用于采集QPS数据的子模块,该子模块可以用Prometheus Client模块实现。
Prometheus Client模块可以定时去API Server收集已申请GPU资源的Pod资源在一段时间间隔内的QPS值,以及收集当前时间的Pod资源的QPS值,并根据收集的当前时间的QPS,计算出当前时间往前推一个周期的QPS,将这些数据持久化到MySQL数据库中。
Prometheus Client模块还可以定时获取K8S集群中申请使用GPU资源的Pod资源的优先级,将这些数据持久化到MySQL数据库中。
指标计算模块可以从MySQL数据库中获取历史数据,从指标采集模块获取实时采集的数据。指标计算模块用于根据获取的历史数据和当前实时采集的数据,预测当前时刻的下一时刻对应的GPU空闲率和Pod资源的QPS值。
假设当前时刻为t0,预测时刻t1,根据下述公式可以得到与预测时刻t1对应的QPS预测值:
Figure BDA0003639923980000111
其中,QPSyest-t1为昨天t1时刻的QPS值;QPSmon-t1(环比)为上个月同一天t1时刻的QPS值;QPSyear-t1(同比)为上一年的同月同日t1时刻的QPS值;QPScur为当前时刻t0的QPS值。
假设当前时刻为t0,预测时刻t1,根据下述公式可以得到与预测时刻t1对应的GPU空闲率的预测值:
Figure BDA0003639923980000121
其中,GPUAvailyest-t1为昨天t1时刻的GPU空闲率;GPUAvailmon-t1(环比)为上个月同一天t1时刻的GPU空闲率;GPUAvailyear-t1(同比)为上一年的同月同日t1时刻的GPU空闲率;GPUAvailcur为当前时刻t0的GPU空闲率。
配置模块,可以通过HTTP方式从指标计算模块获取相关预测结果,例如GPU空闲率的预测值和Pod的QPS预测值,以及与配置资源对应的最大查询值和与对配置资源的副本数进行增加或减少对应的伸缩控制策略标识,将这些预测值和伸缩控制策略标识进行格式转换成HPA Metrics可识别的数据类型。配置模块,还可以通过Flask框架对外提供Restful的HTTP服务。
假设已知一个Pod资源能够支持的最大QPS值为QPS_max。
配置模块在QPSt1>QPS_max*80%且GPUAvail_t1>20%时,确定需要进行扩容。设置第一控制标识,例如第一控制标识为1;QPSt1表示t1时刻对应的QPS预测值,GPUAvail_t1表示t1时刻对应的空闲预测值。
配置模块在QPSt1>QPS_max*80%且0<GPUAvail_t1<20%且Pod资源的优先级等于1时,确定需要进行扩容。设置第一控制标识,例如第一控制标识为1;
配置模块在QPSt1<QPS_max*20%且GPUAvail_t1<20%且Pod资源的优先级为0时,确定需要进行缩容。设置第二控制标识,例如第二控制标识为0。
配置模块在QPSt1和GPUAvail_t1不能同时满足上述条件时,对于集群中Pod资源可以不用采用任何伸缩控制策略。
本发明提出的资源配置方法可以通过API聚合组件(即API Aggregator)将外部服务集成到当前Master节点,其有效地提高了资源配置效率。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
进一步请参考图7,图7示出了本申请实施例提供的资源配置装置的结构示意图。该装置包括:
指标获取模块601,用于获取集群中目标资源的历史空闲指标和使用目标资源的配置资源的历史查询指标;
指标计算模块602,用于根据历史空闲指标预测目标资源的空闲预测值;以及根据历史查询指标预测配置资源的查询预测值;
配置模块603,用于根据空闲预测值和查询预测值对配置资源的副本数进行增加或减少。
其中指标获取模块601,还可以包括:
用于获取与当前时刻对应的当前空闲指标的子模块;
用于获取与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标的子模块。
用于获取与当前时刻对应的当前空闲指标的子模块,还用于:
获取所述当前时刻对应的所述集群中所述目标资源的总数量;
获取所述当前时刻对应的所述集群中处于未使用状态的所述目标资源的统计数量;
根据所述总数量和所述统计数量计算所述当前空闲指标。
指标计算模块602还可以包括:
第一计算子模块,用于根据所述与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标和与当前时刻对应的当前空闲指标计算所述目标资源的空闲预测值。
第二计算子模块,用于根据与第一监测周期对应的第一查询预测值、与第二监测周期对应的第二查询预测值、与第三监测周期对应的第三查询预测值和与当前时刻对应的当前查询预测值,计算所述配置资源的查询预测值。
配置模块603,还可以包括:
确定子模块,用于根据所述空闲预测值与所述查询预测值确定伸缩控制策略标识;
控制子模块,用于基于所述伸缩控制策略标识对所述配置资源的副本数进行增加或减少。
其中确定子模块,还用于:当所述空闲预测值大于第一阈值且所述查询预测值大于第二阈值时,确定所述伸缩控制策略标识为第一控制标识;
当所述空闲预测值介于所述第一阈值和第三阈值之间,且所述查询预测值大于所述第二阈值,以及所述配置资源的服务优先级为第一标志值,确定所述伸缩控制策略标识为第一控制标识;
当所述空闲预测值小于所述第一阈值,且所述查询预测值小于第四预测值,以及所述配置资源的服务优先级为第二标志值,则确定所述伸缩控制策略标识为第二控制标识;
其中,所述第三阈值小于所述第一阈值。
上述装置,还可以包括格式化处理模块,用于格式化处理所述空闲预测值、所述查询预测值、与所述配置资源对应的最大查询值和与对所述配置资源的副本数进行增加或减少对应的伸缩控制策略标识。
下面参考图8,图8示出了本申请实施例提供的电子设备的结构示意图。该电子设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑、其他移动互联网设备(Mobile Internet Devices,MID)、PAD等终端。图7并不对电子设备的结构造成限定。如图7所示,电子设备至少包括存储器701和处理器702。例如,电子设备还可以包括比图7所示更多或更少的组件(如网络接口、显示装置等)。
特别地,根据本发明提供的实施例,上文参考流程图图3描述的过程可以被实现为计算机软件程序。例如,本发明提供的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明提供的各种实施例描述的方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括指标采集模块、指标计算模块和配置模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,业务订阅模块还可以被描述为“用于获取集群中目标资源的历史空闲指标和使用目标资源的配置资源的历史查询指标的模块”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本申请的服务寻址访问方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (11)

1.一种资源配置方法,其特征在于,该方法包括:
获取集群中目标资源的历史空闲指标和申请目标资源的配置资源的历史查询指标;
根据所述历史空闲指标预测所述目标资源的空闲预测值;以及根据所述历史查询指标预测所述配置资源的查询预测值;
根据所述空闲预测值和所述查询预测值对所述配置资源的副本数进行增加或减少。
2.根据权利要求1所述的方法,其特征在于,所述获取集群中目标资源的历史空闲指标,包括:
获取与当前时刻对应的当前空闲指标;
获取与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标。
3.根据权利要求2所述的方法,其特征在于,所述获取与当前时刻对应的当前空闲指标,包括:
获取所述当前时刻对应的所述集群中所述目标资源的总数量;
获取所述当前时刻对应的所述集群中处于未使用状态的所述目标资源的统计数量;
根据所述总数量和所述统计数量计算所述当前空闲指标。
4.根据权利要求1所述的方法,其特征在于,所述历史空闲指标包括与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标和与当前时刻对应的当前空闲指标,则所述根据所述历史空闲指标预测所述目标资源的空闲预测值,包括:
根据所述与第一监测周期对应的第一历史空闲指标、与第二监测周期对应的第二历史空闲指标、与第三监测周期对应的第三历史空闲指标和与当前时刻对应的当前空闲指标计算所述目标资源的空闲预测值。
5.根据权利要求1所述的方法,其特征在于,所述历史查询指标包括与第一监测周期对应的第一查询预测值、与第二监测周期对应的第二查询预测值、与第三监测周期对应的第三查询预测值和与当前时刻对应的当前查询预测值,则所述根据所述历史查询指标预测所述配置资源的查询预测值,包括:
根据与第一监测周期对应的第一查询预测值、与第二监测周期对应的第二查询预测值、与第三监测周期对应的第三查询预测值和与当前时刻对应的当前查询预测值,计算所述配置资源的查询预测值。
6.根据权利要求1所述的方法,其特征在于,所述根据所述空闲预测值和所述查询预测值对所述配置资源的副本数进行增加或减少,包括:
根据所述空闲预测值与所述查询预测值确定伸缩控制策略标识;
基于所述伸缩控制策略标识对所述配置资源的副本数进行增加或减少。
7.根据权利要求6所述的方法,其特征在于,所述根据所述空闲预测值与所述查询预测值确定伸缩控制策略标识,包括:
当所述空闲预测值大于第一阈值且所述查询预测值大于第二阈值时,确定所述伸缩控制策略标识为第一控制标识;
当所述空闲预测值介于所述第一阈值和第三阈值之间,且所述查询预测值大于所述第二阈值,以及所述配置资源的服务优先级为第一标志值,确定所述伸缩控制策略标识为第一控制标识;
当所述空闲预测值小于所述第一阈值,且所述查询预测值小于第四预测值,以及所述配置资源的服务优先级为第二标志值,则确定所述伸缩控制策略标识为第二控制标识;
其中,所述第三阈值小于所述第一阈值。
8.根据权利要求1所述的方法,其特征在于,该方法还包括:
格式化处理所述空闲预测值、所述查询预测值、与所述配置资源对应的最大查询值和与对所述配置资源的副本数进行增加或减少对应的伸缩控制策略标识。
9.一种资源配置装置,其特征在于,该装置至少包括指标采集模块、指标计算模块和配置模块,其中,
所述指标采集模块,用于获取集群中目标资源的历史空闲指标和使用目标资源的配置资源的历史查询指标;
所述指标计算模块,用于根据所述历史空闲指标预测所述目标资源的空闲预测值;以及根据所述历史查询指标预测所述配置资源的查询预测值;
所述配置模块,用于根据所述空闲预测值和所述查询预测值对所述配置资源的副本数进行增加或减少。
10.一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
CN202210512431.0A 2022-05-12 2022-05-12 一种资源配置方法、装置、设备和介质 Pending CN114911617A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210512431.0A CN114911617A (zh) 2022-05-12 2022-05-12 一种资源配置方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210512431.0A CN114911617A (zh) 2022-05-12 2022-05-12 一种资源配置方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN114911617A true CN114911617A (zh) 2022-08-16

Family

ID=82766863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210512431.0A Pending CN114911617A (zh) 2022-05-12 2022-05-12 一种资源配置方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN114911617A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115964182A (zh) * 2023-03-16 2023-04-14 阿里巴巴(中国)有限公司 资源的调度方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115964182A (zh) * 2023-03-16 2023-04-14 阿里巴巴(中国)有限公司 资源的调度方法和系统

Similar Documents

Publication Publication Date Title
US11150931B2 (en) Virtual workload migrations
US20200364086A1 (en) Redistributing Workloads Across Worker Nodes Based on Policy
US9483288B2 (en) Method and system for running a virtual appliance
CN106033476B (zh) 一种云计算环境中分布式计算模式下的增量式图计算方法
CN109257399B (zh) 云平台应用程序管理方法及管理平台、存储介质
US10705873B2 (en) Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
US20210004000A1 (en) Automated maintenance window predictions for datacenters
CN108574645B (zh) 一种队列调度方法及装置
CN111966289A (zh) 基于Kafka集群的分区优化方法和系统
CN113886010A (zh) 容器资源的控制方法、设备及计算机存储介质
CN105490864A (zh) 基于osgi的业务模块监控方法
CN112085535A (zh) 资源计量计费方法、装置、集群及存储介质
CN114911617A (zh) 一种资源配置方法、装置、设备和介质
CN114490078A (zh) 一种微服务的动态缩扩容方法、装置及设备
US11429455B2 (en) Generating predictions for host machine deployments
CN110267717B (zh) 在多租户环境中按不同单独租户自动生成自动缩放呼叫规则的方法及装置
EP4206915A1 (en) Container creation method and apparatus, electronic device, and storage medium
CN115168042A (zh) 监控集群的管理方法及装置、计算机存储介质、电子设备
CN114253663A (zh) 一种虚拟机资源的调度方法和装置
CN114090201A (zh) 资源调度方法、装置、设备及存储介质
CN114997414A (zh) 数据处理方法、装置、电子设备和存储介质
CN109586970B (zh) 资源分配方法、装置及系统
CN113127187A (zh) 用于集群扩缩容的方法和装置
JP6184116B2 (ja) 移行アドバイザリー装置
CN112783637A (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