CN111552556B - 一种gpu集群服务管理系统及方法 - Google Patents

一种gpu集群服务管理系统及方法 Download PDF

Info

Publication number
CN111552556B
CN111552556B CN202010214749.1A CN202010214749A CN111552556B CN 111552556 B CN111552556 B CN 111552556B CN 202010214749 A CN202010214749 A CN 202010214749A CN 111552556 B CN111552556 B CN 111552556B
Authority
CN
China
Prior art keywords
gpu
cluster
task
resource
information
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.)
Active
Application number
CN202010214749.1A
Other languages
English (en)
Other versions
CN111552556A (zh
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.)
Beijing Zhongke Yunnao Intelligent Technology Co ltd
Hefei Zhongke Leinao Intelligent Technology Co ltd
Original Assignee
Hefei Zhongke Leinao Intelligent Technology Co ltd
Beijing Zhongke Yunnao Intelligent Technology 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 Hefei Zhongke Leinao Intelligent Technology Co ltd, Beijing Zhongke Yunnao Intelligent Technology Co ltd filed Critical Hefei Zhongke Leinao Intelligent Technology Co ltd
Priority to CN202010214749.1A priority Critical patent/CN111552556B/zh
Publication of CN111552556A publication Critical patent/CN111552556A/zh
Application granted granted Critical
Publication of CN111552556B publication Critical patent/CN111552556B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明属于计算机管理领域,特别涉及一种GPU集群服务管理系统及方法。所述管理系统包括:资源监控模块,用于监控GPU集群资源,生成集群资源数据,发送集群资源数据;资源分配模块,用于获取任务信息和所述集群资源数据,根据所述任务信息和集群资源数据,分配任务资源;检查模块,用于获取资源监控模块发送的集群资源数据,根据所述集群资源数据检查GPU集群资源状态,生成检查结果,发送所述检查结果;隔离模块,用于获取所述检查结果,根据所述检查结果对异常资源进行隔离。本发明能够实时监控GPU集群内所有资源状态,确保资源被高效利用;并且能够自动检查出异常资源,对异常资源进行隔离,确保GPU集群正常运行,提高了GPU集群的处理效率。

Description

