掌桥专利:专业的专利平台
掌桥专利
首页

一种基于slurm系统的作业内存管理方法及系统

文献发布时间:2023-06-19 13:45:04


一种基于slurm系统的作业内存管理方法及系统

技术领域

本发明属于服务器技术领域,尤其涉及一种基于slurm系统的作业内存管理方法及系统。

背景技术

slurm(simple linux utility for resource management)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统,被世界范围内的超级计算机和计算集群广泛采用。slurm维护着一个待处理工作的队列并管理此工作的整体资源利用。它以一种共享或非共享的方式管理可用的计算节点(取决于资源的需求),以供用户执行工作。slurm会为任务队列合理地分配资源,并监视作业至其完成。如今,slurm已经成为了很多最强大的超级计算机上使用的领先资源管理器,如天河二号上便使用了slurm资源管理系统。

slurm是面向Linux免费开源工作调度程序,用在集群环境中进行多节点高性能计算。在slurm系统中,作业的提交存在内存使用资源的限制条件,但在实际应用中,用户在提交作业时,对于运行作业内存的实际使用问题,往往预测不够准确,因此就会出现内存分配不均衡问题。如果分配内存太小,就会造成作业运行中断失败,作业无法正常结束;如果分配内存太大,作业实际需要内存又较小,就会造成内存资源的浪费问题。

发明内容

针对现有技术中的缺陷,本发明提供了一种基于slurm系统的作业内存管理方法,旨在解决现有技术中用户在提交作业时,存在内存分配不均衡,如果分配内存太小,就会造成作业运行中断失败,作业无法正常结束;如果分配内存太大,作业实际需要内存又较小,就会造成内存资源的浪费问题。

本发明所提供的技术方案是:一种基于slurm系统的作业内存管理方法,所述方法包括下述步骤:

根据slurm系统的运行要求,通过设置内存限制参数,设置多个内存限制等级;

接收对待运行作业的内存限制等级的设置命令,并为所述待运行作业配置对应内存限制等级的内存;

对运行作业的资源使用情况进行实时监控;

当判定作业运行失败且作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,并重新提交作业运行。

本发明的另一目的在于提供一种基于slurm系统的作业内存管理系统,所述系统包括:

内存限制等级设置模块,用于根据slurm系统的运行要求,通过设置内存限制参数,设置多个内存限制等级;

设置命令接收模块,用于接收对待运行作业的内存限制等级的设置命令;

内存配置模块,用于为所述待运行作业配置对应内存限制等级的内存;

实时监控模块,用于对运行作业的资源使用情况进行实时监控;

作业重提交模块,用于当判定作业运行失败且作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,并重新提交作业运行。

在本发明实施例中,根据slurm系统的运行要求,通过设置内存限制参数,设置多个内存限制等级;接收对待运行作业的内存限制等级的设置命令,并为所述待运行作业配置对应内存限制等级的内存;对运行作业的资源使用情况进行实时监控;当判定作业运行失败且作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,并重新提交作业运行,既避免内存资源的浪费,也解决由于内存不足造成的作业运行失败而无法自动重启运行问题,针对用户的批量作业提交运行,提供了自动和智能的运维状态。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1是本发明提供的基于slurm系统的作业内存管理方法的实现流程图;

图2是本发明提供的当判定作业运行失败且作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,并重新提交作业运行的实现流程图;

图3是本发明提供的基于slurm系统的作业内存管理系统的结构框图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的、技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。

图1是本发明提供的基于slurm系统的作业内存管理方法的实现流程图,其具体包括下述步骤:

在步骤S101中,根据slurm系统的运行要求,通过设置内存限制参数,设置多个内存限制等级;

在该步骤中,内存限制等级的设置包括在集群内存限制等级的设置和在集群的分区层次的内存限制等级的设置;

在slurm系统中,先创建集群内存限制条件,然后在分区层次创建内存限制条件,可以根据内存的大小,设置4个内存限制等级,分别为低、中、高、特高。每个等级指定内存大小,具体数值可根据实际情况设置。用户评估消耗内存,选择对应等级。用户也可以根据现场,设置专有的内存等级,用于适应作业内存限制的条件,支持分区内存的定制化。如果用户不指定内存大小,默认指定中等的内存限制等级,用户也可根据现场作业情况设定作业的默认限制等级。

在步骤S102中,接收对待运行作业的内存限制等级的设置命令,并为所述待运行作业配置对应内存限制等级的内存;

在该步骤中,内存使用情况选择或判断,用户可以直接选择内存限制等级,如果不选择,系统选择默认等级(一般为中等限制级别),用户可以输入内存大小,后台程序生成内存限制等级和需求条件。

在步骤S103中,对运行作业的资源使用情况进行实时监控;

在该步骤中,在slurm系统中,通过状态查询命令sstat实时监控作业运行情况,获取运行节点资源使用信息可以通过监控程序同步跟踪;

