CN114968585A - 资源配置方法、装置、介质和计算设备 - Google Patents
资源配置方法、装置、介质和计算设备 Download PDFInfo
- Publication number
- CN114968585A CN114968585A CN202210612320.7A CN202210612320A CN114968585A CN 114968585 A CN114968585 A CN 114968585A CN 202210612320 A CN202210612320 A CN 202210612320A CN 114968585 A CN114968585 A CN 114968585A
- Authority
- CN
- China
- Prior art keywords
- message
- unit
- working node
- processing
- resources required
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施方式提供了一种资源配置方法。该方法包括:获取待执行任务读取的多个消息群以及执行所述待执行任务的分布式系统的历史网络参数,所述消息群包括多个消息单元;根据所述历史网络参数确定各个所述消息单元被处理所需的单位资源的第一数量;根据各个所述消息单元被处理所需的单位资源的第一数量,为所述分布式系统的各个工作节点分配对应的消息单元,其中,分配至所述工作节点的各个所述消息单元被处理所需的单位资源的第一数量之和,小于或等于所述工作节点的单位资源的数量。本公开,无需手动调节消息单元分配,缩短了流任务的执行时长,提高了流任务的执行效率。此外,本公开的实施方式提供了一种资源配置装置、介质和计算设备。
Description
技术领域
本公开的实施方式涉及分布式系统领域,更具体地,本公开的实施方式涉及资源配置方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
流任务指的是多个具有关联的任务,流任务可以通过分布式系统来执行。
在创建流任务后,流任务会读取多个消息群,每个消息群可被均分为多个消息单元,消息群包括同一类的多个消息。各个消息单元会以均分的方式分配到分布式系统的各个工作节点上进行处理。
各个消息群的数据量不同,则不同消息群的消息单元的数据量也不同。由于消息单元无法被划分,因而消息单元是尽量均分给工作节点的。若存在多个消息群,则工作节点会分配到不同消息群的消息单元。各个消息群的数据量不同,因而不同消息群的消息单元被处理的数据量也不同,从而造成分配至工作节点的消息单元的数据量较大。若出现这种情况,需要手动将处理量大的工作节点的消息单元分配至处理量小的工作节点;或新开设一个工作节点,手动将处理量大的工作节点的消息单元分配至新开设的工作节点,从而使得流任务的执行时长过长,导致流任务的执行效率较低。
发明内容
本公开提供一种资源配置方法、装置、介质和计算设备,以解决流任务的执行效率较低的问题。
在本公开实施方式的第一方面中,提供了一种资源配置方法,包括:获取待执行任务读取的多个消息群以及执行所述待执行任务的分布式系统的历史网络参数,所述消息群包括多个消息单元,所述消息单元包括一个或多个消息;根据所述历史网络参数确定各个所述消息单元被处理所需的单位资源的第一数量;根据各个所述消息单元被处理所需的单位资源的第一数量,为所述分布式系统的各个工作节点分配对应的消息单元,其中,分配至所述工作节点的各个所述消息单元被处理所需的单位资源的第一数量之和,小于或等于所述工作节点的单位资源的数量。
在本公开一实施例中,所述为所述分布式系统的各个工作节点分配对应的消息单元,包括:根据各个所述消息单元被处理所需的单位资源的第一数量,对各个所述消息单元进行从大到小的排序;将排序后的各个所述消息单元,分配至各个所述工作节点,其中,完成所述消息单元分配后的工作节点剩余的单位资源的数量,小于最小的第一数量。
在本公开另一实施例中,所述根据所述历史网络参数确定各个所述消息单元被处理所需的单位资源的第一数量,包括:根据所述历史网络参数确定各个所述消息群被处理所需的单位资源的第二数量;根据所述第二数量以及所述消息群中消息单元的数量,确定所述消息群的消息单元被处理所需的单位资源的第一数量,其中,所述消息群包括数据量相等的多个消息单元。
在本公开另一实施例中,所述根据所述历史网络参数确定各个所述消息群被处理所需的单位资源的第二数量,包括:获取所述消息群的序列化参数;将所述历史网络参数以及所述消息群的序列化参数输入预测模型;根据所述预测模型输出的结果,确定所述消息群被处理所需的单位资源的第二数量。
在本公开另一实施例中,所述预测模型,根据所述分布式系统在目标时间段内的网络参数、所述分布式系统在所述目标时间段执行任务所需的单位资源的数量以及所述目标时间段内消息群的序列化参数训练得到,所述目标时间段是相邻的第一采样时间点以及第二采样时间点所对应的时间段,所述分布式系统在所述第一采样时间点不存在延迟,且所述分布式系统在所述第二采样时间点存在延迟。
在本公开另一实施例中,所述根据各个所述消息单元被处理所需的单位资源的第一数量,为所述分布式系统的各个工作节点分配对应的消息单元之前,还包括:若最大的所述第一数量大于所述工作节点所设置的单位资源的数量,向各个所述工作节点发送提示信息,所述提示信息用于指示增大所述工作节点的单位资源的数量。
在本公开另一实施例中,所述获取待执行任务读取的多个消息群之前,还包括:获取所述待执行任务的基础信息;根据所述基础信息对各个所述工作节点进行参数配置。
在本公开另一实施例中,所述根据各个所述消息单元被处理所需的单位资源的第一数量,为所述分布式系统的各个工作节点分配对应的消息单元之后,还包括:获取所述待执行任务的任务指标;若所述任务指标匹配预设的诊断规则,输出所述预设的诊断规则所对应的诊断建议信息。
在本公开另一实施例中,所述获取所述待执行任务的任务指标之后,还包括:若所述任务指标不匹配预设的诊断规则,将所述任务指标输入诊断模型;若所述诊断模型输出的参数修改的概率值大于预设概率值,输出参数修改的提示信息。
在本公开实施例第二方面,还提供一种资源配置装置,包括:获取模块,用于获取待执行任务读取的多个消息群以及执行所述待执行任务的分布式系统的历史网络参数,所述消息群包括多个消息单元,所述消息单元包括一个或多个消息;确定模块,用于根据所述历史网络参数确定各个所述消息单元被处理所需的单位资源的第一数量,所述消息群包括多个消息单元,所述消息单元包括一个或多个消息;分配模块,用于根据各个所述消息单元被处理所需的单位资源的第一数量,为所述分布式系统中各个工作节点分配对应的消息单元,其中,分配至所述工作节点的各个所述消息单元被处理所需的单位资源的第一数量之和,小于或等于所述工作节点的单位资源的数量。
在本公开一实施例中,包括:排序模块,用于根据各个所述消息单元被处理所需的单位资源的第一数量,对各个所述消息单元进行从大到小的排序;所述分配模块,还用于将排序后的各个所述消息单元,分配至各个所述工作节点,其中,完成所述消息单元分配后的工作节点剩余的单位资源的数量,小于最小的第一数量。
在本公开另一实施例中,包括:所述确定模块,还用于根据所述历史网络参数确定各个所述消息群被处理所需的单位资源的第二数量;所述确定模块,还用于根据所述第二数量以及所述消息群中消息单元的数量,确定所述消息群的消息单元被处理所需的单位资源的第一数量,其中,所述消息群包括数据量相等的多个消息单元。
在本公开另一实施例中,包括:所述获取模块,还用于获取所述消息群的序列化参数;输入模块,用于将所述历史网络参数以及所述消息群的序列化参数输入预测模型;所述确定模块,还用于根据所述预测模型输出的结果,确定所述消息群被处理所需的单位资源的第二数量。
在本公开另一实施例中,所述预测模型,根据所述分布式系统在目标时间段内的网络参数、所述分布式系统在所述目标时间段执行任务所需的单位资源的数量以及所述目标时间段内消息群的序列化参数训练得到,所述目标时间段是相邻的第一采样时间点以及第二采样时间点所对应的时间段,所述分布式系统在所述第一采样时间点不存在延迟,且所述分布式系统在所述第二采样时间点存在延迟。
在本公开另一实施例中,包括:发送模块,用于若最大的所述第一数量大于所述工作节点所设置的单位资源的数量,向各个所述工作节点发送提示信息,所述提示信息用于指示增大所述工作节点的单位资源的数量。
在本公开另一实施例中,包括:所述获取模块,还用于获取所述待执行任务的基础信息;配置模块,用于根据所述基础信息对各个所述工作节点进行参数配置。
在本公开另一实施例中,包括:所述获取模块,还用于获取所述待执行任务的任务指标;输出模块,用于若所述任务指标匹配预设的诊断规则,输出所述预设的诊断规则所对应的诊断建议信息。
在本公开另一实施例中,包括:输入模块,用于若所述任务指标不匹配预设的诊断规则,将所述任务指标输入诊断模型;所述输出模块,还用于若所述诊断模型输出的参数修改的概率值大于预设概率值,输出参数修改的提示信息。
在本公开实施方式第三方面,还提供一种介质,包括:计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的资源配置方法。
在本公开实施方式第四方面,还提供一种计算设备,包括:存储器以及处理器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如上所述的资源配置方法。
根据本公开实施方式,通过分布式系统的历史网络参数确定消息群的消息单元被处理所需的单位资源的数量,通过各个消息单元所对应的数量对各个工作节点分配对应的消息单元,使得分配至工作节点的各个消息单元被处理所需的单位资源的总和小于工作节点所设置的单位资源的数量,避免分配至工作点的消息单元被处理所需的资源超出工作节点的资源,进而消除了手动调节消息单元分配这一流程,缩短了流任务的执行时长,提高了流任务的执行效率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性地示出了根据本公开实施方式的资源配置方法的应用场景的系统构架示意图;
图2示意性地示出了根据本公开一实施例的流程示意图;
图3示意性地示出了根据本公开另一实施例的流程示意图;
图4示意性地示出了根据本公开又一实施例的流程示意图;
图5示意性地示出了根据本公开再一实施例的流程示意图;
图6示意性地示出了根据本公开还一实施例的流程示意图;
图7示意性地示出了根据本公开实施例提供的程序产品的示意图;
图8示意性地示出了根据本公开实施例提供的资源配置装置的结构示意图;
图9示意性地示出了根据本公开实施例提供的计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种资源配置方法、装置、介质和计算设备。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
资源配置装置在执行流任务时,读取多个消息群,再将消息群均分为消息单元,最后将消息单元分配至分布式系统的工作节点中。
本专利发明人发现,消息群均分为多个消息单元,消息单元尽量的被均分至各个工作节点。但各个消息群的数据量不同,导致不同消息群下的消息单元的数据量也不同,从而造成部分工作节点分配的消息单元的数据量较大,需要手动的对该工作节点的消息单元进行调整,从而导致流任务的执行时长过长。
本专利发明人因此想到,在读取到消息群,确定消息群的消息单元被处理所需的单位资源的数量,通过各个消息单元所对应的数量对各个工作节点分配对应的消息单元,使得分配至工作节点的各个消息单元被处理所需的单位资源的总和小于工作节点所设置的单位资源的数量,避免分配至工作点的消息单元被处理所需的资源超出工作节点的资源,进而消除了手动调节消息单元分配这一流程,缩短了流任务的执行时长,提高了流任务的执行效率。
应用场景总览
首先参考图1,图1为本公开实施方式的资源配置方法应用场景的示意图。分布式系统包括工作节点110、工作节点120以及工作节点130,假设每个工作节点的单位资源为1,且将每个工作节点的资源看做为一个桶。资源配置装置200读取消息群A、消息群B以及消息群C,消息群A分为2个消息单元a,消息群B分为4个消息单元b、且消息群C也分为4个消息单元c。资源配置装置200计算得到每个消息单元a被处理所需的单位资源的数量为0.5、每个消息单元b被处理所需的单位资源的数量为0.25、且每个消息单元c被处理所需的单位资源的数量为0.2。各个工作节点所分配消息单元的原则为:分配至工作节点的各个消息单元的单位资源的数量之和不超过1(1为工作节点的单位资源的数量)。如图1所示,资源配置装置200对消息单元的分配方式为:工作节点110分配的消息单元为2个消息单元a、工作节点120分配的消息单元为4个消息单元b、且工作节点130分配的工作节点为4个消息单元c。需要说明的是,消息单元的分配方式并不限于图1所示的分配方式,在保证分配至工作节点的各个消息单元的单位资源的数量之和不超过1的前提下,还有多种分配方式,在此不再进行详细列举。
示例性方法
下面结合图1的应用场景,参考图2-图6来描述根据本公开示例性实施方式的资源配置方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
示例性的,本公开的实施例涉及的资源配置装置可以是任意具备数据处理能力的设备,例如,资源配置装置可为计算机。
参考图2,图2示例性的示出了根据本公开实施例提供的资源配置方法一实施例的流程示意图,资源配置方法包括:
步骤S201,获取待执行任务读取的多个消息群以及执行待执行任务的分布式系统的历史网络参数,消息群包括多个消息单元,消息单元包括一个或多个消息。
在本实施例中,执行主体是资源配置装置,资源配置装置可以是任意具有数据处理能力的设备。例如,资源配置装置可以是设有Filnk的设备,Filnk是一种实时计算处理引擎,可用于执行流任务。为了便于描述,以下采用装置指代资源配置装置。
用户可以在流任务管理平台创建流任务,流任务管理平台则将流任务提交至装置,提交的流任务即为装置的待执行任务。装置在获得待执行任务后,读取待执行任务的多个消息群。消息群为一个Topic,Topic可以是属于相同类的多个消息的集合,也即消息群包括属于同一类的多个消息。每个消息群可以分为多个消息单元,消息单元为partition,partition指的是最小的存储单元,包括消息群的部分数据。在实际场景中,partition中的数据不可被分割,且partition是消息群的最小粒度,也即每个partition只能被1个工作节点读取,而不能被多个工作节点分开读取。消息单元包括有一个或多个消息。
装置设有插件,可通过插件读取分布式系统的历史网络参数。历史网络参数包括分布式系统处理消息群的流量以及流速等信息,也即历史网络参数是消息群的历史流量、历史流速等参数。例如,消息群是类型为A的多个消息所组成的Topic,装置的读取分布式系统中处理A的消息群的历史流量以及历史流速等历史网络参数。
步骤S202,根据历史网络参数确定各个消息单元被处理所需的单位资源的第一数量。
装置基于历史网络参数即可确定每个消息群的消息单元被处理所需的单位资源的数量,该数量定义为第一数量。单位资源指的是一份资源,一份资源的大小可进行设置。或者,可以以工作节点所拥有的资源设置为1个单位资源,分布式系统中的各个工作节点所拥有的资源均相同。
在一示例中,装置基于消息群的历史网络参数,确定消息群被处理所需的平均流量、平均流速等平均网络参数。装置可以对平均网络参数进行换算,得到消息群被处理所需的单位资源的平均数量。由于平均数量存在偏差,可适当增大平均数量,增大的平均数量除以消息群均分为消息单元的数量即可得到第一数量。
步骤S203,根据各个消息单元被处理所需的单位资源的第一数量,为分布式系统的各个工作节点分配对应的消息单元,其中,分配至工作节点的各个消息单元被处理所需的单位资源的第一数量之和,小于或等于工作节点的单位资源的数量。
在确定每个消息单元的第一数量后,装置则基于各个消息单元的第一数量对分布式系统的各个工作节点分配对应的消息单元。需要说明的是,分配至工作节点的各个消息单元被处理所需的单位资源的第一数量之和,需要小于或等于工作节点的单位资源的数量。以下进行举例说明。
消息群D分为2个消息单元d,且消息单元d的第一数量是0.75;消息群E分为3个消息单元e,且消息单元e的第一数量是0.5;消息群F分为4个消息单元f,且消息单元f的第一数量是0.25。而每个工作节点的单位资源的数量为1。
各个消息单元的第一数量之和M=0.75*2+0.5*3+0.25*4=4,也即至少需要4个工作节点处理所有的消息单元。最优分配方式为:2个工作节点均分配有1个消息单元d以及1个消息单元f、1个工作节点分配2个消息单元e、1个工作节点分配有1个消息单元e以及2个消息单元f,也即每个工作节点分配的各个消息单元的第一数量之和为1。
当然也可以采用更多的工作节点进行多个消息单元的分配,例如,采用5个工作节点进行消息单元的分配。具体的,2个工作节点均分配有1个消息单元d、1个工作节点分配有2个消息单元e、1个工作节点分配1个消息单元e以及2个消息单元f、最后一个工作节点分配2个消息单元f,也即每个工作节点的消息单元的第一数量之和小于1。
在本实施例中,通过分布式系统的历史网络参数确定消息群的消息单元被处理所需的单位资源的数量,通过各个消息单元所对应的数量对各个工作节点分配对应的消息单元,使得分配至工作节点的各个消息单元被处理所需的单位资源的总和小于工作节点所设置的单位资源的数量,避免分配至工作点的消息单元被处理所需的资源超出工作节点的资源,进而消除了手动调节消息单元分配这一流程,缩短了流任务的执行时长,提高了流任务的执行效率。
参照图3,图3为本公开提供的资源配置方法另一实施例的流程示意图,基于图2所示的实施例,步骤S203包括:
步骤S301,根据各个消息单元被处理所需的单位资源的第一数量,对各个消息单元进行从大到小的排序。
在本实施例中,装置可以采用局部最优解的方式对各个工作节点进行消息单元的分配。
具体的,装置基于各个消息单元所对应的第一数量,对各个消息单元进行从大到小的排序。
步骤S302,将排序后的各个消息单元,分配至各个工作节点,其中,完成消息单元分配后的工作节点剩余的单位资源的数量,小于最小的第一数量。
装置将排序后的各个消息单元,分配至各个工作节点。需要说明的是,本实施例中的局部最优解可以通过贪心算法实现,贪心算法即为完成消息单元分配后的工作节点所剩余的单位资源的数量小于最小的第一数量。以下进行举例说明。
假设有2个消息单元g,消息单元g的第一数量为0.75;3个消息单元h,消息单元h的第一数量为0.5;4个消息单元j,消息单元j的第一数量为0.25;3个消息单元k,消息单元k的第一数量为0.2。各个工作节点的单位资源的数量为1。则各个消息单元按照从大到小的顺序排为:消息单元g、消息单元g、消息单元h、消息单元h、消息单元h、消息单元j、消息单元j、消息单元j、消息单元j、消息单元j、消息单元k、消息单元k、消息单元k。装置先将第一个消息单元g分配至工作节点1,工作节点1剩余的单位资源的数量为0.25,装置则将第二个消息单元g分配至工作节点2,工作节点2剩余的单位资源的数量为0.25,工作节点1和2均无法被分配0.5的消息单元h,装置则将前2个消息单元h分配至工作节点3。装置再将第3个消息单元h分配至工作节点4。此时,排列的消息单元还包括4个消息单元j以及3个消息单元k,装置则将一个消息单元j分配至工作节点1,且将第2个消息单元j分配至工作节点2,至此,工作节点1、工作节点2、工作机节点3以及工作节点4已完成分配。装置则将第3个、第4个消息单元j、第1个消息单元k以及第2个消息单元k分配至工作节点5,最后还剩余一个消息单元k。由于工作节点5的已分配的消息单元的第一数量之和=0.25*2+2*0.2=0.9,工作节点5剩余的单位资源的数量为0.1,最后一个消息单元k无法被分配至工作节点5,装置则将消息单元k分配至工作节点6。需要说明的是,工作节点的所设置的单位资源的数量可以称之为1个并发算力。
有上述例子可知,工作节点1-4所剩余的单位资源的数量为0,工作节点5剩余的单位资源的数量为0.1,也即工作节点1-5所剩余的单位资源的数量小于最小的第一数量0.2。贪心意为:在保证工作节点分配的消息单元的第一数量之和不超出工作节点的单位资源的数量的提前下,为工作节点分配各个消息单元,直至工作节点剩余的单位资源的数量小于未分配的任意消息单元的第一数量。
在本实施例中,装置基于各个消息单元的第一数量对各个消息单元进行排序,再将排序后的各个消息单元分配至各个工作节点,使得完成消息单元分配后的工作节点剩余的单位资源的数量小于最小的第一数量,在保证工作节点分配的消息单元的第一数量之和小于工作节点的单位资源的数量的情况下,最大限度的为工作节点分配最多的消息单元。
参照图4,图4为本公开资源配置方法又一实施例的流程示意图,基于图2或图3所示的实施例,步骤S202包括:
步骤S401,根据历史网络参数确定各个消息群被处理所需的单位资源的第二数量。
在本实施例中,装置可以基于历史网络参数确定各个消息群被处理所需的单位资源的第二数量。
在一示例中,第二数量的计算方式可以参照上述平均数量的确定流程,在此不再进行赘述。
在另一示例中,装置可以通过预测模型确定消息群被处理所需的单位资源的第二数量,预设模型可以是回归模型。装置获取消息群所对应的历史网络参数,且获取消息群的序列化参数。序列化参数指的是将消息群转换为可以存储或者传输的数据的格式。格式不同,则消息群被处理所需的单位资源的数量不同。装置将历史网络参数以及序列化参数输入至预测模型,预测模型即可输出消息群被处理所需的单位资源的第二数量。此外,装还可将历史网络参数、序列化参数以及消息群中消息被处理所需的耗时输入至预测模型。例如,消息群的格式为json格式,消息群中无字符串,则耗时为0;若消息群的格式为avro,则消息群包括字符串,字符串需要转换为Mysql格式,每个字符串的平均耗时为10ms,也即输入的耗时为10ms。
预测模型是基于多个训练样本训练得到的。训练样本包括分布式系统在目标时间段的网络参数、分布式系统在目标时间段执行任务所需的单位资源的数量以及目标时间段内消息群的序列化参数。目标时间段是相邻的第一采样时间点以及第二采样时间点所对应的时间段,且分布式系统在第一采样时间点不存在时延、且在第二时间点存在时延。简单的来说,装置获取工作节点从没有时延到突然有时延的时间段内的流量、流速、消息群的序列化参数、以及消息群被处理所需的单位资源的数量等信息作为训练样本。
步骤S402,根据第二数量以及消息群中消息单元的数量,确定消息群的消息单元被处理所需的单位资源的第一数量,其中,消息群包括数据量相等的多个消息单元。
消息群被均分为消息单元。因而,装置在得到第二数量后,将第二数量除以消息群所包括的消息单元的数量,即可得到消息单元被处理所需的单位资源的第一数量。
在本实施例中,装置基于历史网络参数确定消息群被处理所需的第二数量,从而根据第二数量准确的确定消息单元被处理所需的单位资源的第一数量。
在一实施例中,装置在当确定各个消息单元的第一数量后,确定最大的第一数量。若最大的第一数量大于工作节点所设置的单位资源的数量,即可确定工作节点无法进行最大的第一数量的消息单元的处理,也即需要对工作节点进行资源扩容。对此,装置向各个工作节点发送提示信息,提示信息用于指示增大工作节点的单位资源的数量,从而使得工作节点扩容后的单位资源的数量大于或等于最大的第一数量,避免出现工作节点无法处理消息单元的问题。
参照图5,图5为本公开资源配置方法再一实施例,基于图2至图4任一所示的实施例,步骤S201之前,还包括:
步骤S501,获取待执行任务的基础信息。
在本实施例中,装置在获取到待执行任务后,对待执行任务进行解析,从而得到基础信息。
在一示例中,装置可以采用语法树解析方法,检测待执行任务所使用的元数据信息,从而得到待执行任务的Kafka(Kafka是一种高吞吐量的分布式发布订阅消息系统)地址、Topic(消息群)、血缘数据等基础信息。
步骤S502,根据基础信息对各个工作节点进行参数配置。
装置基于基础信息对工作节点进行参数配置。参数配置包括:集群、队列是否开启checkpoint(检查点)、checkpoint间隔、checkpoint存储方式、堆内堆外的内存比例等。
在一示例中,待执行任务的标签包括线下测试或线上测试,若标签是线上测试,则分配线上集群;若标签是线下测试,则分配线下集群。装置还可根据用户所属分组以及任务稳定性级别确定队列,例如,待执行任务包含聚合的任务,则将checkpoint存储方式设置为rockdb的checkpoint存储;若是待执行任务包括非聚合的任务,则将使用hdfs进行存储;若是非聚合的任务的优先级较低则关闭hdfs(Hadoop Distributed File System,分布式文件系统)存储。对于不同的存储,装置也会配置不同的内存比例,如rockdb会更多的使用堆外,这些优化参数将以配置的方式存储。
装置对分布式系统进行参数设置后,可以输出配置的参数,用户可以对配置的参数进行调整。
在本实施例中,装置获取待执行任务的基础信息,从而基于基础信息对各个工作节点进行参数设置,无需人工的对工作节点进行参数设置,提高流任务的执行效率。
参照图6,图6为本公开提供的资源配置方法还一实施例的流程示意图,基于图2至图5任一所示的实施例,步骤S203之后,还包括:
步骤S601,获取待执行任务的任务指标。
在本实施例中,装置还具有诊断以及优化服务。具体的,装置中设置有规则引擎,规则引擎中配置有规则,规则用于任务诊断以及优化,该规则即为诊断规则。规则包括两部分,规则范围以及对应策略。规则范围以及应对策略例如为:压比率较高(压比率超出范围),需要调大并行度(对应策略);GC(Gabage Collection,垃圾回收)时间较长,需要调大内存配置;Failover(故障)频率较高,需将日志中的ERROR级别(ERROR级别表示无法自行修复的错误)的日志检索出来并去掉无关的日志。
装置获取待执行任务的任务指标,任务指标例如为压比率小于预设压比率。
步骤S602,若任务指标匹配预设的诊断规则,输出预设的诊断规则所对应的诊断建议信息。
装置中的规则引擎基于任务指标进行规则的遍历。若确定任务指标匹配预设的诊断规则,则输出预设的诊断规则所对应的诊断建议信息。例如,诊断规则是工作节点的内存配置与流任务执行所需的内存适配,若检测到流任务执行所需的内存低于2048MB,而工作节点的内存配置为4096MB,则输出“内存配置降低为2048MB”的诊断建议信息。
进一步的,装置中还设有模型引擎。模型引擎是通过历史执行的流任务的日志数据以及指标数据训练得到的。日志数据包含多个级别(例如ERROR级别)的数据,指标数据包含数据延迟、输入输出Checkpoint时间、内存使用率、GC时间等。装置将任务指标输入至模型引擎,模型引擎输出结果。输出的结果例如为:待执行任务的内存需要减小的概率为95%。
装置基于规则引擎以及模型引擎所得到结果进行加权处理或者排序处理,得到最终的结果,再基于最终的结果生成诊断建议信息进行输出。
在一示例中,设置以规则引擎的结果为主,也即规则引擎的权重远大于模型引擎的权重,若是规则引擎确定任务指标能够匹配预设的诊断规则,无论模型引擎输出的结果是什么,装置最终会输出预设的诊断规则所对应的诊断建议信息。若是任务指标不匹配预设的诊断规则,则将任务指标输入诊断模型(诊断模型即为模型引擎),若是诊断模型输出的参数修改的概率值大于预设概率值,则输出参数修改的提示信息。例如,参数为内存,模型引擎确定内存需要减少的概率为80%,预设概率值为70%,则输出减小内存配置的建议信息。
在本实施例中,装置获取待执行任务的任务指标,若是任务指标匹配预设的诊断规则,则输出预设的诊断规则所对应的诊断建议信息,从而对分布式系统进行参数的优化。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图7对本公开示例性实施方式的存储介质进行说明。
参考图7所示,存储介质70中存储着根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机执行指令,该计算机执行指令用于使计算设备执行本公开所提供的资源配置方法。然而,本公开的程序产品不限于此。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机执行指令。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的计算机执行指令,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。计算机执行指令可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图8对本公开示例性实施方式的资源配置装置进行说明,用于实现上述任一方法实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
参考图8,图8示意性地示出了根据本公开实施例提供的资源配置装置的结构示意图。如图8所示,资源配置装置包括:
获取模块810,用于获取待执行任务读取的多个消息群以及执行待执行任务的分布式系统的历史网络参数,消息群包括多个消息单元,消息单元包括一个或多个消息;
确定模块820,用于根据历史网络参数确定各个消息单元被处理所需的单位资源的第一数量,消息群包括多个消息单元,消息单元包括一个或多个消息;
分配模块830,用于根据各个消息单元被处理所需的单位资源的第一数量,为分布式系统中各个工作节点分配对应的消息单元,其中,分配至工作节点的各个消息单元被处理所需的单位资源的第一数量之和,小于或等于工作节点的单位资源的数量。
在本公开一实施例中,资源配置装置包括:
排序模块840,用于根据各个消息单元被处理所需的单位资源的第一数量,对各个消息单元进行从大到小的排序;
分配模块830,还用于将排序后的各个消息单元,分配至各个工作节点,其中,完成消息单元分配后的工作节点剩余的单位资源的数量,小于最小的第一数量。
在本公开另一实施例中,资源配置装置包括:
确定模块820,还用于根据历史网络参数确定各个消息群被处理所需的单位资源的第二数量;
确定模块820,还用于根据第二数量以及消息群中消息单元的数量,确定消息群的消息单元被处理所需的单位资源的第一数量,其中,消息群包括数据量相等的多个消息单元。
在本公开另一实施例中,资源配置装置包括:
获取模块810,还用于获取消息群的序列化参数;
输入模块850,用于将历史网络参数以及消息群的序列化参数输入预测模型;
确定模块820,还用于根据预测模型输出的结果,确定消息群被处理所需的单位资源的第二数量。
在本公开另一实施例中,预测模型,根据分布式系统在目标时间段内的网络参数、分布式系统在目标时间段执行任务所需的单位资源的数量以及目标时间段内消息群的序列化参数训练得到,目标时间段是相邻的第一采样时间点以及第二采样时间点所对应的时间段,分布式系统在第一采样时间点不存在延迟,且分布式系统在第二采样时间点存在延迟。
在本公开另一实施例中,资源配置装置包括:
发送模块860,用于若最大的第一数量大于工作节点所设置的单位资源的数量,向各个工作节点发送提示信息,提示信息用于指示增大工作节点的单位资源的数量。
在本公开另一实施例中,资源配置装置包括:
获取模块810,还用于获取待执行任务的基础信息;
配置模块870,用于根据基础信息对各个工作节点进行参数配置。
在本公开另一实施例中,资源配置装置包括:
获取模块810,还用于获取待执行任务的任务指标;
输出模块880,用于若任务指标匹配预设的诊断规则,输出预设的诊断规则所对应的诊断建议信息。
在本公开另一实施例中,资源配置装置包括:
输入模块850,用于若任务指标不匹配预设的诊断规则,将任务指标输入诊断模型;
输出模块880,还用于若诊断模型输出的参数修改的概率值大于预设概率值,输出参数修改的提示信息。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图9对本公开示例性实施方式的计算设备进行说明。
图9显示的计算设备90仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。如图9所示,计算设备90以通用计算设备的形式表现。计算设备90的组件可以包括但不限于:至少一个处理单元901、至少一个存储单元902,连接不同系统组件(包括处理单元901和存储单元902)的总线903。其中,至少一个存储单元902中存储有计算机执行指令;至少一个处理单元901包括处理器,处理器执行该计算机执行指令,以实现上文描述的方法。
总线903包括数据总线、控制总线和地址总线。
存储单元902可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)9021和/或高速缓存存储器9022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)9023。
存储单元902还可以包括具有一组(至少一个)程序模块9024的程序/实用工具9025,这样的程序模块9024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备90也可以与一个或多个外部设备904(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口905进行。并且,计算设备90还可以通过网络适配器906与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图9所示,网络适配器906通过总线903与计算设备90的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备90使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了资源配置装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种资源配置方法,其特征在于,包括:
获取待执行任务读取的多个消息群以及执行所述待执行任务的分布式系统的历史网络参数,所述消息群包括多个消息单元,所述消息单元包括一个或多个消息;
根据所述历史网络参数确定各个所述消息单元被处理所需的单位资源的第一数量;
根据各个所述消息单元被处理所需的单位资源的第一数量,为所述分布式系统的各个工作节点分配对应的消息单元,其中,分配至所述工作节点的各个所述消息单元被处理所需的单位资源的第一数量之和,小于或等于所述工作节点的单位资源的数量。
2.根据权利要求1所述的资源配置方法,其特征在于,所述根据各个所述消息单元被处理所需的单位资源的第一数量,所述为所述分布式系统的各个工作节点分配对应的消息单元,包括:
根据各个所述消息单元被处理所需的单位资源的第一数量,对各个所述消息单元进行从大到小的排序;
将排序后的各个所述消息单元,分配至各个所述工作节点,其中,完成所述消息单元分配后的工作节点剩余的单位资源的数量,小于最小的第一数量。
3.根据权利要求1所述的资源配置方法,其特征在于,所述根据所述历史网络参数确定各个所述消息单元被处理所需的单位资源的第一数量,包括:
根据所述历史网络参数确定各个所述消息群被处理所需的单位资源的第二数量;
根据所述第二数量以及所述消息群中消息单元的数量,确定所述消息群的消息单元被处理所需的单位资源的第一数量,其中,所述消息群包括数据量相等的多个消息单元。
4.根据权利要求3所述的资源配置方法,其特征在于,所述根据所述历史网络参数确定各个所述消息群被处理所需的单位资源的第二数量,包括:
获取所述消息群的序列化参数;
将所述历史网络参数以及所述消息群的序列化参数输入预测模型;
根据所述预测模型输出的结果,确定所述消息群被处理所需的单位资源的第二数量。
5.根据权利要求1-4任一项所述的资源配置方法,其特征在于,所述根据各个所述消息单元被处理所需的单位资源的第一数量,所述为所述分布式系统的各个工作节点分配对应的消息单元之前,还包括:
若最大的所述第一数量大于所述工作节点所设置的单位资源的数量,向各个所述工作节点发送提示信息,所述提示信息用于指示增大所述工作节点的单位资源的数量。
6.根据权利要求1-4任一项所述的资源配置方法,其特征在于,所述获取待执行任务读取的多个消息群之前,还包括:
获取所述待执行任务的基础信息;
根据所述基础信息对各个所述工作节点进行参数配置。
7.根据权利要求1-4任一项所述的资源配置方法,其特征在于,所述根据各个所述消息单元被处理所需的单位资源的第一数量,为所述分布式系统的各个工作节点分配对应的消息单元之后,还包括:
获取所述待执行任务的任务指标;
若所述任务指标匹配预设的诊断规则,输出所述预设的诊断规则所对应的诊断建议信息。
8.一种资源配置装置,其特征在于,包括:
获取模块,用于获取待执行任务读取的多个消息群以及执行所述待执行任务的分布式系统的历史网络参数,所述消息群包括多个消息单元,所述消息单元包括一个或多个消息;
确定模块,用于根据所述历史网络参数确定各个所述消息单元被处理所需的单位资源的第一数量,所述消息群包括多个消息单元,所述消息单元包括一个或多个消息;
分配模块,用于根据各个所述消息单元被处理所需的单位资源的第一数量,为所述分布式系统中各个工作节点分配对应的消息单元,其中,分配至所述工作节点的各个所述消息单元被处理所需的单位资源的第一数量之和,小于或等于所述工作节点的单位资源的数量。
9.一种介质,其特征在于,包括:计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的资源配置方法。
10.一种计算设备,其特征在于,包括:存储器以及处理器;
所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至7任一项所述的资源配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210612320.7A CN114968585A (zh) | 2022-05-31 | 2022-05-31 | 资源配置方法、装置、介质和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210612320.7A CN114968585A (zh) | 2022-05-31 | 2022-05-31 | 资源配置方法、装置、介质和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968585A true CN114968585A (zh) | 2022-08-30 |
Family
ID=82957254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210612320.7A Pending CN114968585A (zh) | 2022-05-31 | 2022-05-31 | 资源配置方法、装置、介质和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968585A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202888A (zh) * | 2022-09-13 | 2022-10-18 | 清华大学 | 设备调度方法、装置、电子设备及可读存储介质 |
-
2022
- 2022-05-31 CN CN202210612320.7A patent/CN114968585A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202888A (zh) * | 2022-09-13 | 2022-10-18 | 清华大学 | 设备调度方法、装置、电子设备及可读存储介质 |
CN115202888B (zh) * | 2022-09-13 | 2023-02-03 | 清华大学 | 设备调度方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10460241B2 (en) | Server and cloud computing resource optimization method thereof for cloud big data computing architecture | |
EP3806432A1 (en) | Method for changing service on device and service changing system | |
CN109753356A (zh) | 一种容器资源调度方法、装置及计算机可读存储介质 | |
CN110389820B (zh) | 一种基于v-TGRU模型进行资源预测的私有云任务调度方法 | |
US20170097853A1 (en) | Realizing graph processing based on the mapreduce architecture | |
CN111427681A (zh) | 边缘计算中基于资源监控的实时任务匹配调度系统和方法 | |
Xu et al. | Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters | |
US10191779B2 (en) | Application execution controller and application execution method | |
CN113821332B (zh) | 自动机器学习系统效能调优方法、装置、设备及介质 | |
US20210065083A1 (en) | Method for changing device business and business change system | |
CN111045911B (zh) | 性能测试方法、性能测试装置、存储介质与电子设备 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
CN112685153A (zh) | 微服务调度方法、装置以及电子设备 | |
CN105373432A (zh) | 一种基于虚拟资源状态预测的云计算资源调度方法 | |
US11675515B2 (en) | Intelligent partitioning engine for cluster computing | |
CN109634714B (zh) | 一种智能调度的方法及装置 | |
CN112287603A (zh) | 一种基于机器学习的预测模型构建方法、装置和电子设备 | |
CN112052082A (zh) | 任务属性优化方法、装置、服务器及存储介质 | |
CN114968585A (zh) | 资源配置方法、装置、介质和计算设备 | |
Zhang et al. | Autrascale: an automated and transfer learning solution for streaming system auto-scaling | |
CN117349026B (zh) | 一种用于aigc模型训练的分布式算力调度系统 | |
CN117130888A (zh) | 基于历史数据和机器学习的服务器自动调优方法及系统 | |
CN112580816A (zh) | 机器学习训练资源管理 | |
US9367439B2 (en) | Physical memory usage prediction | |
CN117093335A (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 |