一种GPU集群服务管理系统及方法
技术领域
本发明属于计算机管理领域,特别涉及一种GPU集群服务管理系统及方法。
背景技术
GPU集群是一个计算机集群,其中每个节点配备有图形处理单元(GPU),GPU集群计算速度快。GPU集群可以使用来自两个主要独立硬件供应商的硬件(AMD和NVIDIA)。
目前已有对GPU集群进行管理的系统,用于监控分配集群资源。但是现有的管理系统无法实时监集群状态,并且无法自动识别、处理GPU集群故障。例如,当GPU集群中一个节点出现死机、卡顿的故障时,由于此时该节点中部分资源处于空闲状态,此时管理系统会误认为该资源已完成工作,为空闲资源。管理系统会对该资源进行二次分配,造成资源重复分配,GPU集群无法正常运行,大大降低了GPU集群的处理效率。
发明内容
针对上述问题,本发明提供了一种GPU集群服务管理系统,所述管理系统包括:
资源监控模块,用于监控GPU集群资源,生成集群资源数据,发送集群资源数据;
资源分配模块,用于获取任务信息和所述集群资源数据,根据所述任务信息和集群资源数据,分配任务资源;
检查模块,用于获取资源监控模块发送的集群资源数据,根据所述集群资源数据检查GPU集群资源状态,生成检查结果,发送所述检查结果;
隔离模块,用于获取所述检查结果,根据所述检查结果对异常资源进行隔离。
进一步地,所述资源监控模块采用Prometheus监控系统监控GPU集群资源,生成集群资源数据。
进一步地,所述资源监控模块生成的集群资源数据包括节点名称和节点设备信息;
所述节点设备信息包括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集群服务管理系统,所述管理系统基于Kuberneters技术。
具体的,Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。Kubernetes引擎本身也采取Docker容器化方式进行部署。以配置文件作为交互接口,用户只需填写节点登陆信息,以及节点服务角色。自动化脚本读取配置文件内容,在各节点安装Docker容器、k8s Master主控组件、Node机器节点等角色对应的服务。
示例性的,如图1所示,所述管理系统包括资源监控模块和资源分配模块。
所述资源监控模块,用于监控GPU集群资源,生成集群资源数据,发送集群资源数据。
所述资源分配模块,用于获取任务信息和所述集群资源数据,根据所述任务信息和集群资源数据,分配任务资源。
具体的,所述资源监控模块采用Prometheus监控系统技术对GPU集群资源数据进行收集。所述Prometheus监控系统是由SoundCl oud开发的开源监控系统的开源版本。
所述Prometheus监控系统包括Prometheus Server组件和Prometheus Exporter组件。所述Prometheus Exporter组件能够获取各节点资源数据,并且为PrometheusServer组件提供Prometheus Exporter服务接口;所述Prometheus Server组件通过Prometheus Exporter服务接口获取GPU集群各节点资源数据,并将所述资源数据存入时序数据库。
具体的,所述Prometheus Server组件是Prometheus组件中的核心部分,负责实现对集群资源数据的获取,存储以及查询。
所述Prometheus Exporter组件将采集集群资源数据的节点通过HTTP服务的形式暴露给Prometheus Server组件,所述Prometheus Server组件通过访问所述PrometheusExporter组件提供的Endpoint端点,即可获取到需要采集的集群资源数据。
示例性的,Prometheus Exporter组件定时调用nvidia-smi命令,用以获取对应节点上的GPU信息,所述GPU信息包括但不限于显存使用信息、GPU使用率和GPU卡状态信息。
所述资源监控模块将所述集群资源数据发送至资源分配模块,所述资源分配模块获取所述集群资源数据,并接收任务信息。
所述任务信息是指GPU调用信息,所述GPU调用信息包括但不限于该任务需要的GPU卡的数量、类型。所述任务信息可以是用户通过登录集群节点发布,也可以是集群内预存任务。所述资源分配模块根据所述任务信息创建任务名称,并根据所述任务信息,从集群资源数据中为该任务分配任务资源,即为该任务分配GPU卡。
具体的,在同一GPU集群中,节点、节点资源均以设备编号标识。例如,GPU集群中有三个处理节点,分别命名为甲节点、乙节点和丙节点;所述甲节点包括2个GPU卡,分别命名为甲-A GPU、甲-B GPU;所述乙节点包括3个GPU卡,分别命名为乙-A GPU、乙-B GPU、乙-CGPU;所述丙节点包括1个GPU卡,命名为丙-A GPU。GPU集群获取新任务的任务信息,新任务需要2个GPU。此时GPU集群中的所有GPU均为空闲状态,资源分配模块将甲节点的两个GPU卡分配给新任务。分配完成后,甲节点的甲-A GPU和甲-B GPU状态由空闲变为占用。
所述资源分配模块在根据任务信息创建任务名称的同时创建标签;所述标签用于关联任务名称和处理该任务的GPU卡;所述资源分配模块将创建的任务名称存储至时序数据库中,各节点或各模块可通过所述任务名称,查找到该任务名称对应的GPU卡信息。
具体的,所述任务名称关联的所有GPU卡相当于被封装在一个容器中,该容器名与所述任务名称一致;当该任务所需GPU卡分配完毕时,所述容器启动,处理任务。在GPU集群上同时处理多个任务,处理各任务的资源互不干扰,提高了集群资源的利用率和处理效率。
所述资源监控模块定时遍历正在运行的任务,通过任务名称查询与任务名称关联的GPU卡信息。若对应的GPU卡已完成任务处理,此时为空闲状态,所述资源监控模块则将该GPU卡状态由占用改为空闲,并更新集群资源数据。所述资源监控模块实时监控GPU集群内所有资源状态,确保资源被高效利用。
优选的,不同的团队或用户对于集群资源的使用配额也不同。例如,所述资源分配模块以将集群资源划分为多个虚拟集群。每个虚拟集群对应一个用户,即虚拟集群中设置有该用户可以使用的总资源。用户发布的任务所用资源之和不可以超过其可以使用的总资源。该用户发布任务信息时,若该任务所需资源超出其可使用的总资源,或者该任务所需资源超出其可使用的空闲资源时,任务信息会提示发布失败。
需要说明的是,对于用户划分资源的方式包括但不限于按照绝对资源方式划分和按照比例资源方式划分。
具体的,所述按照绝对资源方式划分是指:通过设置GPU卡个数和类型的方式,实现资源的划分。即限制了每个用户可使用的资源的绝对数量,当集群资源增加时,新增的资源不会被使用。
所述按照比例资源方式划分是指:通过设置比例的方式,实现资源的划分。即按照比例从总集群资源中为每个用户划分配额。当集群资源增加时,新增的资源会被按照比例再次划分给每个用户。
所述管理系统还包括检查模块,所述检查模块用于检查GPU集群资源状态,生成检查结果。
所述检查模块包括第一检查单元和第二检查单元。
所述第一检查单元,用于执行GPU卡的非业务类检查。具体的,所述非业务类检查是指检查GPU卡本身是否异常。所述第一检查单元内封装有GPU卡生产商(例如英伟达)提供的nvml库。所述nvml库中存储有GPU卡不同状态下的信息。所述第一检查单元通过资源监控模块获取GPU卡状态信息,将所述GPU卡状态信息与nvml库中存储的信息进行比对,判断所述GPU卡是否异常。优选的,若所述第一检查单元检查出GPU卡异常,则会将GPU异常的检查结果发送至所述资源监控模块和资源分配模块。所述资源监控模块将出现异常情况的GPU卡状态改为非健康状态;所述资源分配模块,不将所述出现异常情况的GPU卡分配给新的任务。
第二检查单元,用于执行GPU卡业务类检查。
具体的,所述业务类检查是指检查GPU卡在处理任务过程中,是否存在进程问题。现有技术中,使用GPU卡的任务在调度侧已经结束(通常是由用户在GPU节点手动停止任务),而任务实际启动的容器由于接口(IO)卡死等问题导致进程卡死,任务容器处于僵死状态。新任务进入并请求资源时,GPU集群将僵死状态的容器所占用的资源再次分配给新任务,导致新任务在运行时可能会出错。例如,新任务运行期间报告显存不足等问题。
所述第二检查单元遍历所有正在运行的任务容器。通过任务容器的配置信息查找对应的任务,获取所述任务在集群节点处记录的状态,判断所述任务是否已经停止。若任务已经停止,则判定该任务对应的任务容器出现异常,为僵尸容器。若任务正在处理中,则判断该任务对应的任务容器未出现异常。
所述第二检查单元将所述僵尸容器占用的GPU卡标记为异常,将GPU卡异常的检查结果发送至所述资源监控模块和资源分配模块。所述资源监控模块将出现异常情况的GPU卡状态信息改为非健康状态;所述资源分配模块不将所述出现异常情况的GPU卡分配给新的任务。将所述僵尸容器信息存入数据库。具体的,所述僵尸容器信息包括但不限于该任务容器占用的GPU卡信息;所述数据库可以采用但不限于My SQL数据库和SQL Server数据库中的一种。
优选的,所述管理系统还包括隔离模块,所述隔离模块用于获取所述检查结果,根据所述检查结果对异常资源进行隔离。
具体的,所述隔离模块从所述资源监控模块中获取非健康状态的GPU卡信息,对该GPU卡进行隔离。具体的,所述隔离模块控制所述资源分配模块,不再将出现异常情况的GPU卡分配给新的任务。确保GPU集群正常运行,提高了GPU集群的处理效率。
所述检查模块定期对已标记为僵尸容器的任务进行检查,若检查结果为该任务对应的任务容器未出现异常,则通知资源监控模块将该任务容器对应的GPU卡状态信息改为健康状态,所述资源监控模块将该GPU卡的状态更新发送至隔离模块。所述隔离模块将健康状态的GPU卡释放,结束资源隔离。
优选的,若僵尸容器较长时间无法回复正常,此时检查模块会发出警报信息,通知人工处理。示例性的,所述检查模块每隔20分钟对已标记为僵尸容器的任务进行检查,若进行5次检查后,该僵尸容器仍未回复正常,则发出警报信息,通知用户通过集群节点强制结束任务,释放该任务占用的GPU卡。上述检查间隔时间与次数均为示例性说明,可根据实际情况进行调整。需要说明的是,强制结束任务,释放任务资源的动作也可由集群自动完成。
优选的,所述资源监控模块还用于获取重启命令,根据集群资源数据,判断是否执行所述重启命令。
现有技术中,导致集群节点设备重启,大多是由用户提交的深度学习任务导致的。所述资源监控模块获取到重启命令后,根据重启命令查找命令中对应的集群节点设备,判断该集群节点设备上是否正在处理的任务。若该集群节点设备上正在处理任务,则分析重启原因,并向该集群节点发出告警通知。
示例性的,所述资源监控模块获取到重启命令,根据重启命令查找到命令中对应的集群节点设备,并根据重启命令分析得到该集群节点设备的重启时间段;所述资源监控模块调用时序数据库,通过时间轴查询在所述重启时间段范围内,该集群节点设备上运行的任务。若在所述重启时间段范围内,该集群节点设备上无任务运行,则该节点设备可重启;若在所述重启时间段范围内,该集群节点设备上有任务运行;则判断正在运行的任务和重启原因。若重启会导致任务异常,则发出告警通知;若重启不会导致任务异常,则该节点设备可重启。
具体的,当集群节点设备开始重启,所述资源监控模块周期性的向该集群节点设备发送验证信息。若该集群节点设备收到验证信息并向所述资源监控模块发送反馈信息,则表示该集群节点设备重启完毕;若该集群节点设备未向所述资源监控模块发送反馈信息,则表示该集群节点设备正在重启。
本发明提出的管理系统不仅可以对集群中的GPU卡进行管理,还可以对其它集群资源进行管理。具体的,所述集群资源不仅包括上述GPU卡,还包括但不限于CPU卡和内存。
基于上述GPU集群服务管理系统,本发明还提供了一种GPU集群服务管理方法,示例性的,如图2所示,所述管理方法包括:
资源监控模块监控GPU集群资源,生成集群资源数据,发送所述集群资源数据;
资源分配模块获取所述资源监控模块发送的集群资源数据,获取任务信息;根据所述任务信息和集群资源数据,分配任务资源。
具体的,所述集群资源数据是指当前集群各节点资源之和。所述集群资源数据包括但不限于节点名称、节点GPU信息。所述GPU信息包括但不限于显存使用信息、GPU使用率和GPU状态信息。
所述任务信息是指GPU调用信息,所述GPU调用信息包括但不限于该任务需要的GPU卡的数量、类型。所述任务信息可以是用户通过登录集群节点发布,也可以是集群内预存任务。所述资源分配模块根据所述任务信息创建任务名称,并根据所述任务信息,从集群资源数据中为该任务分配任务资源,即为该任务分配GPU卡。
在同一GPU集群中,节点、节点资源均以设备编号标识。例如,GPU集群中有三个处理节点,分别命名为甲节点、乙节点和丙节点;所述甲节点包括2个GPU卡,分别命名为甲-AGPU、甲-B GPU;所述乙节点包括3个GPU卡,分别命名为乙-A GPU、乙-B GPU、乙-C GPU;所述丙节点包括1个GPU卡,命名为丙-A GPU。GPU集群获取新任务的任务信息,新任务需要2个GPU。此时GPU集群中的所有GPU均为空闲状态,资源分配模块将甲节点的两个GPU卡分配给新任务。分配完成后,甲节点的甲-A GPU和甲-B GPU状态由空闲变为占用。
所述资源分配模块根据所述任务信息和集群资源数据,分配任务资源包括:所述资源分配模块根据所述任务信息创建任务名称和标签;所述资源分配模块为所述任务信息对应的任务分配GPU卡;所述资源分配模块将所述GPU卡与所述任务名称通过标签关联。所述资源分配模块将创建的任务名称存储至时序数据库中,各节点或各模块可通过所述任务名称,可查找到该任务名称对应的GPU信息。
具体的,所述任务名称关联的所有GPU卡相当于被封装在一个容器中,该容器名与所述任务名称一致;当该任务所需GPU卡分配完毕时,所述容器启动,处理任务。在GPU集群上同时处理多个任务,处理各任务的资源互不干扰,提高了集群资源的利用率和处理效率。
优选的,所述资源监控模块监控GPU集群资源还包括:所述资源监控模块定时遍历正在运行的任务,通过任务名称查询与任务名称关联的GPU卡信息。若对应的GPU卡已完成任务处理,此时为空闲状态,所述资源监控模块则将该GPU卡状态由占用改为空闲,并更新集群资源数据。所述资源监控模块实时监控GPU集群内所有资源状态,确保资源被高效利用。
所述管理方法还包括:检查模块检查GPU集群资源状态,生成检查结果,发送所述检查结果。
所述检查模块检查GPU集群资源状态包括:对GPU卡进行非业务类检查和对GPU卡进行业务类检查。
具体的,所述分业务类检查是指检查GPU卡本身是否异常。所述检查模块内封装有GPU卡生产商(例如英伟达)提供的nvml库。所述nvml库中存储有GPU卡不同状态下的信息。所述检查模块通过资源监控模块获取GPU卡状态信息,将所述GPU卡状态信息与nvml库中存储的信息进行比对,判断所述GPU卡是否异常。优选的,若所述检查模块检查出GPU卡异常,则会将所述GPU异常信息发送至所述资源监控模块和资源分配模块。所述资源监控模块将出现异常情况的GPU卡状态改为非健康状态;所述资源分配模块,不将出现异常情况的GPU卡分配给新的任务。
所述业务类检查是指检查GPU卡在处理任务过程中,是否存在进程问题。现有技术中,使用GPU卡的任务在调度侧已经结束(通常是由用户在GPU节点手动停止任务),而任务实际启动的容器由于接口(IO)卡死等问题导致进程卡死,任务容器处于僵死状态。新任务进入并请求资源时,GPU集群将僵死状态的容器所占用的资源再次分配给新任务,导致新任务在运行时可能会出错。例如,新任务运行期间报告显存不足等问题。
所述检查模块遍历所有正在运行的任务容器。通过任务容器的配置信息查找对应的任务,获取所述任务在集群节点处记录的状态,判断所述任务是否已经停止。若任务已经停止,则判定该任务对应的任务容器出现异常,为僵尸容器。若任务正在处理中,则判断该任务对应的任务容器未出现异常。
优选的,所述管理方法还包括:隔离模块获取所述检查结果,根据所述检查结果对异常资源进行隔离。
具体的,所述隔离模块从所述资源监控模块中获取非健康状态的GPU卡信息,对该GPU卡进行隔离。具体的,所述隔离模块控制所述资源分配模块,不再将所述出现异常情况的GPU卡分配给新的任务。确保GPU集群正常工作,提高了GPU集群的处理效率。
所述检查模块定期对已标记为僵尸容器的任务进行检查,若检查结果为该任务对应的任务容器未出现异常时,则通知资源监控模块将该任务容器对应的GPU卡改为健康状态,所述资源监控模块将该GPU卡的状态更新发送至隔离模块。所述隔离模块将健康状态的GPU卡释放,结束资源隔离。
优选的,若僵尸容器较长时间无法回复正常,此时检查模块会发出警报信息,通知人工处理。示例性的,所述检查模块每隔20分钟对已标记为僵尸容器的任务进行检查,若进行5次检查后,该僵尸容器仍未回复正常,则发出警报信息,通知用户通过集群节点强制结束任务,释放该任务占用的GPU卡。上述检查间隔时间与次数均为示例性说明,可根据实际情况进行调整。需要说明的是,强制结束任务,释放任务资源的动作也可由集群自动完成。
优选的,资源监控模块获取重启命令,根据集群资源数据,判断是否执行所述重启命令。
具体的,所述资源监控模块获取到重启命令后,根据重启命令查找命令中对应的集群节点设备,判断该集群节点设备上是否正在处理的任务。若该集群节点设备上正在处理任务,则分析重启原因,并向该集群节点发出告警通知。
示例性的,所述资源监控模块获取到重启命令,根据重启命令查找到命令中对应的集群节点设备,并根据重启命令分析得到该集群节点设备的重启时间段;所述资源监控模块调用时序数据库,通过时间轴查询在所述重启时间段范围内,该集群节点设备上运行的任务。通过Exporter和Server之间的心跳连接来判断该集群节点设备是否重启。
本发明提出的管理方法不仅可以对集群中的GPU卡进行管理,还可以对其它集群资源进行管理。具体的,所述集群资源不仅包括上述GPU卡,还包括但不限于CPU卡和内存。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种GPU集群服务管理系统,其特征在于,所述管理系统包括:
资源监控模块,用于监控GPU集群资源,生成集群资源数据,发送集群资源数据;
资源分配模块,用于获取任务信息和所述集群资源数据,根据所述任务信息和集群资源数据,资源分配模块分配任务资源;
检查模块,用于获取资源监控模块发送的集群资源数据,根据所述集群资源数据检查GPU集群资源状态,生成检查结果,发送所述检查结果;
隔离模块,用于获取所述检查结果,根据所述检查结果对异常资源进行隔离;
资源分配模块分配任务资源包括:
所述资源分配模块根据任务信息创建任务名称和标签;
所述资源分配模块根据任务信息和集群资源数据,分配处理该任务的GPU卡;
所述资源分配模块通过所述标签将所述任务名称和处理该任务的GPU卡关联;
所述资源分配模块将创建的任务名称存储至时序数据库中。
2.根据权利要求1所述的GPU集群服务管理系统,其特征在于,
所述资源监控模块采用Prometheus监控系统监控GPU集群资源,生成集群资源数据。
3.根据权利要求1或2所述的GPU集群服务管理系统,其特征在于,
所述资源监控模块生成的集群资源数据包括节点名称和节点设备信息;
所述节点设备信息包括GPU信息;
所述GPU信息包括显存使用信息、GPU卡使用率和GPU卡状态信息;所述资源分配模块获取的任务信息包括:处理当前任务需要的GPU卡的数量和类型。
4.根据权利要求1中所述的GPU集群服务管理系统,其特征在于,所述管理系统还包括:
时序数据库,用于存储所述资源分配模块创建的任务名称。
5.根据权利要求1中所述的GPU集群服务管理系统,其特征在于,所述检查模块包括:
第一检查单元,用于执行GPU卡的非业务类检查,生成第一检查结果;
第二检查单元,用于执行GPU卡的业务类检查,生成第二检查结果。
6.一种GPU集群服务管理方法,其特征在于,所述管理方法包括:
资源监控模块监控GPU集群资源,生成集群资源数据,发送所述集群资源数据;
资源分配模块获取资源监控模块发送的集群资源数据,获取任务信息;根据所述任务信息和集群资源数据,资源分配模块分配任务资源;
检查模块获取所述资源监控模块发送的集群资源数据,根据所述集群资源数据检查GPU集群资源状态,生成检查结果,发送所述检查结果;
隔离模块获取所述检查结果,根据所述检查结果对异常资源进行隔离;
资源分配模块分配任务资源包括:
所述资源分配模块根据任务信息创建任务名称和标签;
所述资源分配模块根据任务信息和集群资源数据,分配处理该任务的GPU卡;
所述资源分配模块通过所述标签将所述任务名称和处理该任务的GPU卡关联;
所述资源分配模块将创建的任务名称存储至时序数据库中。
7.根据权利要求6所述的GPU集群服务管理方法,其特征在于,
所述集群资源数据包括节点名称和节点设备信息;
所述节点设备信息包括GPU信息;
所述GPU信息包括显存使用信息、GPU卡使用率和GPU卡状态信息;所述资源分配模块获取的任务信息包括:处理当前任务需要的GPU卡的数量和类型。
8.根据权利要求6所述的GPU集群服务管理方法,其特征在于,所述隔离模块根据检查结果对异常资源进行隔离包括:
所述隔离模块读取所述检查结果中的非健康状态的GPU卡信息;其中,所述非健康状态是指GPU卡出现异常情况时的状态;
对所述非健康状态的GPU卡进行隔离。
CN202010214749.1A 2020-03-24 2020-03-24 一种gpu集群服务管理系统及方法 Active CN111552556B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010214749.1A CN111552556B (zh) 2020-03-24 2020-03-24 一种gpu集群服务管理系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010214749.1A CN111552556B (zh) 2020-03-24 2020-03-24 一种gpu集群服务管理系统及方法

