CN117234711B - Flink系统资源动态分配方法、系统、设备及介质 - Google Patents

Flink系统资源动态分配方法、系统、设备及介质 Download PDF

Info

Publication number
CN117234711B
CN117234711B CN202311134914.2A CN202311134914A CN117234711B CN 117234711 B CN117234711 B CN 117234711B CN 202311134914 A CN202311134914 A CN 202311134914A CN 117234711 B CN117234711 B CN 117234711B
Authority
CN
China
Prior art keywords
task
slot
parameter
application
calculation
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
CN202311134914.2A
Other languages
English (en)
Other versions
CN117234711A (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.)
Hexin Technology Co ltd
Hexin Technology Suzhou Co ltd
Original Assignee
Hexin Technology Co ltd
Hexin Technology Suzhou 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 Hexin Technology Co ltd, Hexin Technology Suzhou Co ltd filed Critical Hexin Technology Co ltd
Priority to CN202311134914.2A priority Critical patent/CN117234711B/zh
Publication of CN117234711A publication Critical patent/CN117234711A/zh
Application granted granted Critical
Publication of CN117234711B publication Critical patent/CN117234711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种Flink系统资源动态分配方法、系统、设备及介质,所述方法包括:校验用户提交的计算任务请求是否满足直接创建任务条件;当满足时,将计算任务请求中的slot配置参数设为申请slot参数值;当不满足且任务参数数据库中存在相同任务类型的历史任务参数记录时,根据任务参数数据库获取申请slot参数值;当不满足且不存在相同任务类型的历史任务参数记录时,根据EDA工具获取申请slot参数值;根据申请slot参数值,创建与计算任务请求对应的计算任务并提交至任务处理服务器,并更新任务参数数据库。本发明有效规范用户合理使用计算集群的同时,还能对服务器资源进行智能化合理分配,使得服务资源利用最大化。

Description