建立实时检测机制,通过运行作业和运行作业的节点的实时内存检测,及时反馈作业内存使用情况。根据作业内存使用情况和作业的运行状态,对运行非正常运行技术的的作业进行处理,判断是否由于内存溢出原因造成作业运行失败。如果由于需要使用内存超过分配内存,重新生成内存条件,再原来基础上增加一定比例。通过加上新的内存限制条件,作业进行重新运行操作,并对内存溢出事件二次重启进行日志记录和用户告警提醒。

在步骤S104中,当判定作业运行失败且作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,并重新提交作业运行。

其中,运行失败反馈重启机制。根据作业监控信息,如果作业运行失败,作业内存达到提供内存值,则可以判定内存不足原因,在原来内存条件基础上,增加一定比例的内存量,然后再次提交作业,作业重新提交运行。

在本发明实施例中,对于批量提交作业,更需要内存原因的作业反馈机制,通过该机制就能有效杜绝内存溢出状况,及时对作业进行重新运行,减少作业运行的二次人为操作,使得作业运行变得自动化和智能化;

在提交作业时候,用户无法评估内存需求,后台可以分配一个中等内存限制条件,然后提交作业,如果由于内存无法满足需求造成作业运行中断,通过后端反馈机制,在原来内存的基础上增加一定比例内存,重启作业,继续运行。

通过上述策略,用户评估内存大小提交作业,如果作业由于内存限制原因运行失败,可通过反馈机制重新提交作业,解决内存原因无法智能重启运行问题。

如图2所示,当判定作业运行失败且作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,并重新提交作业运行的步骤具体包括下述步骤:

在步骤S201中,当监测到作业运行结束时,判断所述作业是否为正常结束,是则结束,否则执行步骤S202;

在步骤S201中,当判定所述作业为非正常结束时,则判断所述作业运行内存是否达到配置的内存限制等级,是则执行步骤S203,否则结束;

在步骤S203中,当判定所述作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,重新生成作业运行条件;

在步骤S204中,根据生成的作业运行条件,重新提交作业运行;

在该步骤中,结合调整后的运行内存条件,以上次登录用户的身份重新提交作业,对新提交的作业进行资源使用监控,并及时反馈作业运行情况。

在本发明实施例中,设定内存告警阈值,当运行作业使用内存超过设定的阈值,通过生成告警信息,及时对该作业用户进行提醒。用户可以对该作业的二次运行机制进行设置,用户可以关闭内存原因二次重启机制,这样,用户通过系统可以根据日志情况,重新选择内存使用情况,进行手动提交作业,默认开启二次重启机制。本发明实施例用于内存限制条件生成,内存原因作业失败重启运行,解决作业由于内存原因导致作业运行失败问题,达到作业提交的自动化和智能化,即实现内存原因导致作业运行失败的二次自动化重启运行,也避免内存资源的过渡浪费,减少用户作业的运维工作量和时间。

图3示出了本发明提供的基于slurm系统的作业内存管理系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。

基于slurm系统的作业内存管理系统包括:

内存限制等级设置模块11,用于根据slurm系统的运行要求,通过设置内存限制参数,设置多个内存限制等级;

设置命令接收模块12,用于接收对待运行作业的内存限制等级的设置命令;

内存配置模块13,用于为所述待运行作业配置对应内存限制等级的内存;

实时监控模块14,用于对运行作业的资源使用情况进行实时监控;

作业重提交模块15,用于当判定作业运行失败且作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,并重新提交作业运行。

其中,设置命令接收模块12具体包括:

人工设置模块16,用于接收用户输入的对待运行作业的内存限制等级的设置命令;

系统设置模块17,用于根据默认的设置参数,接收系统对待运行作业的内存限制等级的设置命令。

所述作业重提交模块15具体包括:

作业正常结束判断模块18,用于当监测到作业运行结束时,判断所述作业是否为正常结束;

内存限制等级判断模块19,用于当判定所述作业为非正常结束时,则判断所述作业运行内存是否达到配置的内存限制等级;

作业运行条件生成模块20,用于当判定所述作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,重新生成作业运行条件;

重提交模块21,用于根据生成的作业运行条件,重新提交作业运行。

在本发明实施例中,所述系统还包括:

告警信息生成模块22,用于当监测到作业运行内存超过预设的内存阈值时,生成告警信息。

在本发明实施例中,根据slurm系统的运行要求,通过设置内存限制参数,设置多个内存限制等级;接收对待运行作业的内存限制等级的设置命令,并为所述待运行作业配置对应内存限制等级的内存;对运行作业的资源使用情况进行实时监控;当判定作业运行失败且作业运行内存达到配置的内存限制等级时,在所述作业配置的内存限制等级的基础上增加内存增量,并重新提交作业运行,既避免内存资源的浪费,也解决由于内存不足造成的作业运行失败而无法自动重启运行问题,针对用户的批量作业提交运行,提供了自动和智能的运维状态。

以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

技术分类

06120113793075