Publications (2)

Publication Number Publication Date
CN111552556A CN111552556A (zh) 2020-08-18
CN111552556B true CN111552556B (zh) 2023-06-09

Family

ID=72005561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010214749.1A Active CN111552556B (zh) 2020-03-24 2020-03-24 一种gpu集群服务管理系统及方法

Country Status (1)

Country Link
CN (1) CN111552556B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112346926A (zh) * 2020-10-16 2021-02-09 北京金山云网络技术有限公司 资源状态监控方法、装置及电子设备
CN112448846A (zh) * 2020-11-05 2021-03-05 北京浪潮数据技术有限公司 一种k8s集群的健康巡检方法、装置及设备
CN113157476A (zh) * 2021-04-10 2021-07-23 作业帮教育科技(北京)有限公司 虚拟云环境中显卡故障的处理方法及装置
CN114116238B (zh) * 2022-01-28 2022-05-03 深圳市迈科龙电子有限公司 数据处理优化方法、装置、电子设备及可读存储介质
CN115904740B (zh) * 2023-02-23 2023-05-30 青岛创新奇智科技集团股份有限公司 一种gpu资源调用方法及系统
CN116010156A (zh) * 2023-03-24 2023-04-25 摩尔线程智能科技(北京)有限责任公司 异常处理系统
CN117453493A (zh) * 2023-12-22 2024-01-26 山东爱特云翔信息技术有限公司 大规模多数据中心的gpu算力集群监控方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139016A (zh) * 2013-02-19 2013-06-05 浪潮电子信息产业股份有限公司 一种高可用集群资源监控的方法
WO2016058307A1 (zh) * 2014-10-15 2016-04-21 中兴通讯股份有限公司 资源的故障处理方法及装置
CN108829509A (zh) * 2018-05-03 2018-11-16 山东汇贸电子口岸有限公司 基于国产cpu和操作系统的分布式容器集群框架资源管理方法
CN109144727A (zh) * 2018-08-21 2019-01-04 郑州云海信息技术有限公司 云数据系统中资源的管理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139016A (zh) * 2013-02-19 2013-06-05 浪潮电子信息产业股份有限公司 一种高可用集群资源监控的方法
WO2016058307A1 (zh) * 2014-10-15 2016-04-21 中兴通讯股份有限公司 资源的故障处理方法及装置
CN108829509A (zh) * 2018-05-03 2018-11-16 山东汇贸电子口岸有限公司 基于国产cpu和操作系统的分布式容器集群框架资源管理方法
CN109144727A (zh) * 2018-08-21 2019-01-04 郑州云海信息技术有限公司 云数据系统中资源的管理方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
秦中盛 ; 王寅峰 ; 董小社 ; .支持网格监控服务自动部署的系统.华中科技大学学报(自然科学版).2006,(S1),全文. *

