CN113051060A - 一种基于实时负载的gpu动态调度方法、装置及电子设备 - Google Patents
一种基于实时负载的gpu动态调度方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113051060A CN113051060A CN202110384795.0A CN202110384795A CN113051060A CN 113051060 A CN113051060 A CN 113051060A CN 202110384795 A CN202110384795 A CN 202110384795A CN 113051060 A CN113051060 A CN 113051060A
- Authority
- CN
- China
- Prior art keywords
- service
- gpu
- data
- index data
- load
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及图形处理器技术领域,公开了一种基于实时负载的GPU动态调度方法、装置及电子设备,所述的GPU动态调度方法,包括:获取服务对准性指标数据,计算反映服务稳定性和可靠性的衍生指标数据;基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度。本发明的基于实时负载的GPU动态调度方法对于云端GPU使用场景,通过实时的GPU负载信息进行调度规划,屏蔽底层GPU资源差异,充分发掘GPU资源的使用效率,降低调度的复杂性。
Description
技术领域
本发明涉及图形处理器技术领域,具体的涉及一种基于实时负载的GPU动态调度方法、装置及电子设备。
背景技术
在实际场景中,很多基于GPU的服务,并不能完全利用一张GPU显卡,会造成显卡资源的浪费。GPU显卡的种类有很多,不同的显卡有着不同的负载能力和显存规格,同样的服务部署结构未必能在另一种GPU型号上运行良好。
关于GPU服务的调度,当前存在以下几种技术方法:
1.人工混合部署场景。
2.云端调度场景,在k8s服务编排中定义好服务自身的gpu显存使用,调度器检查显存是否空余进行堆叠或者平铺处理。
当前技术存在的问题:
1.人工混合部署场景,不但要耗费大量人力物力,往往还依托于经验的累计,对于大规模GPU服务场景难以处理。
2.云端调度场景没有考虑到GPU服务的真实负载能力,使用堆叠处理无法应对小显存、高负载的服务需求,高负载服务堆叠会导致服务质量下降;使用平铺处理则会受制于服务调度的顺序,以及造成显卡资源浪费。
实际使用中,GPU使用场景,由于服务本身的框架选择,代码实现以及卡型号的多样性的缘故,会存在大量GPU算力浪费的情况;现有云环境没有成熟的基于GPU实际使用资源的实时调度方案。
有鉴于此,特提出本发明。
发明内容
本发明的目的在于提供一种在云环境下的基于GPU实际使用资源的实时调度方案。
为了实现上述发明目的,本发明提供了以下技术方案:
一种基于实时负载的GPU动态调度方法,包括:
获取服务对准性指标数据,计算反映服务稳定性和可靠性的衍生指标数据;
基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度。
作为本发明可选的实施方式,所述获取服务对准性指标数据包括:
获取GPU服务资源监控数据,所述GPU服务资源监控数据至少包括存量服务所对应GPU的运行数据;
可选地,所述的运行数据包括GPU负载、GPU显存使用情况。
作为本发明可选的实施方式,所述获取GPU服务资源监控数据包括:
调用GPU驱动获取到进程ID和对应进程的GPU负载;
通过进程ID读取对应操作系统的控制组获取云控制平台的部署单元;
基于云控制平台获取部署单元信息,进一步获取部署单元所属服务和GPU负载的对应关系;
根据对应关系组织符合预设格式的运行数据并存储。
作为本发明可选的实施方式,所述计算反应服务稳定性和可靠性的衍生指标数据包括:
通过统一的日志分析服务,订阅GPU服务日志,解析日志并按照接口维度计算获取流量监控数据,所述获取流量监控数据包括服务的QPS和时延。
作为本发明可选的实施方式,基于实时负载的GPU动态调度方法包括:组织符合预设格式的所述服务对准性指标数据、衍生指标数据进行存储,等待被调用;
可选地,采用时序数据库组织存储符合时序数据库格式的GPU服务资源监控数据和流量监控数据。
作为本发明可选的实施方式,所述基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度:
获取一定时间窗口内使用GPU的服务的服务对准性指标数据及衍生指标数据;
根据服务对准性指标数据和衍生指标数据计算服务在某种GPU卡类型下的资源使用率、性能的平衡点;
将计算的资源使用率和/或性能指标平衡点汇总,用于存量服务的GPU资源的分配调度。
作为本发明可选的实施方式,所述综合服务对准性指标数据和衍生指标数据进行汇总计算包括:
从时序数据库中获取一定时间窗口内的GPU服务资源监控数据和流量监控数据;
汇总所述GPU服务资源监控数据和流量监控数据中的GPU使用率、GPU显存使用率、CPU使用率、内存使用率、服务QPS及时延指标计算得到服务运行过程中的资源使用率和性能指标平衡点。
作为本发明可选的实施方式,基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度包括:
在新的服务副本创建时,基于服务对准性指标数据获取服务显存使用量、服务最优负载使用相对量,筛选集群中剩余资源大于新的服务副本运行所需资源的GPU显卡,进行显卡分配;
可选地,在筛选出来可用的GPU显卡集合中,筛选剩余负载量最接近新的服务副本运行所需资源量的GPU显卡。
本实施例同时提供一种基于实时负载的GPU动态调度装置,包括:
服务监控模块,获取服务对准性指标数据,计算反映服务稳定性和可靠性的衍生指标数据;
服务调度模块,基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度。
本发明还提供一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,
当所述计算机程序被所述处理器执行时,所述处理器执行所述基于实时负载的GPU动态调度方法。
与现有技术相比,本发明的有益效果:
本发明的基于实时负载的GPU动态调度方法对于云端GPU使用场景,通过实时的GPU负载信息进行调度规划,屏蔽底层GPU资源差异,充分发掘GPU资源的使用效率,降低调度的复杂性。
本发明的基于实时负载的GPU动态调度方法中基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度主要包括:
针对存量服务,定时获取一定时间窗口内的使用GPU的服务的历史监控数据,计算该服务在某种卡类型下的资源使用率和性能的平衡点,用于存量服务的GPU资源的分配调度。本发明基于实时负载的GPU动态调度方法实现对存量服务的GPU调度,使得随着服务的运行增加,可以调度当下最优的GPU资源,获得最佳的服务运算效果。
针对新的服务副本,基于所述对准性指标数据和/或衍生指标数据,进行显卡分配。本发明基于实时负载的GPU动态调度方法针对新服务实例创建时,选择匹配剩余负载量最接近该新服务实例运行所需资源量的GPU显卡进行调度,确保了新服务的计算效果,同时提升了显卡的资源利用率,避免性能过剩。
本发明相比于背景技术中所介绍的两种现有技术,无需人工处理,既可适应大规模GPU混合部署;相比于暴力堆叠或者平铺处理,则提升了GPU服务计算能力和显卡利用率。
本发明基于实时负载的GPU动态调度方法基于GPU服务实时负载分析GPU服务资源需求,用于指导服务的后续调度行为,提升了GPU服务计算能力和显卡利用率。
附图说明:
图1本发明基于实时负载的GPU动态调度方法的流程图;
图2本发明基于实时负载的GPU动态调度方法的GPU调度策略流程图一;
图3本发明基于实时负载的GPU动态调度方法的GPU调度策略流程图二;
图4本发明基于实时负载的GPU动态调度装置的模块示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
因此,以下对本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的部分实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征和技术方案可以相互组合。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,这类术语仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
参见图1所示,本实施例提供的一种基于实时负载的GPU动态调度方法,包括:
获取服务对准性指标数据,计算反映服务稳定性和可靠性的衍生指标数据;
基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度。
本实施例的基于实时负载的GPU动态调度方法采集服务对准性指标数据,诸如GPU负载、GPU存使用等资源使用情况,服务的时延、服务的QPS、成功失败率等流量情况进行储存,用于调用计算。
本实施例的基于实时负载的GPU动态调度方法通过调用上述服务对准性指标数据进行综合计算,得到反应服务稳定性和可靠性的衍生指标数据如P99至P50等时延指标。
本实施例基于服务对准性指标数据和衍生指标数据,针对不同类型的服务调用数据生成提升GPU服务计算能力和显卡利用率的GPU调度策略。
本实施例的基于实时负载的GPU动态调度方法中基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度主要包括:
针对存量服务,定时获取一定时间窗口内的使用GPU的服务的历史监控数据,计算该服务在某种卡类型下的资源使用率和性能的平衡点,用于存量服务的GPU资源的分配调度。
和/或,针对新的服务副本,基于所述对准性指标数据和/或衍生指标数据,进行显卡分配。
本实施例的基于实时负载的GPU动态调度方法对于云端GPU使用场景,通过实时的GPU负载信息进行调度规划,屏蔽底层GPU资源差异,充分发掘GPU资源的使用效率,降低调度的复杂性。
进一步地,本实施例所述获取服务对准性指标数据并进行存储包括:获取GPU服务资源监控数据,所述GPU服务资源监控数据至少包括存量服务所对应GPU负载的运行数据。
可选地,所述的运行数据包括GPU负载、GPU显存使用情况。
本实施例通过获取GPU服务资源监控数据并进行存储,实现服务GPU负载的数据分析和回归,计算当前最优流程;也可用于新服务的GPU调度参照。
作为本实施例的可选实施方式,本实施例所述获取GPU服务资源监控数据包括:
调用GPU驱动获取到进程ID和对应进程的GPU负载;
通过进程ID读取对应操作系统的控制组获取云控制平台的部署单元;
基于云控制平台获取部署单元信息,进一步获取部署单元所属服务和GPU负载的对应关系;
根据对应关系组织符合预设格式的运行数据并存储。
作为本实施例的可选实施方式,所述计算反应服务稳定性和可靠性的衍生指标数据包括:通过统一的日志分析服务,订阅GPU服务日志,解析日志并按照接口维度计算获取流量监控数据,所述获取流量监控数据包括服务的QPS和时延。
进一步地,本实施例一种基于实时负载的GPU动态调度方法包括:组织符合预设格式的所述服务对准性指标数据、衍生指标数据进行存储,等待被调用。
可选地,采用时序数据库组织存储符合时序数据库格式的GPU服务资源监控数据和流量监控数据。
具体地,组织符合prometheus格式的metrics数据,并等待prometheus调用采集。
本实施例中使用时序数据库VictoriaMetrics来存储监控指标数据,使用其他tsdb或者非时序数据库,诸如influxdb,tidb也可以实现。
参见图1所示,作为本实施例的可选实施方式,本实施例的基于实时负载的GPU动态调度方法中:
采集服务对准性指标数据包括:
获取GPU服务资源监控数据;
调用GPU驱动获取到进程ID和对应进程的GPU负载;
通过进程ID读取对应操作系统的控制组获取云平台的部署单元;
基于云控制系统获取部署单元信息,进一步获取部署单元所属服务和GPU负载的对应关系数据。
获取流量监控数据;
通过统一的日志分析服务,订阅GPU服务日志,解析日志获取服务的流量数据。
本实施例的衍生指标数据通过计算获取的流量监控数据得到的服务QPS、P99至P55等时延指标等。
针对在K8s和容器的虚拟化云环境中,所述获取GPU服务资源监控数据的主要流程包括:
1.获取gpu服务资源监控数据:
1.1通过调用gpu驱动获取到进程id和对应进程的gpu负载。
1.2通过进程id读取对应操作系统cgroup(控制组,它提供了一套机制用于控制一组特定进程对资源的使用;cgroup绑定一个进程集合到一个或多个子系统上,cgroup的主要运用是资源跟踪)获取container(容器)及pod id(Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程;一个Pod封装一个应用容器(也可以有多个容器),存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项;Pod代表部署的一个单位:Kubernetes中单个应用的实例,它可能由单个容器或多个容器共享组成的资源)。
1.3基于1.2调用k8s API Server(k8s API Server提供了k8s各类资源对象<pod、RC、Service等>的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心)获取pod信息,进一步获取pod所属服务和gpu负载的对应关系。
1.4组织符合prometheus(prometheus存储的是时序数据,即按相同时序<相同名称和标签>,以时间维度存储连续的数据的集合)格式的metrics数据(Metrics是一个java库,能够为你提供无与伦比的代码运行洞察功能),并等待prometheus调用采集。
2.获取流量监控数据
2.1通过统一的日志分析服务,订阅gpu服务mesh日志,解析日志并按照接口维度计算服务qps和时延。
2.2组织符合prometheus格式的metrics数据,并等待prometheus调用采集。
参见图2所示,本实施例基于实时负载的GPU动态调度方法中基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度包括根据对存量服务的历史监控数据的存储,综合服务对准性指标数据和衍生指标数据进行汇总计算,基于计算数据生成服务运行的GPU调度策略,具体方式如下:
获取一定时间窗口内使用GPU的服务的服务对准性指标数据及衍生指标数据;
根据服务对准性指标数据和衍生指标数据计算服务在某种GPU卡类型下的资源使用率、性能的平衡点;
将计算的资源使用率和/或性能指标平衡点汇总,用于服务再次运行的GPU调度策略。
本实施例基于实时负载的GPU动态调度方法实现对存量服务的GPU调度,例如根据资源使用率和/或性能指标平衡点判断是否针对存量服务的显卡进行扩容等调度策略;使得随着服务的运行增加,可以调度当下最优的GPU资源,获得最佳的服务运算效果。
具体地,本实施例基于实时负载的GPU动态调度方法中所述综合服务对准性指标数据和衍生指标数据进行汇总计算包括:
从时序数据库中获取一定时间窗口内的GPU服务资源监控数据和流量监控数据;
汇总所述GPU服务资源监控数据和流量监控数据中的GPU使用率、GPU显存使用率、CPU使用率、内存使用率、服务QPS及时延指标计算得到服务运行过程中的资源使用率和性能指标平衡点。
参见图3所示,本实施例基于实时负载的GPU动态调度方法中基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度,可用于新服务布置的GPU调度策略,主要调用所述服务对准性指标数据。具体过程如下:
在新服务实例创建时,基于服务对准性指标数据获取服务显存使用量、服务最优负载使用相对量,筛选集群内现有GPU显卡中剩余资源大于该新服务实例运行所需资源的GPU显卡,进行显卡分配。
本实施例基于实时负载的GPU动态调度方法可实现对新的服务副本的GPU显卡资源分配,根据新的服务副本预计需要的显卡资源选择剩余资源大于该新服务实例运行所需资源的GPU显卡进行分配,更有利于提高GPU显卡的资源利用率,避免剩余资源大的显卡被低显卡资源需求的新服务占据,造成GPU显卡的资源浪费。
可选地,本实施例基于实时负载的GPU动态调度方法在筛选出来可用的GPU显卡集合中,筛选剩余负载量最接近该新服务实例运行所需资源量的GPU显卡。
本实施例基于实时负载的GPU动态调度方法针对新服务实例创建时,选择匹配剩余负载量最接近该新服务实例运行所需资源量的GPU显卡进行调度,确保了新服务的计算效果,同时提升了显卡的资源利用率,避免性能过剩。
本实施例的基于实时负载的GPU动态调度方法具有如下特点:
1.服务GPU负载的数据分析和回归,计算当前最优流程。
2.新服务调度流程。
3.额外的,GPU负载数据监控和收集功能。
参见图4所示,本实施例同时提供一种基于实时负载的GPU动态调度装置,包括:
服务监控模块,获取服务对准性指标数据,计算反映服务稳定性和可靠性的衍生指标数据;
服务调度模块,基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度。
本实施例的基于实时负载的GPU动态调度装置采集服务对准性指标数据,诸如GPU负载、GPU存使用等资源使用情况,服务的时延、服务的QPS、成功失败率等流量情况进行储存,用于调用计算。
本实施例的基于实时负载的GPU动态调度装置通过调用上述服务对准性指标数据进行综合计算,得到反应服务稳定性和可靠性的衍生指标数据如P99至P50等时延指标。
本实施例综合服务对准性指标数据和衍生指标数据,针对不同类型的服务调用数据生成提升GPU服务计算能力和显卡利用率的GPU调度策略。
本实施例的基于实时负载的GPU动态调度装置中基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度主要包括:
针对存量服务,定时获取一定时间窗口内的使用GPU的服务的历史监控数据,计算该服务在某种卡类型下的资源使用率和性能的平衡点,用于存量服务的GPU资源的分配调度。
和/或,针对新的服务副本,基于所述对准性指标数据和/或衍生指标数据,进行显卡分配。
本实施例的基于实时负载的GPU动态调度装置对于云端GPU使用场景,通过实时的GPU负载信息进行调度规划,屏蔽底层GPU资源差异,充分发掘GPU资源的使用效率,降低调度的复杂性。
本实施例的基于实时负载的GPU动态调度装置还包括数据分析与回归模块,综合服务对准性指标数据和衍生指标数据进行汇总计算。
进一步地,本实施例服务监控模块获取服务对准性指标数据并进行存储;具体包括:获取GPU服务资源监控数据,所述GPU服务资源监控数据至少包括存量服务所对应GPU负载的运行数据。
可选地,所述的运行数据包括GPU负载、GPU显存使用情况。
本实施例通过获取GPU服务资源监控数据并进行存储,实现服务GPU负载的数据分析和回归,计算当前最优流程;也可用于新服务的GPU调度参照。
作为本实施例的可选实施方式,本实施例所述服务监控模块获取GPU服务资源监控数据包括:
调用GPU驱动获取到进程ID和对应进程的GPU负载;
通过进程ID读取对应操作系统的控制组获取云平台的部署单元;
基于云控制系统获取部署单元信息,进一步获取部署单元所属服务和GPU负载的对应关系。
作为本实施例的可选实施方式,所述服务监控模块获取并计算反应服务稳定性和可靠性的衍生指标数据包括:服务监控模块获取流量监控数据,通过统一的日志分析服务,订阅GPU服务日志,解析日志并按照接口维度计算服务QPS和时延。
进一步地,本实施例一种基于实时负载的GPU动态调度装置包括:数据库模块,组织符合预设格式的所述服务对准性指标数据、衍生指标数据进行存储,等待被调用。
可选地,数据库模块采用时序数据库,组织存储符合时序数据库格式的GPU服务资源监控数据和流量监控数据。
具体地,组织符合prometheus格式的metrics数据,并等待prometheus调用采集。
本实施例中使用时序数据库VictoriaMetrics来存储监控指标数据,使用其他tsdb或者非时序数据库,诸如influxdb,tidb也可以实现。
作为本实施例的可选实施方式,本实施例的基于实时负载的GPU动态调度装置中:
服务监控模块采集服务对准性指标数据包括:
获取GPU服务资源监控数据;
调用GPU驱动获取到进程ID和对应进程的GPU负载;
通过进程ID读取对应操作系统的控制组获取云平台的部署单元;
基于云控制系统获取部署单元信息,进一步获取部署单元所属服务和GPU负载的对应关系数据。
服务监控模块获取流量监控数据;
通过统一的日志分析服务,订阅GPU服务日志,解析日志获取服务的流量数据。
本实施例的衍生指标数据由服务监控模块通过计算获取的流量监控数据得到的服务QPS、P99至P55等时延指标等。
本实施例基于实时负载的GPU动态调度装置根据对存量服务的历史监控数据的存储,通过服务调度模块基于计算数据生成服务运行的GPU调度策略,具体方式如下:
获取一定时间窗口内使用GPU的服务的服务对准性指标数据及衍生指标数据;
根据服务对准性指标数据和衍生指标数据计算服务在某种GPU卡类型下的资源使用率、性能的平衡点;
将计算的资源使用率和/或性能指标平衡点汇总,用于服务再次运行的GPU调度策略。
本实施例基于实时负载的GPU动态调度方法实现对存量服务的GPU调度,使得随着服务的运行增加,可以调度当下最优的GPU资源,获得最佳的服务运算效果。
具体地,本实施例数据分析与回归模块综合服务对准性指标数据和衍生指标数据进行汇总计算包括:
从时序数据库中获取一定时间窗口内的GPU服务资源监控数据和流量监控数据;
汇总所述GPU服务资源监控数据和流量监控数据中的GPU使用率、GPU显存使用率、CPU使用率、内存使用率、服务QPS及时延指标计算得到服务运行过程中的资源使用率和性能指标平衡点。
本实施例基于实时负载的GPU动态调度装置调用所述衍生指标数据用于新服务布置的GPU调度策略包括:
服务调度模块在新服务实例创建时,基于服务对准性指标数据获取服务显存使用量、服务最优负载使用相对量,筛选集群内现有GPU显卡中剩余资源大于该新服务实例运行所需资源的GPU显卡;
服务调度模块在筛选出来可用的GPU显卡集合中,筛选剩余负载量最接近该新服务实例运行所需资源量的GPU显卡。
本实施例实时负载的GPU动态调度装置针对新服务实例创建时,选择匹配剩余负载量最接近该新服务实例运行所需资源量的GPU显卡进行调度,确保了新服务的计算效果,同时提升了显卡的资源利用率,避免性能过剩。
针对在K8s和容器的虚拟化云环境中,本实施例的基于实时负载的GPU动态调度装置包括:
服务监控模块
主要职责:对服务对准确性指标,诸如GPU负载、GPU显存使用等资源使用情况和服务的时延,服务的QPS(每秒查询率),成功失败率等流量情况进行全方位的采集和存储,并计算反应服务稳定性和可靠性的衍生指标如P99(过去的10秒内最慢的1%请求的平均延时)等,该部分数据将会提供给数据分析与回归模块使用,用于计算服务性能平衡点。
主要流程:
1.获取GPU服务资源监控数据;
1.1通过调用GPU驱动获取到进程ID和对应进程的GPU负载;
1.2通过进程ID读取对应操作系统cgroup(控制组,它提供了一套机制用于控制一组特定进程对资源的使用;cgroup绑定一个进程集合到一个或多个子系统上,cgroup的主要运用是资源跟踪)获取container(容器)及Pod ID(Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程;一个Pod封装一个应用容器<也可以有多个容器>,存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项;Pod代表部署的一个单位:Kubernetes中单个应用的实例,它可能由单个容器或多个容器共享组成的资源)。
1.3基于1.2调用k8s API Server(k8s API Server提供了k8s各类资源对象<Pod、RC、Service等>的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心)获取Pod信息,进一步获取Pod所属服务和GPU负载的对应关系。
1.4组织符合prometheus(prometheus存储的是时序数据,即按相同时序<相同名称和标签>,以时间维度存储连续的数据的集合)格式的metrics数据(Metrics是一个java库,能够为你提供无与伦比的代码运行洞察功能),并等待prometheus调用采集。
2.获取流量监控数据
2.1通过统一的日志分析服务,订阅gpu服务mesh日志,解析日志并按照接口维度计算服务QPS和时延。
2.2组织符合prometheus格式的metrics数据,并等待prometheus调用采集。
数据分析与回归模块
部署方式为单实例部署。
主要职责:定时从时序数据库中获取一定时间窗口内的使用GPU的服务的历史监控数据,通过对一定时间窗口内的汇总计算,计算该服务在某种卡类型下的资源使用率和性能的平衡点,这点的数据将应用于服务调度模块,用于指导资源和服务的分配调度。
主要流程:
1.从时序数据库中获取一定时间窗口内的监控数据;
2.对上一个时间窗口内的监控数据指标,如GPU使用率,GPU显存使用率,CPU使用率,内存使用率,服务QPS,P99至P50等时延指标等,并进行汇总计算,得到该服务在实际使用中资源使用率和性能指标的平衡点;
3.将该服务数据汇报给服务调度模块,作为下一次的服务调度因子;
4.本模块沉睡等待下次循环。
本实施例的基于实时负载的GPU动态调度装置包括:
服务调度模块,所述的服务调度模块获取一定时间窗口内使用GPU的服务的服务对准性指标数据及衍生指标数据;
根据服务对准性指标数据和衍生指标数据计算服务在某种GPU卡类型下的资源使用率、性能的平衡点;
将计算的资源使用率和/或性能指标平衡点汇总,用于服务再次运行的GPU调度策略。
服务调度模块
部署方式为单实例部署。
主要职责:基于数据分析与回归模块的数据,对新的服务副本进行显卡分配。
主要流程:
1.分配预选阶段:在新的服务实例创建时,基于服务实例信息获取数据(服务显存使用量,服务最优负载使用相对量),筛选集群内现有GPU显卡中,剩余资源大于该服务实例运行所需资源的显卡。
2.打分排序阶段:在阶段1中筛选出来可用的GPU显卡集合中,筛选剩余负载量最接近当前服务所需资源量的GPU显卡。
本实施例基于实时负载的GPU动态调度装置针对新服务实例创建时,选择匹配剩余负载量最接近该新服务实例运行所需资源量的GPU显卡进行调度,确保了新服务的计算效果,同时提升了显卡的资源利用率,避免性能过剩。
本实施例的基于实时负载的GPU动态调度装置具有如下特点:
1.服务GPU负载的数据分析和回归,计算当前最优流程。
2.新服务调度流程。
3.额外的,GPU负载数据监控和收集功能。
另外,关于监控数据的采集和存储方式,本实施例中使用自定义探针+日志分析+prometheus+时序数据库VictoriaMetrics的方式用来生成,采集和存储GPU服务的GPU使用率、QPS、时延等相关监控指标。
本实施例中使用时序数据库VictoriaMetrics来存储监控指标数据,使用其他tsdb或者非时序数据库,诸如influxdb,tidb也可以实现。
本实施例中使用自定义exporter+日志处理服务+prometheus来生成和采集监控指标数据,使用其他诸如falcon、zabbix也可以实现。
本实施例还提供一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,
当所述计算机程序被所述处理器执行时,所述处理器执行所述基于实时负载的GPU动态调度方法。
本实施例同时还提供一种计算机可读介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现所述的基于实时负载的GPU动态调度方法。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的系统,以及系统中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等。本发明也可以由执行本发明的方法的计算机软件来实现,例如由微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得电子设备执行根据本发明的方法。
以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但本发明不局限于上述具体实施方式,因此任何对本发明进行修改或等同替换;而一切不脱离发明的精神和范围的技术方案及其改进,其均涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种基于实时负载的GPU动态调度方法,其特征在于,包括:
获取服务对准性指标数据,计算反映服务稳定性和可靠性的衍生指标数据;
基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度。
2.根据权利要求1所述的一种基于实时负载的GPU动态调度方法,其特征在于,所述获取服务对准性指标数据包括:
获取GPU服务资源监控数据,所述GPU服务资源监控数据至少包括存量服务所对应GPU的运行数据;
可选地,所述的运行数据包括GPU负载、GPU显存使用情况。
3.根据权利要求2所述的一种基于实时负载的GPU动态调度方法,其特征在于,所述获取GPU服务资源监控数据包括:
调用GPU驱动获取到进程ID和对应进程的GPU负载;
通过进程ID读取对应操作系统的控制组获取云控制平台的部署单元;
基于云控制平台获取部署单元信息,进一步获取部署单元所属服务和GPU负载的对应关系;
根据对应关系组织符合预设格式的运行数据并存储。
4.根据权利要求1所述的一种基于实时负载的GPU动态调度方法,其特征在于,所述计算反应服务稳定性和可靠性的衍生指标数据包括:
通过统一的日志分析服务,订阅GPU服务日志,解析日志并按照接口维度计算获取流量监控数据,所述获取流量监控数据包括服务的QPS和时延。
5.根据权利要求1-4任意一项所述的一种基于实时负载的GPU动态调度方法,其特征在于,组织符合预设格式的所述服务对准性指标数据、衍生指标数据进行存储,等待被调用;
可选地,采用时序数据库组织存储符合时序数据库格式的GPU服务资源监控数据和流量监控数据。
6.根据权利要求1-5任意一项所述的一种基于实时负载的GPU动态调度方法,其特征在于,所述基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度:
获取一定时间窗口内使用GPU的服务的服务对准性指标数据及衍生指标数据;
根据服务对准性指标数据和衍生指标数据计算服务在某种GPU卡类型下的资源使用率、性能的平衡点;
将计算的资源使用率和/或性能指标平衡点汇总,用于存量服务的GPU资源的分配调度。
7.根据权利要求6所述的一种基于实时负载的GPU动态调度方法,其特征在于,所述综合服务对准性指标数据和衍生指标数据进行汇总计算包括:
从时序数据库中获取一定时间窗口内的GPU服务资源监控数据和流量监控数据;
汇总所述GPU服务资源监控数据和流量监控数据中的GPU使用率、GPU显存使用率、CPU使用率、内存使用率、服务QPS及时延指标计算得到服务运行过程中的资源使用率和性能指标平衡点。
8.根据权利要求1-5任意一项所述的一种基于实时负载的GPU动态调度方法,其特征在于,基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度包括:
在新的服务副本创建时,基于服务对准性指标数据获取服务显存使用量、服务最优负载使用相对量,筛选集群中剩余资源大于新的服务副本运行所需资源的GPU显卡,进行显卡分配;
可选地,在筛选出来可用的GPU显卡集合中,筛选剩余负载量最接近新的服务副本运行所需资源量的GPU显卡。
9.一种基于实时负载的GPU动态调度装置,其特征在于,包括:
服务监控模块,获取服务对准性指标数据,计算反映服务稳定性和可靠性的衍生指标数据;
服务调度模块,基于所述对准性指标数据和/或衍生指标数据,指导资源和服务的分配调度。
10.一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,其特征在于:
当所述计算机程序被所述处理器执行时,所述处理器执行如权利要求1-8中任一项所述基于实时负载的GPU动态调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110384795.0A CN113051060A (zh) | 2021-04-10 | 2021-04-10 | 一种基于实时负载的gpu动态调度方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110384795.0A CN113051060A (zh) | 2021-04-10 | 2021-04-10 | 一种基于实时负载的gpu动态调度方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051060A true CN113051060A (zh) | 2021-06-29 |
Family
ID=76519417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110384795.0A Pending CN113051060A (zh) | 2021-04-10 | 2021-04-10 | 一种基于实时负载的gpu动态调度方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051060A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113674137A (zh) * | 2021-08-30 | 2021-11-19 | 浩鲸云计算科技股份有限公司 | 基于lru策略最大化提升显存利用率的模型加载方法 |
CN115495231A (zh) * | 2022-08-09 | 2022-12-20 | 徐州医科大学 | 一种高并发任务复杂场景下的动态资源调度方法及系统 |
CN115827393A (zh) * | 2023-02-21 | 2023-03-21 | 德特赛维技术有限公司 | 一种服务器集群监控及告警系统 |
-
2021
- 2021-04-10 CN CN202110384795.0A patent/CN113051060A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113674137A (zh) * | 2021-08-30 | 2021-11-19 | 浩鲸云计算科技股份有限公司 | 基于lru策略最大化提升显存利用率的模型加载方法 |
CN115495231A (zh) * | 2022-08-09 | 2022-12-20 | 徐州医科大学 | 一种高并发任务复杂场景下的动态资源调度方法及系统 |
CN115495231B (zh) * | 2022-08-09 | 2023-09-19 | 徐州医科大学 | 一种高并发任务复杂场景下的动态资源调度方法及系统 |
CN115827393A (zh) * | 2023-02-21 | 2023-03-21 | 德特赛维技术有限公司 | 一种服务器集群监控及告警系统 |
CN115827393B (zh) * | 2023-02-21 | 2023-10-20 | 德特赛维技术有限公司 | 一种服务器集群监控及告警系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113051060A (zh) | 一种基于实时负载的gpu动态调度方法、装置及电子设备 | |
US8087026B2 (en) | Fair share scheduling based on an individual user's resource usage and the tracking of that usage | |
US8458002B2 (en) | Service scheduling | |
US20210337069A1 (en) | Exclusive Agent Pool Allocation Method, Electronic Device, And Computer Readable Storage Medium | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN112162865A (zh) | 服务器的调度方法、装置和服务器 | |
US8606905B1 (en) | Automated determination of system scalability and scalability constraint factors | |
CN109614227B (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
CN112114950A (zh) | 任务调度方法和装置、以及集群管理系统 | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
EP1880286A1 (en) | Data processing network | |
CN107430526B (zh) | 用于调度数据处理的方法和节点 | |
CN109901918A (zh) | 一种处理超时任务的方法和装置 | |
CN112463375A (zh) | 一种数据处理的方法和装置 | |
CN113835874A (zh) | 深度学习业务调度方法、系统、终端及存储介质 | |
CN115292014A (zh) | 图像渲染方法、装置和服务器 | |
CN114936779A (zh) | 任务分配方法及装置 | |
CN112148458A (zh) | 任务调度方法、装置 | |
CN113422808B (zh) | 物联网平台http信息推送方法、系统、装置及介质 | |
CN111405072B (zh) | 一种基于云厂家成本调度的混合云优化方法 | |
CN111796934B (zh) | 任务下发方法、装置、存储介质和电子设备 | |
CN115033377A (zh) | 基于集群服务器的服务资源预测方法、装置和电子设备 | |
CN113902350A (zh) | 一种排班方法、装置及计算机可读存储介质 | |
CN110908791B (zh) | 调度方法、调度装置和调度系统 | |
CN113312359A (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 |