Flink系统资源动态分配方法、系统、设备及介质
技术领域
本发明涉及云计算集群服务资源分配技术领域,特别是涉及一种Flink系统资源动态分配方法、系统、计算机设备及存储介质。
背景技术
随着集成电路设计规模的逐渐扩大,在国产高性能处理器芯片自主研发过程中,任务处理服务器的资源需求也呈现直线上升状态,比如,设计过程中的仿真、验证和综合等任务都需要占用很多的计算资源,通常大型IC公司都是采用分布式集群管理系统来综合调度各种任务,以使服务器资源尽可能被合理分配使用。
然而,由于分布式集群管理系统的用户在提交任务时,对当前系统资源负载情况没有感知,且系统在用户提交任务时候通过不会添加任何约束。基于此种任务管理调度模式,用户只知道提交了任务,并不知道当前任务所使用的系统资源能否满足,这势必会对计算集群的资源造成一定的影响;同时,若用户在提交任务时申请资源太少会造成任务执行资源不够用,而申请资源过多又会导致服务器资源浪费,造成其他用户等待排队的情况。即,现有分布式集群管理系统虽然能通过对任务管理调度的方式在一定程度上提升服务器资源的利用率,但其并没有基于任务处理实际所需占用资源情况对服务器资源进行智能化合理分配,难以真正规范用户合理使用计算集群,使得计算集群服务器资源的利用最大化。
发明内容
本发明的目的是提供一种Flink系统资源动态分配方法,通过在任务提交后对计算任务的参数和资源需求进行分析判断,给出合理的资源需求建议值,并在任务运行过程中结合实际使用资源情况进行动态调整,解决现有分布式集群管理系统资源管理的应用缺陷,提供一种适用于高性能计算任务的智能化资源合理分配机制,有效规范用户合理使用计算集群的同时,使得计算集群服务器资源的利用最大化,为高性能处理器芯片自主研发设计提供可靠的质量保障。
为了实现上述目的,有必要针对上述技术问题,提供一种Flink系统资源动态分配方法、系统、设备及介质。
第一方面,本发明实施例提供了一种Flink系统资源动态分配方法,所述方法包括以下步骤:
获取用户提交的计算任务请求,并校验所述计算任务请求是否满足直接创建任务条件;所述直接创建任务条件为计算任务请求存在slot配置参数且所述slot配置参数满足预设配置要求;
当所述直接创建任务条件满足时,将所述计算任务请求中的slot配置参数设为申请slot参数值;
当所述直接创建任务条件不满足且预设的任务参数数据库中存在相同任务类型的历史任务参数记录时,根据所述任务参数数据库获取所述申请slot参数值;
当所述直接创建任务条件不满足且预设的任务参数数据库中不存在相同任务类型的历史任务参数记录时,根据EDA工具获取所述申请slot参数值;
根据所述申请slot参数值,创建与所述计算任务请求对应的计算任务并提交至任务处理服务器,并根据所述申请slot参数值,更新所述任务参数数据库。
进一步地,所述根据所述任务参数数据库,获取所述申请slot参数值的步骤包括:
获取历史任务参数记录中的历史slot配置参数值;所述历史任务参数记录为所述任务参数数据库中与所述计算任务请求的任务类型相同的任务参数记录;
将所述历史slot配置参数值设为所述申请slot参数值。
进一步地,所述根据EDA工具,获取所述申请slot参数值的步骤包括:
获取所述计算任务请求对应的设计数据;所述设计数据包括寄存器转换级电路代码;
根据所述设计数据和EDA工具,得到对应的门级网表文件,并根据所述门级网表文件,得到对应的门级电路数量;
根据所述门级电路数量,得到所述slot建议值,并将所述slot建议值设为所述申请slot参数值。
进一步地,将所述计算任务提交至所述任务处理服务器的步骤之后,还包括:
轮询检测所述计算任务的实际slot占用数,并所述根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值,并将调整后的申请slot参数值更新至所述任务参数数据库。
进一步地,所述根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值的步骤包括:
当所述实际slot占用数小于所述申请slot参数值时,得到待释放slot资源数,并根据所述待释放slot资源数,对所述计算任务申请的slot资源进行释放;
当所述实际slot占用数大于所述申请slot参数值时,获取所述任务处理服务器的当前剩余slot资源数,并根据所述当前剩余slot资源数与预设的动态增加资源数的比对结果,为所述计算任务补增slot资源。
进一步地,所述根据所述当前剩余slot资源数与预设的动态增加资源数的比对结果,为所述计算任务补增slot资源的步骤包括:
当所述当前剩余slot资源数小于所述动态增加资源数时,发出任务退出风险提醒;
当所述当前剩余slot资源数大于所述动态增加资源数时,根据所述动态增加资源数,为所述计算任务补增slot资源。
第二方面,本发明实施例提供了一种Flink系统资源动态分配系统,所述系统包括:
任务请求获取模块,用于获取用户提交的计算任务请求,并校验所述计算任务请求是否满足直接创建任务条件;所述直接创建任务条件为计算任务请求存在slot配置参数且所述slot配置参数满足预设配置要求;
第一参数获取模块,用于当所述直接创建任务条件满足时,将所述计算任务请求中的slot配置参数作为申请slot参数值;
第二参数获取模块,用于当所述直接创建任务条件不满足且预设的任务参数数据库中存在相同任务类型的历史任务参数记录时,根据所述任务参数数据库获取所述申请slot参数值;
第三参数获取模块,用于当所述直接创建任务条件不满足且预设的任务参数数据库中不存在相同任务类型的历史任务参数记录时,根据EDA工具获取所述申请slot参数值;
计算任务提交模块,用于根据所述申请slot参数值,创建与所述计算任务请求对应的计算任务并提交至任务处理服务器,并根据所述申请slot参数值,更新所述任务参数数据库。
进一步地,所述系统还包括:
参数动态调整模块,轮询检测所述计算任务的实际slot占用数,并所述根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值,并将调整后的申请slot参数值更新至所述任务参数数据库。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述本申请提供了一种Flink系统资源动态分配方法、系统、设备及介质,通过所述方法,实现了获取用户提交的计算任务请求并校验计算任务请求是否满足存在slot配置参数且slot配置参数满足预设配置要求的直接创建任务条件,并在直接创建任务条件满足时将计算任务请求中的slot配置参数设为申请slot参数值,在直接创建任务条件不满足且预设的任务参数数据库中存在相同任务类型的历史任务参数记录时,根据任务参数数据库获取申请slot参数值,以及在直接创建任务条件不满足且任务参数数据库中不存在相同任务类型的历史任务参数记录时,根据EDA工具获取申请slot参数值后,根据申请slot参数值,创建与计算任务请求对应的计算任务并提交至任务处理服务器,并根据申请slot参数值,更新任务参数数据库的技术方案。与现有技术相比,通过任务提交前对所需资源进行合理预估并结合任务运行过程中动态调整的智能化资源分配机制,不仅能有效规范用户合理使用计算集群,而且能使得计算集群服务器资源的利用最大化,进而为高性能处理器芯片自主研发设计提供可靠的质量保障。
附图说明
图1是本发明实施例中Flink系统资源动态分配方法的流程示意图;
图2是与图1示出的Flink系统资源动态分配方法流程对应的架构示意图;
图3是本发明实施例中Flink系统资源动态分配方法的另一流程示意图;
图4是与图3示出的Flink系统资源动态分配方法流程对应的架构示意图;
图5是本发明实施例中Flink系统资源动态分配系统的结构示意图;
图6是本发明实施例中Flink系统资源动态分配系统的另一结构示意图;
图7是本发明实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案和有益效果更加清楚明白,下面结合附图及实施例,对本发明作进一步详细说明,显然,以下所描述的实施例是本发明实施例的一部分,仅用于说明本发明,但不用来限制本发明的范围。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的Flink系统资源动态分配方法是基于分布式集群管理系统(如,LSF(Load Sharing Facility)、SLURM(Simple Linux Utility for Resource Management)或SGE(Sun Grid Engine))无法有效规范用户合理使用且服务器资源无法智能化合理分配的应用现状态无法满足高性能处理器芯片自主研发设计的使用需求,而提出的通过融合将任务参数数据库和EDA(Electronic Design Automation)工具结合使用为未配置合理slot参数的计算任务请求合理预估资源需求,以及任务运行过程中根据实际占用slot资源数动态调整计算任务的slot资源申请数的方法,对现有分布式集群管理系统进行改进优化的智能化资源动态分配方案。下述实施例将对本发明的Flink系统资源动态分配方法进行详细说明。
在一个实施例中,如图1所示,提供了一种Flink系统资源动态分配方法,包括以下步骤:
S11、获取用户提交的计算任务请求,并校验所述计算任务请求是否满足直接创建任务条件;其中,计算任务请求可理解为是高性能处理器自主研发设计过程中的仿真任务、验证任务和综合测试任务等,此处不作具体限定;该计算任务请求可理解为是由使用分布式集群管理系统的用户根据芯片研发设计需求提交的请求指令,比如:bsub-Ip-q dv–n 2–R
“select[mem>1024]rusage[mem=10240]”xrun xxx.v,ec_verif_env_simbase_session_lkb00077.23_08_02_10_05_44_3362_run_3362,或bsub–Ip–q dv indigo–dbwaves/等;需要说明的是,此处给出的计算任务请求指令仅为示例性描述,在实际应用中,可根据实际任务需求进行相应配置。
由于计算任务请求中的slot参数是用户自定义配置(-n X)的,实际应用中分布式集群管理系统接收到的计算任务请求指令可能存在不包括slot配置参数、包括合理的slot配置参数、或包括不合理的slot配置参数等多种情况,而现有分布式集群管理系统不会对任务请求中的slot参数值是否配置合理进行评估,而是检测存在slot配置参数就直接按照配置参数值创建任务提交,若没有配置slot配置参数,则直接按照申请slot参数值为1进行提交,这种缺少针对各种任务请求进行精细化分析处理的资源管理机制必然会导致服务器资源浪费或服务器资源不足任务无法正常运行的问题,进而无法使得集群服务器资源利用最大化;为了从任务请求入口处规范用户合理使用计算资源,提高集群服务器资源的利用率,本实施例优选地按照预设的直接创建任务条件上述不同情况的计算任务请求进行分类检测,并根据分类检测结果进行不同的精细化处理。
上述直接创建任务条件为计算任务请求存在slot配置参数且所述slot配置参数满足预设配置要求,可理解为依此来区分slot参数配置合理或配置不合理(包括未配置、或配置但不合理两种情况)的计算任务请求;其中,预设配置需求可理解为是根据实际应用情况确定最大允许用户申请的slot的资源数判断用户请求中slot配置参数值的合理性的条件,用于避免因用户过度占用服务器资源,造成不必要的资源浪费的风险;需要说明的是,原则上为了规范用户合理申请slot资源,可以在检测到计算任务请求中的slot配置参数不符合预设配置需求时,可直接阻止用户提交任务给出相应提示,但为了提高用户的使用体验,本实施例优选地将此种存在slot配置参数,但slot配置参数不合理(过大或过小)的计算任务请求采用与未配置slot参数的计算任务请求同样的方式进行处理,也可以通过添加相应的slot参数配置不合理已更改为某个申请值的提示或其他类似的提醒方式,与未配置slot参数的情况作区分即可。
S12、当所述直接创建任务条件满足时,将所述计算任务请求中的slot配置参数设为申请slot参数值;其中,直接创建任务条件满足可理解为若接收到的计算任务请求满足该条件,就可以直接按照请求中的slot配置参数创建对应的计算任务并提交至CPU数量和memory大小均满足申请需求的任务处理服务器,即针对此种合理申请资源的用户请求,可直接提取计算任务请求中的slot配置参数作为创建计算任务时的申请slot参数值,此种处理方式,在保证用户申请资源合理性的同时,还能有效提升分布式集群管理系统的任务调度处理效率。
S13、当所述直接创建任务条件不满足且预设的任务参数数据库中存在相同任务类型的历史任务参数记录时,根据所述任务参数数据库获取所述申请slot参数值;其中,任务参数数据库可理解为是根据采集的历史计算任务的相关信息构建得到的包括不同类型任务的slot参数值的参数管理数据库;该任务参数数据库最初可根据研发设计人员或分布式集群管理系统的管理人员的经验设置,后续在系统使用的过程中不断的更新扩充,为后续的计算任务请求评估提供更加可靠的依据。
具体的,任务参数数据库中的历史任务参数记录原则上可根据实际应用需求设置,但考虑到实际应用中,前端使用任务处理服务器执行一个仿真任务需占用10G左右的memory,而任务处理服务器通常是cpu总数为96且memory为2T的服务器,即一台服务器最多可以200个slot资源,但由于cpu数量的限制,在保证cpu不超负荷的情况下,可采用是1个cpu对应1个slot资源的方式对服务器资源进行管理,这样就可以保证前端使用的cpu负载既不会太高也不会导致资源的浪费的情况,为了在保证不影响slot资源分配合理的性的基础上,尽量减少资源分配相关参数的管理,以提高系统处理效率和运行性能,本实施例优选的,任务参数数据库维护的历史任务记录仅包括用户信息、计算任务请求的命令内容(或任务类型)和申请slot参数值;需要说明的是,在实际应用中也根据实际应用需求增加内存使用情况或其他相关参数。
考虑到对于计算任务请求中没有配置slot参数或slot参数配置不合理的情况,都需要通过合理的分析方式给出系统建议的申请slot参数值,以提高用户使用体验和系统处理效率,而由于任务参数数据库中存储有不同任务类型的历史任务参数记录,若存在相同任务类型的历史任务参数记录,可在不作任何复杂分析处理的情况下就能直接为当前计算任务确定比较合理的申请slot参数值,相较与下文所述的通过EDA工具获取申请slot参数值的方式明显更加简单高效;本实施例优选地,在确定计算任务请求不满足直接创建任务条件时,首先检查任务参数数据库是否存在相同任务类型的历史任务参数记录,并在确定当前计算任务请求的任务类型在任务参数数据库中未见记录时,再执行后续的EDA工具获取方式;具体的,所述根据所述任务参数数据库,获取所述申请slot参数值的步骤包括:
获取历史任务参数记录中的历史slot配置参数值;所述历史任务参数记录为所述任务参数数据库中与所述计算任务请求的任务类型相同的任务参数记录;其中,任务类型相同的判断根据任务参数数据库中任务参数记录的具体内容不同可以有两种方式:若任务参数数据库中的任务参数记录中包括的是任务类型,则需要根据计算任务请求的命令内容,确定待提交任务类型,再根据待提交任务类型遍历任务参数数据库,以查找任务类型相同的任务参数记录;若任务参数数据库中的任务参数记录中包括的是历史计算任务请求的命令内容,则直接通过将当前计算任务请求的命令内容与任务参数数据库中各个任务参数记录的命令内容进行字符串匹配分析,查找任务类型相同的任务参数记录,比如,前端的回归验证任务都是直接通过makefile批量化提交的,每个计算任务非常类似,且提交任务请求的命令内容都类似于
“ec_verif_env_simbase_session_lkb00077.23_08_02_10_05_44_3362_run_3362”这种,在进行字符串匹配分析就可以根据命令内容的规律辨识是否任务类型相同,且查看波形的计算任务请求的命令内容类似于“bsub–Ip–q dv indigo–db waves/”这种,也根据命令内容的规律辨识确认为波形任务类型,当然其他任务类型的请求命令内容也存在相应的辨识规律,此处不再一一说明,具体的字符串匹配分析方法此处也不作具体限定;
将所述历史slot配置参数值设为所述申请slot参数值。
S14、当所述直接创建任务条件不满足且预设的任务参数数据库中不存在相同任务类型的历史任务参数记录时,根据EDA工具获取所述申请slot参数值;其中,EDA工具可理解为是指利用计算机辅助设计软件,来完成超大规模集成电路(Very Large ScaleIntegration Circuit,VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计工具,可用于通过输入寄存器转换级电路(RTL,Register Transfer Level)代码进行编译仿真与波形信息相结合分析的方式来确认设计是否正确,还可以通过将RTL代码转换为由与或非等基本逻辑单元组成的门级网表获取门级电路数量。
在实际应用中,随着芯片研发技术的不断提升,可能会存在因新功能研发设计而提交新类型计算任务的应用场景,在没有历史经验可参考的情况下,为了满足对新增功能进行快速高效的仿真、验证或综合测试的需求,有效提升用户体验,本实施例基于对计算任务执行所需slot资源数与设计数据中门级电路数量的关系研究,优选地通过使用EDA工具获取设计数据中的门级电路数量,再根据门级电路数量给出计算任务运行的slot建议值;具体的,所述根据EDA工具,获取所述申请slot参数值的步骤包括:
获取所述计算任务请求对应的设计数据;所述设计数据包括寄存器转换级电路代码;
根据所述设计数据和EDA工具,得到对应的门级网表文件,并根据所述门级网表文件,得到对应的门级电路数量;
根据所述门级电路数量,得到所述slot建议值,并将所述slot建议值设为所述申请slot参数值;其中,slot建议值可理解为是基于根据EDA工具厂商经验或通过对分布式集群管理系统中具有不同门级电路数量计算任务运行所需占用slot资源数据的采集分析得到的门级电路数量与slot资源的映射关系所预估的slot资源需求数;需要说明的是,此处给出的门级电路数量与slot资源的映射关系的具体获取方式可根据实际应用需求选取,比如,可基于采集得到不同门级电路数量的计算任务运行实际需要的slot资源数进行回归分析的方式得到,此处不作具体限定。
S15、根据所述申请slot参数值,创建与所述计算任务请求对应的计算任务并提交至任务处理服务器,并根据所述申请slot参数值,更新所述任务参数数据库;其中,申请slot参数值可理解为是针对不同类型计算任务请求的精细化分析评估所确定的任务运行所需的slot资源预估值,根据该预估值可直接创建计算任务并为该计算任务分配满足资源占用需求的任务处理服务器,具体创建计算任务以及根据申请slot参数值分配任务处理器的方法参考现有技术实现即可,此处不再赘述;此外,将每个计算任务请求分析评估得到申请slot参数值存入任务参数数据库,即可以保证任务参数数据库中存储历史任务参数记录的丰富性,又能不断更新同类型计算任务的申请slot参数值,进而为后续计算任务请求所需slot资源评估的高效性和合理性提供可靠保障。
本实施例通过对用户提交的计算任务请求进行精细化分类,针对不同类型的计算任务请求提供不同的获取合理有效的申请slot参数值的实施方式,提供了如图2所示的Flink系统资源动态分配方案,与现有技术相比,不仅能实现任务提交前对所需资源的高效合理预估,尽可能保证用户申请资源合理性,而且能有效规范用户合理使用计算集群,避免因用户过度占用服务器资源而造成的资源浪费风险,使得计算集群服务器资源的利用最大化,还能有效提升分布式集群管理系统的任务调度效率,进而使得分布式集群管理系统在满足资源合理分配需求的同时,保持较高的运行性能。
原则上通过上述方法步骤就能很好的解决现有分布式集群管理系统无法有效规范用户合理使用且服务器资源无法智能化合理分配的应用缺陷,但考虑到实际应用中无论是用户配置的有效slot参数值,还是根据前置分析评估中的任务参数数据库或EDA工具得到申请slot参数值都可能会存在或多或少的偏差,即可能导致一定程度上的资源分配不合理现象发生的情况,为了进一步提升服务器资源分配的合理性和精准性,使得资源利用率最大化,本实施例优选地,还提供了任务运行过程中根据实际占用slot资源数动态调整计算任务的slot资源申请数的技术方案;具体的,如图3所示,将所述计算任务提交至所述任务处理服务器的步骤S15之后,还包括:
S16、轮询检测所述计算任务的实际slot占用数,并所述根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值,以及将调整后的申请slot参数值更新至所述任务参数数据库;其中,动态调整可理解为定期轮询监测计算任务运行的实际slot资源占用情况进行分析,在实际slot占用数较多时,补增申请资源,反之,则释放已申请的多余资源;需要说明的是,本实施例轮询检测可通过脚本执行分布式集群管理系统的相关指令来查看当前任务处理服务器可用slot资源数及当前计算任务运行所占用slot资源数,在每个计算任务提交至任务处理服务器后都会开始执行;如前所述,在通过优化任务处理服务器的slot资源和memory内存配比方式,可保证根据检测得到的slot资源数就能确定对应的memory内存值的情况下,本实施例优选地,通过仅轮询slot资源数的方式提高资源动态分配效率的同时,有效解决系统的性能开销;当然,若在实际应用中,动态调整运行任务的slot资源时想结合memory内存或/CPU占用情况做到更加精细化,也可以在轮询检测当前任务处理服务器可用slot资源数及当前计算任务运行所占用slot资源数的同时,增加相应的memory内存或/CPU占用情况,此处不再赘述。
具体的,所述根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值的步骤包括:
当所述实际slot占用数小于所述申请slot参数值时,得到待释放slot资源数,并根据所述待释放slot资源数,对所述计算任务申请的slot资源进行释放;其中,待释放slot资源数可理解为是任务运行中实际占用slot资源数小于任务提交时申请的slot资源数时,根据分析确定的所能释放的slot资源数,具体数值可根据实际应用需求确定,比如,可选用小于或等于“申请slot参数值与实际slot占用数差值”的数值,具体不作限定;对应的,slot资源释放可通过脚本执行分布式集群管理系统的相关指令的方式来实现,比如,动态释放某一台服务器slot的指令为bresize release"all~hgzmm3cs059"jobID;
当所述实际slot占用数大于所述申请slot参数值时,获取所述任务处理服务器的当前剩余slot资源数,并根据所述当前剩余slot资源数与预设的动态增加资源数的比对结果,为所述计算任务补增slot资源;其中,当前剩余slot资源数可理解为是轮询检测到的当前任务处理服务器可允许分配的未占用slot资源数;动态增加资源数可理解为是根据实际应用需求确定的动态调整过程中允许一次为某个计算任务增加的最大slot资源数步长,若上述轮询检测的频率较快,此处就可以将动态增加资源数适当的设小(设为1个或2个slot等),反之,则可以将动态增加资源数适当设大,此处不作具体限定;
本实施例将当前剩余slot资源数与预设的动态增加资源数作为动态补增slot资源的申请依据,以实现在计算运行任务申请的slot资源数不足且当前任务处理器有剩余slot资源的情况下,有效保证当前计算任务的正常高效处理的技术效果;具体的,所述根据所述当前剩余slot资源数与预设的动态增加资源数的比对结果,为所述计算任务补增slot资源的步骤包括:
当所述当前剩余slot资源数小于所述动态增加资源数时,发出任务退出风险提醒;其中,当前剩余slot资源数小于动态增加资源数的情况可理解为是计算任务申请的slot资源数不足但当前任务处理器没有可供补增的剩余slot资源,该计算任务可能存在随时退出运行的风险;针对此种情况,为了让用户及时感知以选择合理有效的处理措施,本实施例优选地根据检测结果及时给出风险提醒的方式告知客户任务运行风险,对应的任务退出风险提醒可理解为是借助邮件系统或其他与任务提交用户通信的方式,以及对应的接口给用户发送的提醒邮件或提醒信息,以便用户根据提醒及时评估是继续执行,还是主动将运行的计算任务退出;
当所述当前剩余slot资源数大于所述动态增加资源数时,根据所述动态增加资源数,为所述计算任务补增slot资源;其中,当前剩余slot资源数大于或等于动态增加资源数的情况可理解为是计算任务申请的slot资源数不足且当前任务处理器存在可供补增的剩余slot资源,该计算任务可以通过申请补增slot资源的方式来满足继续运行的需求,使得该计算任务得以高质量的完成,实现所需的仿真或验证效果。
本申请实施例通过将对用户提交的计算任务请求进行精细化分类,且针对不同类型的计算任务请求提供不同的获取合理有效的申请slot参数值的前期资源评估方案,与任务运行过程中根据运行计算任务实际占用slot资源数动态调整计算任务的slot资源申请数的后续资源动态调整相结合的实施方式,提供了如图4所示的Flink系统资源动态分配方案,与现有技术相比,不仅能从用户申请资源合理性管理层面,有效规范用户合理使用计算集群,避免因任务提交前期过度占用服务器资源而造成的资源浪费风险,而且能基于弥补前期预估偏差的资源动态管理层面,进一步提升计算集群服务器资源分配的合理性,使得计算集群服务器资源的利用最大化的同时,还能有效提升分布式集群管理系统的任务调度处理效率和运行性能,保证各个运行中的计算任务能够高效且高质量完成,进而为高性能处理器芯片自主研发设计提供可靠的质量保障。
需要说明的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。
在一个实施例中,如图5所示,提供了一种Flink系统资源动态分配系统,所述系统包括:
任务请求获取模块1,用于获取用户提交的计算任务请求,并校验所述计算任务请求是否满足直接创建任务条件;所述直接创建任务条件为计算任务请求存在slot配置参数且所述slot配置参数满足预设配置要求;
第一参数获取模块2,用于当所述直接创建任务条件满足时,将所述计算任务请求中的slot配置参数作为申请slot参数值;
第二参数获取模块3,用于当所述直接创建任务条件不满足且预设的任务参数数据库中存在相同任务类型的历史任务参数记录时,根据所述任务参数数据库获取所述申请slot参数值;
第三参数获取模块4,用于当所述直接创建任务条件不满足且预设的任务参数数据库中不存在相同任务类型的历史任务参数记录时,根据EDA工具获取所述申请slot参数值;
计算任务提交模块5,用于根据所述申请slot参数值,创建与所述计算任务请求对应的计算任务并提交至任务处理服务器,并根据所述申请slot参数值,更新所述任务参数数据库。
原则上将上述Flink系统资源动态分配系统应用于现有分布式集群管理系统可有效解决现有无法有效规范用户合理使用且服务器资源无法智能化合理分配的应用缺陷,但考虑到增加的前置分析评估功能得到申请slot参数值可能会存在偏差,即可能导致一定程度上的资源分配不合理现象发生的情况,为了进一步提升服务器资源分配的合理性和精准性,使得资源利用率最大化,本实施例优选地,还提供了在计算任务运行过程中对服务资源进行动态调整的功能;具体的,如图6所示,提供了一种Flink系统资源动态分配系统,所述系统还包括:
参数动态调整模块6,轮询检测所述计算任务的实际slot占用数,并所述根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值,并将调整后的申请slot参数值更新至所述任务参数数据库。
关于一种Flink系统资源动态分配系统的具体限定可以参见上文中对于一种Flink系统资源动态分配方法的限定,对应的技术效果也可等同得到,在此不再赘述。上述一种Flink系统资源动态分配系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图7示出一个实施例中计算机设备的内部结构图,该计算机设备具体可以是终端或服务器。如图7所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示器和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种Flink系统资源动态分配方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域普通技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
综上,本发明实施例提供的一种Flink系统资源动态分配方法、系统、设备及介质,其Flink系统资源动态分配方法实现了获取用户提交的计算任务请求并校验计算任务请求是否满足存在slot配置参数且slot配置参数满足预设配置要求的直接创建任务条件,并在直接创建任务条件满足时将计算任务请求中的slot配置参数设为申请slot参数值,在直接创建任务条件不满足且预设的任务参数数据库中存在相同任务类型的历史任务参数记录时,根据任务参数数据库获取申请slot参数值,以及在直接创建任务条件不满足且任务参数数据库中不存在相同任务类型的历史任务参数记录时,根据EDA工具获取申请slot参数值后,根据申请slot参数值,创建与计算任务请求对应的计算任务并提交至任务处理服务器,并根据申请slot参数值,更新任务参数数据库,以及在计算任务运行期间根据轮询检测到的计算任务实际slot占用数动态调整申请slot参数值和更新任务参数数据库的技术方案,该方法通过通过任务提交前对所需资源进行合理预估并结合任务运行过程中动态调整的智能化资源分配机制,不仅能从用户申请资源合理性管理层面,有效规范用户合理使用计算集群,避免因任务提交前期过度占用服务器资源而造成的资源浪费风险,而且能基于弥补前期预估偏差的资源动态管理层面,进一步提升计算集群服务器资源分配的合理性,使得计算集群服务器资源的利用最大化的同时,还能有效提升分布式集群管理系统的任务调度处理效率和运行性能,保证各个运行中的计算任务能够高效且高质量完成,进而为高性能处理器芯片自主研发设计提供可靠的质量保障。
本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种Flink系统资源动态分配方法,其特征在于,所述方法包括以下步骤:
获取用户提交的计算任务请求,并校验所述计算任务请求是否满足直接创建任务条件;所述直接创建任务条件为计算任务请求存在slot配置参数且所述slot配置参数满足预设配置要求;所述slot配置参数为用户自定义配置的slot资源申请个数;
当所述直接创建任务条件满足时,将所述计算任务请求中的slot配置参数设为申请slot参数值;
当所述直接创建任务条件不满足且预设的任务参数数据库中存在相同任务类型的历史任务参数记录时,根据所述任务参数数据库获取所述申请slot参数值;
当所述直接创建任务条件不满足且预设的任务参数数据库中不存在相同任务类型的历史任务参数记录时,根据EDA工具获取所述申请slot参数值;
根据所述申请slot参数值,创建与所述计算任务请求对应的计算任务并提交至任务处理服务器,并根据所述申请slot参数值,更新所述任务参数数据库;
其中,判断任务参数数据库中是否存在相同任务类型的历史任务参数记录的步骤包括:
当所述任务参数数据库中的任务参数记录包括任务类型时,根据基于所述计算任务请求的命令内容确定的待提交任务类型,遍历所述任务参数数据库;
当所述任务参数数据库中的任务参数记录包括命令内容时,将所述计算任务请求的命令内容与所述任务参数数据库中各个任务参数记录的命令内容进行字符串匹配分析。
2.如权利要求1所述的Flink系统资源动态分配方法,其特征在于,所述根据所述任务参数数据库,获取所述申请slot参数值的步骤包括:
获取历史任务参数记录中的历史slot配置参数值;所述历史任务参数记录为所述任务参数数据库中与所述计算任务请求的任务类型相同的任务参数记录;
将所述历史slot配置参数值设为所述申请slot参数值。
3.如权利要求1所述的Flink系统资源动态分配方法,其特征在于,所述根据EDA工具,获取所述申请slot参数值的步骤包括:
获取所述计算任务请求对应的设计数据;所述设计数据包括寄存器转换级电路代码;
根据所述设计数据和EDA工具,得到对应的门级网表文件,并根据所述门级网表文件,得到对应的门级电路数量;
根据所述门级电路数量,得到所述slot建议值,并将所述slot建议值设为所述申请slot参数值。
4.如权利要求1所述的Flink系统资源动态分配方法,其特征在于,将所述计算任务提交至所述任务处理服务器的步骤之后,还包括:
轮询检测所述计算任务的实际slot占用数,并根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值,并将调整后的申请slot参数值更新至所述任务参数数据库。
5.如权利要求4所述的Flink系统资源动态分配方法,其特征在于,所述根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值的步骤包括:
当所述实际slot占用数小于所述申请slot参数值时,得到待释放slot资源数,并根据所述待释放slot资源数,对所述计算任务申请的slot资源进行释放;
当所述实际slot占用数大于所述申请slot参数值时,获取所述任务处理服务器的当前剩余slot资源数,并根据所述当前剩余slot资源数与预设的动态增加资源数的比对结果,为所述计算任务补增slot资源。
6.如权利要求5所述的Flink系统资源动态分配方法,其特征在于,所述根据所述当前剩余slot资源数与预设的动态增加资源数的比对结果,为所述计算任务补增slot资源的步骤包括:
当所述当前剩余slot资源数小于所述动态增加资源数时,发出任务退出风险提醒;
当所述当前剩余slot资源数大于所述动态增加资源数时,根据所述动态增加资源数,为所述计算任务补增slot资源。
7.一种Flink系统资源动态分配系统,其特征在于,所述系统包括:
任务请求获取模块,用于获取用户提交的计算任务请求,并校验所述计算任务请求是否满足直接创建任务条件;所述直接创建任务条件为计算任务请求存在slot配置参数且所述slot配置参数满足预设配置要求;所述slot配置参数为用户自定义配置的slot资源申请个数;
第一参数获取模块,用于当所述直接创建任务条件满足时,将所述计算任务请求中的slot配置参数作为申请slot参数值;
第二参数获取模块,用于当所述直接创建任务条件不满足且预设的任务参数数据库中存在相同任务类型的历史任务参数记录时,根据所述任务参数数据库获取所述申请slot参数值;
第三参数获取模块,用于当所述直接创建任务条件不满足且预设的任务参数数据库中不存在相同任务类型的历史任务参数记录时,根据EDA工具获取所述申请slot参数值;
计算任务提交模块,用于根据所述申请slot参数值,创建与所述计算任务请求对应的计算任务并提交至任务处理服务器,并根据所述申请slot参数值,更新所述任务参数数据库;
其中,判断任务参数数据库中是否存在相同任务类型的历史任务参数记录,包括:
当所述任务参数数据库中的任务参数记录包括任务类型时,根据基于所述计算任务请求的命令内容确定的待提交任务类型,遍历所述任务参数数据库;
当所述任务参数数据库中的任务参数记录包括命令内容时,将所述计算任务请求的命令内容与所述任务参数数据库中各个任务参数记录的命令内容进行字符串匹配分析。
8.如权利要求7所示的Flink系统资源动态分配系统,其特征在于,所述系统还包括:
参数动态调整模块,轮询检测所述计算任务的实际slot占用数,并根据所述实际slot占用数与所述任务参数数据库中对应的申请slot参数值的比对结果,动态调整所述申请slot参数值,并将调整后的申请slot参数值更新至所述任务参数数据库。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一所述方法的步骤。
CN202311134914.2A 2023-09-05 2023-09-05 Flink系统资源动态分配方法、系统、设备及介质 Active CN117234711B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311134914.2A CN117234711B (zh) 2023-09-05 2023-09-05 Flink系统资源动态分配方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311134914.2A CN117234711B (zh) 2023-09-05 2023-09-05 Flink系统资源动态分配方法、系统、设备及介质

Publications (2)

Publication Number Publication Date
CN117234711A CN117234711A (zh) 2023-12-15
CN117234711B true CN117234711B (zh) 2024-05-07

Family

ID=89085410

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311134914.2A Active CN117234711B (zh) 2023-09-05 2023-09-05 Flink系统资源动态分配方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN117234711B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778079A (zh) * 2014-01-10 2015-07-15 国际商业机器公司 用于调度、执行的装置和方法以及分布式系统
CN105868070A (zh) * 2015-12-25 2016-08-17 乐视网信息技术(北京)股份有限公司 确定任务消耗资源的方法及装置
CN107273209A (zh) * 2017-06-09 2017-10-20 北京工业大学 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法
CN111552569A (zh) * 2020-04-28 2020-08-18 咪咕文化科技有限公司 系统资源调度方法、装置及存储介质
CN113688602A (zh) * 2021-10-26 2021-11-23 中电云数智科技有限公司 一种任务处理方法以及装置
WO2022001965A1 (zh) * 2020-06-30 2022-01-06 中兴通讯股份有限公司 数据库配置参数调整方法、设备及存储介质
CN113986523A (zh) * 2021-09-12 2022-01-28 济南浪潮数据技术有限公司 一种Flink系统资源分配优化方法、系统、设备及介质
CN114741187A (zh) * 2022-03-29 2022-07-12 深信服科技股份有限公司 一种资源调度的方法、系统、电子设备及介质
CN115373835A (zh) * 2022-07-15 2022-11-22 北京云思智学科技有限公司 Flink集群的任务资源调整方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011016327A1 (ja) * 2009-08-07 2011-02-10 株式会社日立製作所 計算機システム、プログラム及びシミュレーションに使用する計算資源を割り当てる方法
CN105302536A (zh) * 2014-07-31 2016-02-03 国际商业机器公司 MapReduce应用的相关参数的配置方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778079A (zh) * 2014-01-10 2015-07-15 国际商业机器公司 用于调度、执行的装置和方法以及分布式系统
CN105868070A (zh) * 2015-12-25 2016-08-17 乐视网信息技术(北京)股份有限公司 确定任务消耗资源的方法及装置
CN107273209A (zh) * 2017-06-09 2017-10-20 北京工业大学 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法
CN111552569A (zh) * 2020-04-28 2020-08-18 咪咕文化科技有限公司 系统资源调度方法、装置及存储介质
WO2022001965A1 (zh) * 2020-06-30 2022-01-06 中兴通讯股份有限公司 数据库配置参数调整方法、设备及存储介质
CN113986523A (zh) * 2021-09-12 2022-01-28 济南浪潮数据技术有限公司 一种Flink系统资源分配优化方法、系统、设备及介质
CN113688602A (zh) * 2021-10-26 2021-11-23 中电云数智科技有限公司 一种任务处理方法以及装置
CN114741187A (zh) * 2022-03-29 2022-07-12 深信服科技股份有限公司 一种资源调度的方法、系统、电子设备及介质
CN115373835A (zh) * 2022-07-15 2022-11-22 北京云思智学科技有限公司 Flink集群的任务资源调整方法、装置及电子设备

Also Published As

Publication number Publication date
CN117234711A (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
US10819603B2 (en) Performance evaluation method, apparatus for performance evaluation, and non-transitory computer-readable storage medium for storing program
US20170097850A1 (en) Finding resource bottlenecks with low-frequency sampled data
US8375228B2 (en) Multiple-node system power utilization management
US7979864B2 (en) Apparatus for setting used license of executing job into unused license state and allocating the set unused license to a to be executed job based on priority
US7698709B2 (en) Method and apparatus to manage multi-computer supply based on an economic model
JPH0326419B2 (zh)
US20190245756A1 (en) Performance adjustment method, apparatus for peformance adjustment, and non-transitory computer-readable storage medium for storing program
JP4905120B2 (ja) 負荷集約プログラム、該プログラムを記録した記録媒体、負荷集約装置および負荷集約方法
Ma et al. Improving reliability of soft real-time embedded systems on integrated CPU and GPU platforms
Escobar et al. Energy‐aware load balancing of parallel evolutionary algorithms with heavy fitness functions in heterogeneous CPU‐GPU architectures
US8010215B2 (en) Structure for selecting processors for job scheduling using measured power consumption
CN116360990B (zh) 分布式计算任务合理性预判方法、系统、设备和存储介质
WO2020086053A1 (en) Dynamic allocation of computing resources for electronic design automation operations
CN109992408B (zh) 一种资源分配方法、装置、电子设备和存储介质
CN117234711B (zh) Flink系统资源动态分配方法、系统、设备及介质
CN115756872B (zh) 基于数据分析的计算机内存释放系统
EP3826233B1 (en) Enhanced selection of cloud architecture profiles
CN111898865B (zh) 一种智慧校园数据动态管理方法
CN111611167B (zh) 基于dsp的嵌入式软件测试方法与系统
CN113608854A (zh) 用于版图验证的任务调度方法、装置、服务器和存储介质
CN113485838A (zh) 服务器分配方法及装置、电子设备和计算机可读存储介质
CN114077481A (zh) 任务调度方法、装置、设备和存储介质
CN111858070A (zh) 计算资源配置方法、装置、设备以及存储介质
CN112346863B (zh) 一种计算资源动态调整数据处理方法及系统
WO2024114728A1 (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
GR01 Patent grant
GR01 Patent grant