Also Published As

Publication number Publication date
CN111552556A (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN111552556B (zh) 一种gpu集群服务管理系统及方法
US9275172B2 (en) Systems and methods for analyzing performance of virtual environments
US9727405B2 (en) Problem determination in distributed enterprise applications
US20030051188A1 (en) Automated software testing management system
KR100772999B1 (ko) 분산 환경에서 어플리케이션의 성능을 모니터링하는 방법및 시스템
US20090172674A1 (en) Managing the computer collection of information in an information technology environment
CN112416581B (zh) 定时任务的分布式调用系统
CN113569987A (zh) 模型训练方法和装置
CN111124830B (zh) 一种微服务的监控方法及装置
US8429264B2 (en) Method, system and apparatus for managing computer processes
CN114884838A (zh) Kubernetes组件的监控方法及服务器
CN105740042B (zh) 虚拟机内存的管理方法和管理系统
CN114721807A (zh) 批量业务任务执行方法、装置、设备、介质和程序产品
US9032014B2 (en) Diagnostics agents for managed computing solutions hosted in adaptive environments
US9354962B1 (en) Memory dump file collection and analysis using analysis server and cloud knowledge base
CN111522630B (zh) 基于批次调度中心的计划任务执行方法以及系统
CN113986714A (zh) 一种基于容器化的自动化持续测试方法及装置
CN109634848B (zh) 一种银行大型测试环境管理方法及系统
CN115687036A (zh) 日志采集方法、装置及日志系统
CN109995617A (zh) 主机管理特性的自动化测试方法、装置、设备及存储介质
CN116109112B (zh) 基于聚合接口的业务数据处理方法、装置、介质和设备
CN117539708A (zh) 运维平台的监控方法、装置、设备和存储介质
CN113067722A (zh) 数据管理平台及其工作方法
CN117931492A (zh) 一种风险处理方法、装置及计算设备
CN117785382A (zh) 基于k8s集群的资源监测与动态调度方法、设备及介质

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210430

Address after: 0106, 1st floor, No.26, shangdixinxi Road, Haidian District, Beijing

Applicant after: Beijing Zhongke yunnao Intelligent Technology Co.,Ltd.

Applicant after: HEFEI ZHONGKE LEINAO INTELLIGENT TECHNOLOGY Co.,Ltd.

Address before: 230088 1102-b236, 11th floor, Zhongxin building, 2688 Chuangxin Avenue, high tech Zone, Hefei City, Anhui Province

Applicant before: HEFEI ZHONGKE LEINAO INTELLIGENT TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant