CN116795547A - 资源分配方法、装置及计算机可读存储介质 - Google Patents
资源分配方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116795547A CN116795547A CN202310739325.0A CN202310739325A CN116795547A CN 116795547 A CN116795547 A CN 116795547A CN 202310739325 A CN202310739325 A CN 202310739325A CN 116795547 A CN116795547 A CN 116795547A
- Authority
- CN
- China
- Prior art keywords
- data
- resource
- computing
- application
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000013468 resource allocation Methods 0.000 title claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 48
- 210000002569 neuron Anatomy 0.000 claims description 13
- 238000012549 training Methods 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种资源分配方法、装置及计算机可读存储介质,可用于大数据领域。该方法包括:获取第一应用在多个时段内产生的数据量的第一平均值;将第一平均值、理想计算时长以及第一惩罚值输入至资源预测模型,得到第一平均值的第一计算资源,第一惩罚值为0,理想计算时长是基于业务需求确定的;在冷启动时,为第一应用分配第一计算资源。本申请的方法,可以在冷启动时,为不同应用合理的分配计算资源,提高了资源利用率。
Description
技术领域
本申请涉及大数据领域,尤其涉及一种资源分配方法、装置及计算机可读存储介质。
背景技术
在大数据时代,面对大量的复杂数据,对数据进行实时地处理和分析,从而快速响应数据变化、挖掘数据信息尤为重要。示例性地,企业可以通过对流数据的处理加工,以快速响应客户需求,进而提升企业的效率和竞争力。Spark Streaming作为一个高效的流处理引擎,提供了高可靠性、高吞吐量和低延迟的实时数据处理能力,从而得到了广泛的应用。
但是,Spark Streaming提供的动态资源分配机制,只能支持程序启动之后计算资源的自动化调整。而程序冷启动时,同样需要为不同的应用分配用于处理应用产生的数据所需要的计算资源。但是,目前程序冷启动时,服务器为不同应用分配的资源是随机的,这种分配方式可能出现为数据量较大的应用分配了较少的计算资源,导致处理任务堆积,或者是为数据量较小的应用分配了较多的计算资源,降低了资源的利用率。
因此,亟需一种可以为多个应用合理分配资源的技术方案。
发明内容
本申请提供一种资源分配方法、装置及计算机可读存储介质,以期解决冷启动时,为多个应用合理分配资源的问题。
第一方面,本申请提供一种资源分配方法,包括:获取第一应用在多个时段内产生的数据量的第一平均值;将所述第一平均值、理想计算时长以及第一惩罚值输入至资源预测模型,得到所述第一平均值的第一计算资源,所述第一惩罚值为0,所述理想计算时长是基于业务需求确定的;在冷启动时,为所述第一应用分配所述第一计算资源。
本申请提供的方法通过将第一应用在一段时间产生的数据量的平均值和理想计算计算时长输入至资源预测模型中,得到第一应用对应的计算资源,从而可以在程序冷启动时,为第一应用分配用于处理第一应用产生的数据的第一计算资源。该方法可以在程序冷启动时,为不同的应用合理地分配计算资源,相比于目前冷启动时,为不同应用随机分配资源的方式,可以使得分配到各个应用的计算资源得以充分利用,有利于提高资源利用率。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:获取多组数据,所述多组数据中的每组数据包括同一应用产生的数据量,计算资源的真实值,计算时长以及所述计算时长对应的惩罚值;其中,所述计算资源为用于处理所述数据量的资源,所述计算时长为在所述计算资源上处理所述数据量时所需要的时长;根据所述多组数据训练预设模型,得到所述资源预测模型。
结合第一方面,在第一方面的某些实现方式中,所述每组数据中的计算时长对应的惩罚值Dist(Ti,Tmin,Tmax)满足:
其中,Ti为所述计算时长,Tmin为预定义的计算时长的下限值,Tmax为预定义的计算时长的上限值,所述上限值和所述下限值是基于业务需求确定的。
结合第一方面,在第一方面的某些实现方式中,所述理想计算时长为所述上限值和所述下限值的均值。
结合第一方面,在第一方面的某些实现方式中,所述根据所述多组数据训练预设模型,得到所述资源预测模型,包括:分别将所述多组数据中每组数据中的数据量、计算时长以及所述计算时长对应的惩罚值输入至所述预设模型中,以对所述预设模型进行训练,得到所述资源预测模型。
结合第一方面,在第一方面的某些实现方式中,所述获取多组数据,包括:获取与多个应用对应的多个数据量,每个数据量是所对应的应用在一段时间内产生的数据量,且所述多个数据量中包括至少两个不同量级的数据量;对所述多个数据量进行排序,确定最大数据量、最小数据量以及中位数数据量;在预启动时,基于Spark Streaming的动态资源分配机制,分别确定所述最大数据量的多个数据量分别对应的计算资源和计算时长,所述最小数据量的多个数据量分别对应的计算资源和计算时长,以及所述中位数数据量的多个数据量分别对应的计算资源和计算时长;其中,所述多个数据量中的每个数据量是指应用在一个预设时间单元内的产生的数据量;基于每个数据量对应的计算时长,确定所述计算时长对应的惩罚值。
结合第一方面,在第一方面的某些实现方式中,所述预设模型包括输入层,隐藏层和输出层,所述输入层包括三个神经元。
上述三个神经元指示该预设模型包括三个输入,三个输入中包括计算时长的惩罚值,增加该输入可以提高训练预设模型的准确的,以得到预测准确性较高的资源预测模型。
可选地,所述隐藏层包括两层神经元。其中,第一层包括六个神经元,第二层包括四个神经元。
可选地,所述输出层包括一个神经元。
第二方面,本申请提供一种资源分配装置,包括:获取模块和处理模块。
示例性地,获取模块用于:获取第一应用在第一时段内产生的数据量的第一平均值;处理模块用于:将所述第一平均值、理想计算时长以及第一惩罚值输入至资源预测模型,得到所述第一平均值的第一计算资源,所述第一惩罚值为0;以及在冷启动时,为所述第一应用分配所述第一计算资源。
结合第二方面,在第二方面的某些实现方式中,获取模块还用于:获取多组数据,所述多组数据中的每组数据包括同一应用产生的数据量,计算资源的真实值,计算时长以及所述计算时长对应的惩罚值;其中,所述计算资源为用于处理所述数据量的资源,所述计算时长为在所述计算资源上处理所述数据量时所需要的时长;处理模块还用于:根据所述多组数据训练预设模型,得到所述资源预测模型。
结合第二方面,在第二方面的某些实现方式中,所述每组数据中的计算时长对应的惩罚值Dist(Ti,Tmin,Tmax)满足:
其中,Ti为所述计算时长,Tmin为预定义的计算时长的下限值,Tmax为预定义的计算时长的上限值,所述上限值和所述下限值是基于业务需求确定的。
结合第二方面,在第二方面的某些实现方式中,所述理想计算时长为所述上限值和所述下限值的均值。
结合第二方面,在第二方面的某些实现方式中,处理模块具体用于:分别将所述多组数据中每组数据中的数据量、计算时长以及所述计算时长对应的惩罚值输入至所述预设模型中,以对所述预设模型进行训练,得到所述资源预测模型。
结合第二方面,在第二方面的某些实现方式中,获取模块具体用于:获取与多个应用对应的多个数据量,每个数据量是所对应的应用在一段时间内产生的数据量,且所述多个数据量中包括至少两个不同量级的数据量;处理模块还用于:对所述多个数据量进行排序,确定最大数据量、最小数据量以及中位数数据量;在预启动时,基于Spark Streaming的动态资源分配机制,分别确定所述最大数据量的多个数据量分别对应的计算资源和计算时长,所述最小数据量的多个数据量分别对应的计算资源和计算时长,以及所述中位数数据量的多个数据量分别对应的计算资源和计算时长;其中,所述多个数据量中的每个数据量是指应用在一个预设时间单元内的产生的数据量;以及,基于每个数据量对应的计算时长,确定所述计算时长对应的惩罚值。
结合第二方面,在第二方面的某些实现方式中,所述预设模型包括输入层,隐藏层和输出层,所述输入层包括三个神经元。
第三方面,本申请提供另一种资源分配装置,包括处理器,所述处理器用于执行第一方面以及第一方面中任一种可能实现方式中所述的方法。
所述装置还可以包括存储器,用于存储指令和数据。所述存储器与所述处理器耦合,所述处理器执行所述存储器中存储的指令时,可以实现上述各方面中描述的方法。
所述装置还可以包括通信接口,所述通信接口用于该装置与其它设备进行通信,示例性地,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
第四方面,本申请提供一种芯片系统,该芯片系统包括至少一个处理器,用于支持实现上述第一方面以及第一方面中任一种可能实现方式中所涉及的功能。
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第五方面,本申请提供一种计算机可读存储介质,包括计算机程序,当其在计算机上运行时,使得计算机实现第一方面以及第一方面中任一种可能实现方式中的方法。
第六方面,本申请提供一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行第一方面以及以及第一方面中任一种可能实现方式中的方法。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请提供的资源分配方法的示意性流程图;
图2是一种预设模型的结构示意图;
图3是本申请提供的一种资源分配装置的示意性框图;
图4是本申请提供的另一资源分配装置的示意性框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
在介绍本申请实施例之前,先做出以下几点说明。
第一,在下文示出的实施例中,各术语及英文缩略语,如计算资源、计算时长、惩罚值等,均为方便描述而给出的示例性举例,不应对本申请构成任何限定。本申请并不排除已有或未来定义其它能够实现相同或相似功能的术语的可能。
第二,在下文示出的实施例中,“第一”、“第二”等前缀字样的使用仅仅为了便于对归属于同一个名称类别下的不同事物进行区分描述,不对事物的次序、大小或者数量进行约束。例如,“第一应用”和“第二应用”仅仅为不同的应用,二者没有时间先后关系、大小关系或优先级高低关系。
第三,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
在大数据时代,面对大量的复杂数据,对数据进行实时的处理和分析,从而快速响应数据变化、挖掘数据信息尤为重要。示例性地,企业可以通过对流数据的处理加工,以快速响应客户需求,进而提升企业的效率和竞争力。Spark Streaming作为一个高效的流处理引擎,提供了高可靠性、高吞吐量和低延迟的实时数据处理能力,从而得到了广泛的应用。
应理解,在对数据进行处理和分析时,服务器需要为数据分配合理的计算资源,以提高数据的处理和分析效率。但由于不同的应用、不同的用户需求不同,因此产生的数据量也不同。目前,Spark Streaming提供的动态资源分配机制,只能支持程序启动之后计算资源的自动化调整。而在实际应用中程序冷启动时,如何为不同应用合理的分配计算资源也至关重要。例如,当应用产生的数据量达到太字节(terabyte,TB)级,甚至拍字节(petabyte,PB)级别之后,冷启动的资源分配策略将极大影响集群资源的使用情况。
目前,程序冷启动时,服务器为不同的应用分配的资源是随机的。这种分配方式可能出现为数据量较大的应用分配了较少的计算资源,导致处理任务堆积,或者是为数据量较小的应用分配了较多的计算资源,降低了资源的利用率。即,在冷启动时,若无法精确预估不同应用所需要资源量,可能会出现分配的计算资源过多,降低集群资源的利用率;或者是出现分配的计算资源占用较少,导致任务堆积,影响正常的生产加工。其中,冷启动是指在程序启动之前未收到过任何数据。
有鉴于此,本申请实施例提供了一种资源分配方法、装置及计算机可读存储介质。该方法中,通过预测用于处理不同应用产生的数据量所需要的计算资源,并将针对不同应用预测的计算资源作为程序冷启动时为对应的应用所分配的资源。这种方法相比于目前冷启动时,为不同应用随机分配资源的方式,可以使得分配到各个应用的计算资源得以充分利用,有利于提高资源利用率。
下面结合图1,对本申请实施例提供的资源分配方法100进行详细说明。本申请实施例的方法可以由服务器执行,也可以由服务器中的芯片执行,本申请实施例对此不作限定。
图1是本申请实施例提供的一种资源分配方法100的示意性流程图。该方法100可以包括S101至S103。下面详细描述图1所示的各步骤。
S101,获取第一应用在多个时段内产生的数据量的第一平均值。
其中,多个时段的时长相同,该时长可以是预定义的。
示例性地,获取第一应用在时段1产生的数据量1,获取第一应用在时段2产生的数据量2,该时段1和时段2的时长均为第一时长;那么第一应用对应的第一平均值为第一应用在第一时长产生的数据量,即第一平均值满足:第一平均值=(数据量1+数据量2)/2。
S102,将第一平均值、理想计算时长以及第一惩罚值输入至资源预测模型,得到第一平均值的第一计算资源。
其中,理想计算时长是基于业务需求确定的,第一惩罚值为0。
上述理想计算时长可以理解为处理上述第一平均值对应的数据量时,所期望的计算时长,该计算时长也可以称为处理时长,执行时长或加工时长等。
上述第一计算资源可以理解为用于处理第一平均值对应的数据量时,所需要的计算资源,该计算资源也可以称为处理资源,或加工资源等。
S103,在冷启动时,为第一应用分配第一计算资源。以使得第一应用产生的数据在第一计算资源上进行处理。
关于冷启动的描述可参照前文的相关描述,此处不再赘述。
应理解,上述第一应用可以是多个应用中的一个。在程序冷启动时,若存在多个应用,服务器为多个应用中的每个应用分配的计算资源均可按照上述S101和S102所示的方法确定。例如,获取第二应用在第二时段内产生的数据量的第二平均值;将第二平均值、理想计算时长以及第一惩罚值输入至资源预测模型,得到第二平均值的第二计算资源。其中,第二时段与第一时段可以相同也可以不同。
本申请实施例中,通过将第一应用在一段时间产生的数据量的平均值和理想计算计算时长输入至资源预测模型中,得到第一应用对应的计算资源,从而可以在程序冷启动时,为第一应用分配用于处理第一应用产生的数据的第一计算资源。该方法可以在程序冷启动时,为不同的应用合理地分配计算资源,相比于目前冷启动时,为不同应用随机分配资源的方式,可以使得分配到各个应用的计算资源得以充分利用,有利于提高资源利用率。
可选地,在S101之前,该方法100还包括:获取多组数据;并根据多组数据训练预设模型,得到资源预测模型。
上述多组数据中的每组数据包括同一应用产生的数据量,计算资源的真实值,计算时长以及计算时长对应的惩罚值。其中,计算资源为用于处理数据量的资源,计算时长为在计算资源上处理数据量时所需要的时长。
应理解,本申请可以将同一应用在一段时长内产生的数据量按照预设时长分为多组数据量。示例性地,一段时长为3天,预设时长为1天,则应用A可以对应3组数据,即将应用A在3天内的每一天产生的数据量,以及该数据量对应的计算时长、计算资源,计算时长对应的惩罚值作为一组数据。
示例性地,上述获取多组数据可以包括如下步骤一至步骤四。
步骤一,获取与多个应用对应的多个数据量。该多个数据量中包括至少两个不同量级的数据量。
应理解,上述多个数据量中的每个数据量是所对应的应用在一段时间内产生的数据量。即,多个应用与多个数据量一一对应。
还应理解,多个数据量可以是多个应用在相同时段或者不同时段产生的数据量。
步骤二,对多个数据量进行排序,确定最大数据量、最小数据量以及中位数数据量。
示例性地,可以对多个数据量按照从小到大或是从大到小的顺序进行排列,得到第一顺序下的多个数据量。若多个数据量的数量为偶数时,中位数数据量可以是第一顺序下的多个数据量中位于中间的两个数据量。
步骤三,在预启动时,基于Spark Streaming的动态资源分配机制,分别确定最大数据量的多个数据量分别对应的计算资源和计算时长,最小数据量的多个数据量分别对应的计算资源和计算时长,以及中位数数据量的多个数据量分别对应的计算资源和计算时长。
本申请中由于选取的数据量级差异较大,因而数据具有代表性;同时计算资源也可以动态调整,因此这样获取的数据样本具有多样性。
下面详细介绍Spark Streaming动态资源分配机制。
1、调整策略。
Spark Streaming加工会经过一段时间间隔(batch interval),启动一个批次的数据加工。每个批次的加工资源单元为executor,一个executor对应一个工作节点上的进程。当任务积压时增大executor数量;在任务处理有空余时逐个释放executor。
其中,任务积压或空闲情况的判定依据为:每隔一段时间,计算数据批加工时长与加工时间间隔的比值,该比值如果在一个合理范围内,executor维持现状;反之,需要进行对应的executor增删操作。
2、参数配置。
在启动Spark Streaming程序时,需要进行三种类型的参数配置:
第一种类型,开关设置:开启Streaming任务、开启动态资源分配和动态资源分配依赖(shuffle service)。例如:
spark.streaming.dynamicAllocation.enabled=true;
spark.shuffle.service.enabled=true。
第二种类型,executor数量限制:设定最小executor个数,最大executor个数以及初始executor个数。例如,
spark.streaming.dynamicAllocation.minExecutors=XX;
spark.streaming.dynamicAllocation.maxExecutors=XX;
spark.executor.instances=XX。
需要说明的是,在实际应用中,一般设置最小值为2(即最小executor个数为2)。由于加工冷启动时,无法很好预估资源,一般会设置一个较大的资源上线(即最大executor个数)和一个经验值的初始资源(初始executor个数)。
第三种类型,调整依据设置。每隔一段时间来核验是否需要调整executor个数。例如:
spark.streaming.dynamicAllocation.scalingInterval=XXs;
spark.streaming.dynamicAllocation.scalingDownRatio=XX;
spark.streaming.dynamicAllocation.scalingUpRatio=XX。
示例性地,调整executor的时间间隔建议设置为batch interval的2至3倍,而批数据执行时间与batch interval之间的比例设置,按照业务需求的计算时间范围进行设置。当比例大于上限则扩容,小于下限则缩容。
步骤四,基于每个数据量对应的计算时长,确定计算时长对应的惩罚值。
示例性地,每个计算时长对应的惩罚值Dist(Ti,Tmin,Tmax)满足:
其中,Ti为计算时长,Tmin为预定义的计算时长的下限值,Tmax为预定义的计算时长的上限值,上限值和下限值是基于业务需求确定的。
应理解,在确定每个计算时长对应的惩罚值之后,可以得到每个数据量对应的一个计算资源,一个计算时长以及一个惩罚值。上述每个计算时长对应的惩罚值也可以称为多组数据中每组数据包括的计算时长对应的惩罚值。
示例性地,一个数据组中包括的计算时长的取值为Ti时,若Tmin≤Ti≤Tmax,则该计算时长对应的惩罚值的取值为0;若Ti≥Tmax,则该计算时长对应的惩罚值的取值为Ti-Tmax;若Ti≤Tmin时,则该计算时长对应的惩罚值的取值为Tmin-Ti。
示例性地,上述根据多组数据训练预设模型,得到资源预测模型,可以包括:分别将多组数据中每组数据中的数据量、计算时长以及计算时长对应的惩罚值输入至预设模型中,以对预设模型进行训练,得到资源预测模型。
其中,预设模型为一个双隐层前馈网络,具体的网络结构如图2所示。在图2所示的网络结构中包括一层输入层,两层隐藏层,一层输出层。其中,输入层包括三个神经元,分别用于输入数据量、计算时长以及惩罚值;输出层包括一个神经元,用于输出计算资源的预测值;在输入层和输出层之间,包括两层隐藏层,第一层包括六个神经元,第二层包括四个神经元。
示例性地,在训练过程中,将每组数据中的数据量、计算时长以及计算时长对应的惩罚值输入至预设模型中,可以得到计算资源的预测值;再计算该计算资源的预测值和该组数据中包括的计算资源的真实值之间的均方误差(mean-square error,MSE);并将均方误差作为损失函数,通过最小化损失函数,采用反向传播算法计算预设模型中的模型参数。
本申请在获取训练数据时,采用了现有冷启动时资源的分配方式,因此得到的训练数据样本中包括的计算时长可能过长或过短,本申请通过在模型训练的过程中,增加计算时长对应的惩罚值的输入,这样可以提高模型训练结果的准确性,从而使得基于该模型预测的计算资源更准确。
应理解,当上述损失函数收敛时,则完成模型训练,得到上述资源预测模型。
示例性地,上述MSE满足:
其中,Ei,为计算资源的真实值,Ei为计算资源的预测值,n为多组数据的数量,例如,10组数据,则n=10。
示例性地,上述理想计算时长为预定义的计算时长的上限值和下限值的均值。即,理想计算时长T满足:
T=(Tmin+Tmax)/2。
关于Tmin和Tmax的描述可参照前文描述,此处不再赘述。
由于理想计算时长是基于业务续期确定的,所以一定是在预定义的计算时长的上限值和下限值之间,因此上述理想计算时长对应的第一惩罚值为0。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文中结合图1和图2,详细描述了本申请实施例的方法,下面将结合图3和图4,详细描述本申请实施例的装置。
图3示出了本申请实施例提供的一种资源分配装置300,该装置300包括:获取模块310和处理模块320。
其中,获取模块310用于:获取第一应用在多个时段内产生的数据量的第一平均值;处理模块320用于:将所述第一平均值、理想计算时长以及第一惩罚值输入至资源预测模型,得到所述第一平均值的第一计算资源,所述第一惩罚值为0;以及在冷启动时,为所述第一应用分配所述第一计算资源。
可选地,获取模块310还用于:获取多组数据,所述多组数据中的每组数据包括同一应用产生的数据量,计算资源的真实值,计算时长以及所述计算时长对应的惩罚值;其中,所述计算资源为用于处理所述数据量的资源,所述计算时长为在所述计算资源上处理所述数据量时所需要的时长;处理模块320还用于:根据所述多组数据训练预设模型,得到所述资源预测模型。
可选地,所述每组数据中的计算时长对应的惩罚值Dist(Ti,Tmin,Tmax)满足:
其中,Ti为所述计算时长,Tmin为预定义的计算时长的下限值,Tmax为预定义的计算时长的上限值,所述上限值和下限值是基于业务需求确定的。
可选地,所述理想计算时长为所述上限值和所述下限值的均值。
可选地,处理模块320具体用于:分别将所述多组数据中每组数据中的数据量、计算时长以及所述计算时长对应的惩罚值输入至所述预设模型中,以对所述预设模型进行训练,得到所述资源预测模型。
可选地,获取模块310具体用于:获取与多个应用对应的多个数据量,每个数据量是所对应的应用在一段时间内产生的数据量,且所述多个数据量中包括至少两个不同量级的数据量;处理模块320还用于:对所述多个数据量进行排序,确定最大数据量、最小数据量以及中位数数据量;在预启动时,基于Spark Streaming的动态资源分配机制,分别确定所述最大数据量的多个数据量分别对应的计算资源和计算时长,所述最小数据量的多个数据量分别对应的计算资源和计算时长,以及所述中位数数据量的多个数据量分别对应的计算资源和计算时长;其中,所述多个数据量中的每个数据量是指应用在一个预设时间单元内的产生的数据量;以及,基于每个数据量对应的计算时长,确定所述计算时长对应的惩罚值。
可选地,所述预设模型包括输入层,隐藏层和输出层,所述输入层包括三个神经元。
应理解,这里的装置300以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置300可以具体为上述实施例中的服务器,或者,上述实施例中服务器的功能可以集成在装置300中,装置300可以用于执行上述方法实施例中与服务器对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述装置300具有实现上述方法中服务器执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。例如,上述获取模块310可以为通信接口,例如收发接口。
在本申请的实施例,图3中的装置300也可以是芯片或者芯片系统,例如:片上系统(system on chip,SoC)。对应的,获取模块310可以是该芯片的收发电路,在此不做限定。
图4示出了本申请实施例提供的另一资源分配装置400。该装置400包括处理器410、通信接口420和存储器430。
其中,处理器410、通信接口420和存储器430通过内部连接通路互相通信,该存储器430用于存储指令,该处理器410用于执行该存储器430存储的指令,以控制该通信接口420获取数据。
应理解,装置400可以用于执行上述方法实施例中与服务器对应的各个步骤和/或流程。可选地,该存储器430可以包括只读存储器和随机存取存储器,并向处理器410提供指令和数据。存储器430的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器410可以用于执行存储器中存储的指令,并且该处理器410执行该指令时,该处理器410可以执行上述方法实施例中与服务器对应的各个步骤和/或流程。
应理解,在本申请实施例中,该处理器可以是中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现前述实施例所述的方法。
本申请实施例提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述实施例所述的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种资源分配方法,其特征在于,包括:
获取第一应用在多个时段内产生的数据量的第一平均值;
将所述第一平均值、理想计算时长以及第一惩罚值输入至资源预测模型,得到所述第一平均值的第一计算资源,所述第一惩罚值为0,所述理想计算时长是基于业务需求确定的;
在冷启动时,为所述第一应用分配所述第一计算资源。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取多组数据,所述多组数据中的每组数据包括同一应用产生的数据量,计算资源的真实值,计算时长以及所述计算时长对应的惩罚值;其中,所述计算资源为用于处理所述数据量的资源,所述计算时长为在所述计算资源上处理所述数据量所需要的时长;
根据所述多组数据训练预设模型,得到所述资源预测模型。
3.根据权利要求2所述的方法,其特征在于,所述每组数据中的计算时长对应的惩罚值Dist(Ti,Tmin,Tmax)满足:
0,Tmin≤Ti≤Tmax
Dist(Ti,Tmin,Tmax)={Ti-Tmax,Ti≥Tmax;
Tmin-Ti,Ti≤Tmin
其中,Ti为所述计算时长,Tmin为预定义的计算时长的下限值,Tmax为预定义的计算时长的上限值,所述上限值和所述下限值是基于业务需求确定的。
4.根据权利要求3所述的方法,其特征在于,所述理想计算时长为所述上限值和所述下限值的均值。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述根据所述多组数据训练预设模型,得到所述资源预测模型,包括:
分别将所述多组数据中每组数据中的数据量、计算时长以及所述计算时长对应的惩罚值输入至所述预设模型中,以对所述预设模型进行训练,得到所述资源预测模型。
6.根据权利要求2所述的方法,其特征在于,所述获取多组数据,包括:
获取与多个应用对应的多个数据量,每个数据量是所对应的应用在一段时间内产生的数据量,且所述多个数据量中包括至少两个不同量级的数据量;
对所述多个数据量进行排序,确定最大数据量、最小数据量以及中位数数据量;
在预启动时,基于Spark Streaming的动态资源分配机制,分别确定所述最大数据量的多个数据量分别对应的计算资源和计算时长,所述最小数据量的多个数据量分别对应的计算资源和计算时长,以及所述中位数数据量的多个数据量分别对应的计算资源和计算时长;其中,所述多个数据量中的每个数据量是指应用在一个预设时间单元内的产生的数据量;
基于每个数据量对应的计算时长,确定所述计算时长对应的惩罚值。
7.根据权利要求2所述的方法,其特征在于,所述预设模型包括输入层,隐藏层和输出层,所述输入层包括三个神经元。
8.一种资源分配装置,其特征在于,包括:
获取模块,用于获取第一应用在第一时段内产生的数据量的第一平均值;
处理模块,用于将所述第一平均值、理想计算时长以及第一惩罚值输入至资源预测模型,得到所述第一平均值的第一计算资源,所述第一惩罚值为0;以及在冷启动时,为所述第一应用分配所述第一计算资源。
9.一种资源分配装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得所述装置执行权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310739325.0A CN116795547A (zh) | 2023-06-20 | 2023-06-20 | 资源分配方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310739325.0A CN116795547A (zh) | 2023-06-20 | 2023-06-20 | 资源分配方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795547A true CN116795547A (zh) | 2023-09-22 |
Family
ID=88039758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310739325.0A Pending CN116795547A (zh) | 2023-06-20 | 2023-06-20 | 资源分配方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116795547A (zh) |
-
2023
- 2023-06-20 CN CN202310739325.0A patent/CN116795547A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107688492B (zh) | 资源的控制方法、装置和集群资源管理系统 | |
CN108845874B (zh) | 资源的动态分配方法及服务器 | |
CN107579926A (zh) | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
US20110161978A1 (en) | Job allocation method and apparatus for a multi-core system | |
CN111258745B (zh) | 一种任务处理方法及设备 | |
US8627325B2 (en) | Scheduling memory usage of a workload | |
CN109799956B (zh) | 一种存储控制器及io请求处理方法 | |
CN114265679A (zh) | 数据处理方法、装置和服务器 | |
CN105045667B (zh) | 一种用于虚拟机vCPU调度的资源池管理方法 | |
CN110780991B (zh) | 一种基于优先级的深度学习任务调度方法及装置 | |
CN116627870A (zh) | 动态优先级加权轮询仲裁方法和仲裁器 | |
US7574547B1 (en) | Ring counter based starvation free weighted priority encoded arbiter | |
CN112650566B (zh) | 定时任务处理方法、装置、计算机设备和存储介质 | |
CN112148471A (zh) | 分布式计算系统中资源调度的方法和装置 | |
US8108871B2 (en) | Controlling computer resource utilization | |
CN116795547A (zh) | 资源分配方法、装置及计算机可读存储介质 | |
CN116775237A (zh) | 任务调度方法、装置、网络设备及存储介质 | |
CN114489463B (zh) | 动态调整存储卷qos的方法、装置及计算设备 | |
EP3550421B1 (en) | Storage controller and io request processing method | |
CN115202842A (zh) | 任务调度方法及装置 | |
US10180858B2 (en) | Parallel computing device, parallel computing system, and job control method | |
CN104750640B (zh) | 在多个通道之间仲裁以存取一资源的方法和装置 | |
CN109062707B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN113626162A (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 |