1.本技术属于计算机技术领域,具体涉及一种系统资源调节方法、装置、设备及存储介质。
背景技术:
2.在大数据领域存在很多离线任务,这些任务通常每天运行一次或两次等,这些离线任务主要是做一些业务统计分析。在上线这些任务之前通常由大数据工程师根据自己的经验估测任务上线后所需处理的数据量和计算复杂度,基于估测的数据量和计算复杂度确定任务对应的系统资源(包括的cpu资源和内存资源等)。然后在上线时为该任务分配确定的系统资源,之后基于分配的系统资源运行该任务。
3.但依赖大数据工程师的经验为任务分配系统资源,准确性很低,分配资源过多会造成资源浪费,分配资源过少会导致任务运行缓慢甚至运行失败。且任务上线后无法修改任务的系统资源,需要下次发布新版本时才能修改,灵活性很差。任务上线后可能会发生业务急速增长的情况,在这种情况下仍按原来配置的系统资源运行,无法与快速增长的业务适配,极大地影响业务功能。
技术实现要素:
4.本技术提出一种系统资源调节方法、装置、设备及存储介质,获取测试时任务的运行数据,依据获取的运行数据,预估任务上线所需的系统资源配额,基于预估的系统资源配额上线任务,无需依赖工程师的个人经验,不仅节省了人力成本,还提高了分配系统资源的准确性,分配的系统资源更加符合任务需求,减少因分配不准确导致资源浪费或资源不足的情况。任务上线后自动依据任务的运行数据进行系统资源配额的调整,使系统资源调节具有实时性,有很强的应变能力,即便业务的数据量快速增长,也能够灵活调节任务所需的系统资源大小。
5.本技术第一方面实施例提出了一种系统资源调节方法,包括:
6.获取待发布任务的生产处理数据量和多次测试所述待发布任务产生的测试运行数据,所述测试运行数据包括所述待发布任务在测试过程中的系统资源使用信息和测试处理数据量;
7.根据所述生产处理数据量和多个所述测试运行数据,确定所述待发布任务上线运行所需的系统资源配额;
8.根据确定的所述系统资源配额,将所述待发布任务发布到生产大数据平台;
9.周期性地获取目标任务的生产运行数据,所述生产运行数据包括所述目标任务在当前周期内实际运行过程中的系统资源使用信息和实际处理数据量;
10.根据当前周期所述目标任务的生产运行数据,确定是否需要调整下一周期所述目标任务的系统资源配额;
11.若确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和
确定的调整幅度,调整下一周期所述目标任务的系统资源配额。
12.在本技术的一些实施例中,获取多次测试所述待发布任务产生的测试运行数据,包括:
13.根据所述待发布任务的任务标识,从测试大数据平台分别获取每次测试所述待发布任务产生的测试日志;
14.从每次测试产生的测试日志中,分别获取每次测试所述待发布任务的测试运行数据,所述测试运行数据中所述待发布任务在测试过程中的系统资源使用信息包括在测试过程中为所述待发布任务分配的cpu配额、内存配额以及所述待发布任务运行实际占用的cpu使用量和内存使用量。
15.在本技术的一些实施例中,所述根据所述生产处理数据量和多个所述测试运行数据,确定所述待发布任务上线运行所需的系统资源配额,包括:
16.根据所述待发布任务对应的每个测试运行数据包括的测试处理数据量及系统资源使用信息,拟合数据量与系统资源之间的线性函数,拟合的线性函数包括数据量与cpu使用量之间的线性函数和数据量与内存使用量之间的线性函数;
17.根据所述待发布任务对应的所述生产处理数据量,利用数据量与系统资源之间的线性函数,计算出所述待发布任务上线所需的系统资源配额,所述系统资源配额包括cpu配额和内存配额。
18.在本技术的一些实施例中,所述获取目标任务的生产运行数据,包括:
19.根据所述目标任务的任务标识,从所述生产大数据平台获取当前周期内所述目标任务运行产生的生产日志;
20.从所述生产日志中获取所述目标任务的生产运行数据,所述生产运行数据中的系统资源使用信息包括在实际运行过程中为目标任务分配的cpu配额、内存配额以及在实际运行过程中目标任务实际占用的cpu使用量和内存使用量。
21.在本技术的一些实施例中,所述根据当前周期所述目标任务的生产运行数据,确定是否需要调整下一周期所述目标任务的系统资源配额,包括
22.根据所述生产运行数据包括的当前周期为所述目标任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;
23.判断计算出的系统资源使用率是否位于预设的系统资源区间;
24.如果是,则确定不需要调整下一周期的系统资源配额;
25.如果否,则确定需要调整下一周期的系统资源配额。
26.在本技术的一些实施例中,所述方法还包括:
27.对发布到生产大数据平台的每个任务进行实时监测,若监测到目标任务运行失败;
28.则确定运行失败的所述目标任务在运行过程中的系统资源配额是否与实际处理数据量不匹配;
29.如果是,则获取所述目标任务的历史运行数据,根据所述历史运行数据,重新确定所述目标任务的系统资源配额;
30.根据重新确定的系统资源配额,重新启动运行失败的所述目标任务。
31.在本技术的一些实施例中,所述方法还包括:
32.获取当前测试所述待发布任务过程中产生的测试运行数据;
33.根据当前的所述测试运行数据包括的为待发布任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;所述系统资源使用率包括cpu使用率和内存使用率;
34.若计算出的系统资源使用率位于预设的系统资源区间,则确定不需要对所述待发布任务测试过程中的系统资源配额进行调整;
35.若计算出的系统资源使用率不位于所述预设的系统资源区间,则确定调整幅度,根据所述调整幅度调整下一次测试所述待发布任务时的系统资源配额。
36.本技术第二方面的实施例提供了一种系统资源调节装置,包括:
37.获取模块,用于获取待发布任务的生产处理数据量和多次测试所述待发布任务产生的测试运行数据,所述测试运行数据包括所述待发布任务在测试过程中的系统资源使用信息和测试处理数据量;
38.确定模块,用于根据所述生产处理数据量和多个所述测试运行数据,确定所述待发布任务上线运行所需的系统资源配额;
39.任务发布模块,用于根据确定的所述系统资源配额,将所述待发布任务发布到生产大数据平台;
40.所述获取模块,用于周期性地获取目标任务的生产运行数据,所述生产运行数据包括所述目标任务在当前周期内实际运行过程中的系统资源使用信息和实际处理数据量;
41.所述确定模块,用于根据当前周期所述目标任务的生产运行数据,确定是否需要调整下一周期所述目标任务的系统资源配额;
42.调整模块,用于若所述确定模块确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和确定的调整幅度,调整下一周期所述目标任务的系统资源配额。
43.本技术第三方面的实施例提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述第一方面所述的方法的步骤。
44.本技术第四方面的实施例提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述第一方面所述的方法的步骤。
45.本技术实施例中提供的技术方案,至少具有如下技术效果或优点:
46.在本技术实施例中,获取测试时任务的运行数据,依据获取的运行数据,预估任务上线所需的系统资源配额,基于预估的系统资源配额上线任务,无需依赖工程师的个人经验,不仅节省了人力成本,还提高了分配系统资源的准确性,分配的系统资源更加符合任务需求,减少因分配不准确导致资源浪费或资源不足的情况。任务上线后自动依据任务的运行数据进行系统资源配额的调整,使系统资源调节具有实时性,有很强的应变能力,即便业务的数据量快速增长,也能够灵活调节任务所需的系统资源大小。能在数据量突然增多后,及时增加计算资源,避免任务运行失败。即便任务运行失败,也能够依据任务的历史运行数据重新确定合理的系统资源配额,然后自动重新启动运行失败的任务。而且还能够对测试过程中任务的系统资源配额进行自动调整,能够使测试的每个任务分配的系统资源更加合
理,避免出现资源浪费或资源不足的情况。使得整个测试大数据平台在满足任务能有足够资源完成测试的同时减少资源的浪费,节约成本。
47.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本技术的实践了解到。
附图说明
48.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。
49.在附图中:
50.图1示出了本技术一实施例所提供的一种系统资源调节方法的流程图;
51.图2示出了本技术一实施例所提供的一种系统资源调节装置的结构示意图;
52.图3示出了本技术一实施例所提供的一种计算机设备的结构示意图;
53.图4示出了本技术一实施例所提供的一种存储介质的示意图。
具体实施方式
54.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
55.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
56.本技术的一些实施例提供了一种系统资源调节方法,参见图1,该方法具体包括以下步骤:
57.步骤101:获取待发布任务的生产处理数据量和多次测试待发布任务产生的测试运行数据,该测试运行数据包括待发布任务在测试过程中的系统资源使用信息和测试处理数据量。
58.待发布任务为未发布到线上的生产大数据平台的任务。在测试大数据平台对待发布任务进行多次测试,测试次数可以为3次或5次等。本技术实施例并不限制对待发布任务进行测试的次数,实际应用中可根据需求来确定。
59.根据待发布任务的任务标识,从测试大数据平台分别获取每次测试待发布任务产生的测试日志。从每次测试产生的测试日志中分别获取每次测试待发布任务的测试运行数据,该测试运行数据至少包括待发布任务在测试过程中的系统资源使用信息和测试处理数据量。
60.其中,系统资源使用信息包括在测试过程中待发布任务使用的cpu配额和内存配额,以及在测试过程中待发布任务运行实际占用的cpu使用量和内存使用量。测试处理数据量为测试过程中待发布任务所处理的数据量。
61.如表1所示,获取了n个待发布任务的测试运行数据。其中,任务标识是指不同任务的编号,第n个任务用t-taskn表示。cpu实际使用/核是指测试环境中待发布任务对应的实际消耗的cpu资源,单位是核,第n个待发布任务的cpu实际使用表示为a-cpun。内存实际使
用/g是指测试环境中待发布任务对应的实际占用的内存资源,单位为gb,第n个待发布任务的内存实际使用表示为a-memn。cpu配额/核是指测试环境中待发布任务启动时申请的cpu资源,单位为核,第n个待发布任务的cpu配额表示为s-cpun。内存配额/核是指测试环境中待发布任务启动时申请的内存资源大小,单位为gb,第n个待发布任务内存配额表示为s-memn。任务处理数据量/g是指测试环境中待发布任务处理了多大的量的数据,单位为gb,第n个待发布任务处理的数据量表示为dn。
62.表1
[0063][0064][0065]
待发布任务的生产处理数据量为待发布任务将来上线实际运行时处理的数据量。待发布任务所需处理的业务是确定的,可以从待发布任务所属业务对应的数据源获取待发布任务的生产处理数据量。
[0066]
如表2所示,生产处理数据量/g是指待发布任务上线后需要处理的数据量,待发布任务n-taskn将要在生产上处理的数据量大小是p-dn。
[0067]
表2
[0068]
任务标识生产处理数据量/gn-task110n-task220n-task315
……
n-tasknp-dn
[0069]
步骤102:根据待发布任务对应的生产处理数据量和多个测试运行数据,确定待发布任务上线运行所需的系统资源配额。
[0070]
根据待发布任务对应的每个测试运行数据包括的测试处理数据量和系统资源使用信息,拟合数据量与系统资源之间的线性函数,拟合的线性函数包括数据量与cpu使用量之间的线性函数和数据量与内存使用量之间的线性函数。
[0071]
具体地,根据每个测试运行数据中的测试处理数据量和系统资源使用信息包括的cpu使用量,拟合数据量与cpu使用量之间的线性函数。根据每个测试运行数据中的测试处理数据量和系统资源使用信息包括的内存使用量,拟合数据量与内存使用量之间的线性函
数。
[0072]
根据待发布任务对应的生产处理数据量,利用数据量与系统资源之间的线性函数,计算出待发布任务上线所需的系统资源配额,系统资源配额包括cpu配额和内存配额。具体地,根据待发布任务对应的生产处理数据量,利用数据量与cpu使用量之间的线性函数,计算出待发布任务上线运行所需的cpu配额。以及,根据待发布任务对应的生产处理数据量,利用数据量与内存使用量之间的线性函数,计算出待发布任务上线运行所需的内存配额。将得到的cpu配额和内存配额确定为待发布任务上线运行所需的系统资源配额。
[0073]
为了便于理解下面举例进行说明。如表3所示,对待发布任务n-task1进行了3次测试,分别处理了1g、2g、4g的数据,这3次测试实际的cpu使用量和内存使用量如表3所示。
[0074]
表3
[0075][0076]
根据表3能够拟合出待发布任务n-task1的数据量与cpu使用量之间的线性函数为xd=y
cpu
,其中xd为数据量,y
cpu
为cpu使用量。拟合出的数据量与内存使用量之间的线性函数为xd=zn,其中xd为数据量,zn为内存使用量。
[0077]
从表2中可知待发布任务n-task1的生产处理数据量为10,则基于拟合的xd=y
cpu
和xd=zn,分别确定出待发布任务上线运行所需的cpu配额为10核,所需的内存配额为10g。
[0078]
步骤103:根据确定的系统资源配额,将待发布任务发布到生产大数据平台。
[0079]
在生产大数据平台为待发布任务申请确定的系统资源配额包括的cpu配额和内存配额,使得待发布任务在生产大数据平台可以基于该cpu配额和内存配额进行运行。
[0080]
通过上述步骤101-103的操作自动获取待发布任务的生产处理数据量及多次测试产生的测试运行数据。依据多次测试对应的测试运行数据分别拟合数据量与cpu使用量之间的线性函数,以及数据量与内存使用量之间的线性函数。依据待发布任务的生产处理数据量及拟合的线性函数,自动确定待发布任务上线运行所需的系统资源配额。如此根据测试数据自动评估上线所需的系统资源配额,无需依赖人为经验来确定上线所需的系统资源配额,不仅大大提高了确定系统资源配额的准确性,还节省了人力成本。
[0081]
在本技术的另一些实施例中,在步骤101中多次测试待发布任务的过程中,也可以依据测试运行数据对测试过程待发布任务所申请的系统资源配额进行优化。根据当前的测试运行数据包括的为待发布任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;系统资源使用率包括cpu使用率和内存使用率;若计算出的系统资源使用率位于预设的系统资源区间,则确定不需要对待发布任务测试过程中的系统资源配额进行
调整;若计算出的系统资源使用率不位于预设的系统资源区间,则确定调整幅度,根据调整幅度调整下一次测试待发布任务时的系统资源配额。
[0082]
具体地,获取当前测试过程产生的测试运行数据,根据该测试运行数据包括的为待发布任务分配的cpu配额和测试过程中实际占用的cpu使用量,计算cpu使用率。可以计算实际占用的cpu使用量与分配的cpu配额之间的比值,将该比值确定为cpu使用率。相似地,根据该测试运行数据包括的为待发布任务分配的内存配额及实际占用的内存使用量,计算内存使用率。可以计算实际占用的内存使用量与分配的内存配额之间的比值,将该比值确定为内存使用率。
[0083]
本技术实施例预先配置好预设的内存区间和cpu区间。若计算出的cpu使用率位于预设的cpu区间,则不需要对cpu配额进行调整。若计算出的cpu使用率低于预设的cpu区间的下限值,则需要调高cpu配额。若计算出的cpu使用率高于预设的cpu区间的上限值,则需要调低cpu配额。调整的幅度可以设置为预设幅度,调高的幅度可以与调低的幅度相等,也可以设置调高的幅度大于调低的幅度。
[0084]
若计算的内存使用率位于预设的内存区间,则不需要对内存配额进行调整。若计算出的内存使用率低于预设的内存区间的下限值,则需要调高内存配额。若计算出的内存使用率高于预设的内存区间的上限值,则需要调低内存配额。调整的幅度可以设置为预设幅度,调高的幅度可以与调低的幅度相等,也可以设置调高的幅度大于调低的幅度。
[0085]
通过上述方式若确定出待发布任务的测试过程的系统资源配额需要调整,则确定出调整后的系统资源配额。然后在当前测试过程结束之后,开始进行下一次测试时,根据调整后的系统资源配额来申请系统资源,并开始对待发布任务进行测试。
[0086]
如表4所示,表4中的cpu使用率及内存使用率是根据表1的数据计算得到的。内存区间表中示意性地取值为(70%,80%)。只要计算出的内存使用率在该区间内,认为内存配额不需要调整。若计算出的内存使用率不在该区间内,则需要调整。cpu配额的调整方式与内存配额的调整方式是相同的。
[0087]
表4
[0088][0089]
通过上述方式来对测试大数据平台中任务测试过程中的系统资源配额进行优化,
能够使测试的每个任务分配的系统资源更加合理,避免出现资源浪费或资源不足的情况。使得整个测试大数据平台在满足任务能有足够资源完成测试的同时减少资源的浪费,节约成本。
[0090]
通过上述方式确定待发布任务上线所需的系统资源配额,并基于该系统资源配额将待发布任务发布到生产大数据平台之后,还通过步骤104的操作对任务的系统资源配额进行实时监控及调整。
[0091]
步骤104:周期性地获取目标任务的生产运行数据,该生产运行数据包括目标任务在当前周期内实际运行过程中的系统资源使用信息和实际处理数据量。
[0092]
目标任务可以为在生产大数据平台上运行的任一任务。周期可以为一天或两天等。
[0093]
根据目标任务的任务标识,从生产大数据平台获取当前周期内目标任务运行产生的生产日志。从生产日志中获取目标任务的生产运行数据,该生产运行数据至少包括目标任务在实际运行过程中的系统资源使用信息和实际处理数据量。其中,实际运行过程中的系统资源使用信息包括在实际运行过程中为目标任务分配的cpu配额和内存配额,以及在实际运行过程中目标任务实际占用的cpu使用量和内存使用量。表5中示意性地示出了n个目标任务对应的生产运行数据。
[0094]
表5
[0095][0096]
步骤105:根据当前周期目标任务的生产运行数据,确定是否需要调整下一周期目标任务的系统资源配额。
[0097]
步骤106:若确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和确定的调整幅度,调整下一周期目标人物的系统资源配额。
[0098]
根据生产运行数据包括的当前周期为目标任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;判断计算出的系统资源使用率是否位于预设的系统资源区间;如果是,则确定不需要调整下一周期的系统资源配额;如果否,则确定需要调整下一周期的系统资源配额。
[0099]
具体地,根据该生产运行数据包括的当前周期为目标任务分配的cpu配额和实际占用的cpu使用量,计算cpu使用率。以及,根据该生产运行数据包括的当前周期为目标任务分配的内存配额及实际占用的内存使用量,计算内存使用率。然后根据计算出的cpu使用率是否位于预设的cpu区间,确定是否需要调整下一周期的cpu配额。以及根据计算的内存使用率是否位于预设的内存区间,确定是否需要调整下一周期的内存配额。
[0100]
确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和确定的调整幅度,调整下一周期目标任务的系统资源配额。具体过程与上文调整测试过程中任务的系统资源配额的过程相同,在此不再赘述。
[0101]
在本技术的另一些实施例中,对发布到生产大数据平台的每个任务进行实时监测,若监测到目标任务运行失败,则确定运行失败的目标任务在运行过程中的系统资源配额是否与实际处理数据量不匹配;如果是,则获取目标任务的历史运行数据,根据历史运行数据,重新确定目标任务的系统资源配额;根据重新确定的系统资源配额,重新启动运行失败的所述目标任务。
[0102]
重新确定该目标任务的系统资源配额的过程可以与上述步骤102的方式相同,依据历史运行数据中各个周期内的运行数据分别拟合数据量与cpu使用量之间的线性函数,以及拟合数据量与内存使用量之间的线性函数。然后根据目标任务运行失败前的实际处理数据量,利用拟合的线性函数,计算出cpu配额和内存配额。然后基于重新确定的系统资源配额重启该目标任务。
[0103]
在本技术实施例中,获取测试时任务的运行数据,依据获取的运行数据,预估任务上线所需的系统资源配额,基于预估的系统资源配额上线任务,无需依赖工程师的个人经验,不仅节省了人力成本,还提高了分配系统资源的准确性,分配的系统资源更加符合任务需求,减少因分配不准确导致资源浪费或资源不足的情况。任务上线后自动依据任务的运行数据进行系统资源配额的调整,使系统资源调节具有实时性,有很强的应变能力,即便业务的数据量快速增长,也能够灵活调节任务所需的系统资源大小。能在数据量突然增多后,及时增加计算资源,避免任务运行失败。即便任务运行失败,也能够依据任务的历史运行数据重新确定合理的系统资源配额,然后自动重新启动运行失败的任务。而且还能够对测试过程中任务的系统资源配额进行自动调整,能够使测试的每个任务分配的系统资源更加合理,避免出现资源浪费或资源不足的情况。使得整个测试大数据平台在满足任务能有足够资源完成测试的同时减少资源的浪费,节约成本。
[0104]
本技术实施例提供了一种系统资源调节装置,该装置用于执行上述任一实施例所述的系统资源调节方法,如图2所示,该装置包括:
[0105]
获取模块201,用于获取待发布任务的生产处理数据量和多次测试待发布任务产生的测试运行数据,测试运行数据包括待发布任务在测试过程中的系统资源使用信息和测试处理数据量;
[0106]
确定模块202,用于根据生产处理数据量和多个测试运行数据,确定待发布任务上线运行所需的系统资源配额;
[0107]
任务发布模块203,用于根据确定的系统资源配额,将待发布任务发布到生产大数据平台;
[0108]
获取模块201,用于周期性地获取目标任务的生产运行数据,生产运行数据包括目标任务在当前周期内实际运行过程中的系统资源使用信息和实际处理数据量;
[0109]
确定模块202,用于根据当前周期目标任务的生产运行数据,确定是否需要调整下一周期目标任务的系统资源配额;
[0110]
调整模块204,用于若确定模块202确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和确定的调整幅度,调整下一周期目标任务的系统资源配额。
[0111]
获取模块201,用于根据待发布任务的任务标识,从测试大数据平台分别获取每次测试待发布任务产生的测试日志;从每次测试产生的测试日志中,分别获取每次测试待发布任务的测试运行数据,测试运行数据中待发布任务在测试过程中的系统资源使用信息包括在测试过程中为待发布任务分配的cpu配额、内存配额以及待发布任务运行实际占用的cpu使用量和内存使用量。
[0112]
确定模块202,用于根据待发布任务对应的每个测试运行数据包括的测试处理数据量及系统资源使用信息,拟合数据量与系统资源之间的线性函数,拟合的线性函数包括数据量与cpu使用量之间的线性函数和数据量与内存使用量之间的线性函数;根据待发布任务对应的生产处理数据量,利用数据量与系统资源之间的线性函数,计算出待发布任务上线所需的系统资源配额,系统资源配额包括cpu配额和内存配额。
[0113]
获取模块201,用于根据目标任务的任务标识,从生产大数据平台获取当前周期内目标任务运行产生的生产日志;从生产日志中获取目标任务的生产运行数据,生产运行数据中的系统资源使用信息包括在实际运行过程中为目标任务分配的cpu配额、内存配额以及在实际运行过程中目标任务实际占用的cpu使用量和内存使用量。
[0114]
确定模块202,用于根据生产运行数据包括的当前周期为目标任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;判断计算出的系统资源使用率是否位于预设的系统资源区间;如果是,则确定不需要调整下一周期的系统资源配额;如果否,则确定需要调整下一周期的系统资源配额。
[0115]
该装置还包括:任务重启模块,用于对发布到生产大数据平台的每个任务进行实时监测,若监测到目标任务运行失败;则确定运行失败的目标任务在运行过程中的系统资源配额是否与实际处理数据量不匹配;如果是,则获取目标任务的历史运行数据,根据历史运行数据,重新确定目标任务的系统资源配额;根据重新确定的系统资源配额,重新启动运行失败的目标任务。
[0116]
该装置还包括:测试过程系统资源调节模块,用于获取当前测试待发布任务过程中产生的测试运行数据;根据当前的测试运行数据包括的为待发布任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;系统资源使用率包括cpu使用率和内存使用率;若计算出的系统资源使用率位于预设的系统资源区间,则确定不需要对待发布任务测试过程中的系统资源配额进行调整;若计算出的系统资源使用率不位于预设的系统资源区间,则确定调整幅度,根据调整幅度调整下一次测试待发布任务时的系统资源配额。
[0117]
在本技术实施例中,获取测试时任务的运行数据,依据获取的运行数据,预估任务上线所需的系统资源配额,基于预估的系统资源配额上线任务,无需依赖工程师的个人经验,不仅节省了人力成本,还提高了分配系统资源的准确性,分配的系统资源更加符合任务需求,减少因分配不准确导致资源浪费或资源不足的情况。任务上线后自动依据任务的运行数据进行系统资源配额的调整,使系统资源调节具有实时性,有很强的应变能力,即便业务的数据量快速增长,也能够灵活调节任务所需的系统资源大小。能在数据量突然增多后,及时增加计算资源,避免任务运行失败。即便任务运行失败,也能够依据任务的历史运行数据重新确定合理的系统资源配额,然后自动重新启动运行失败的任务。而且还能够对测试过程中任务的系统资源配额进行自动调整,能够使测试的每个任务分配的系统资源更加合
理,避免出现资源浪费或资源不足的情况。使得整个测试大数据平台在满足任务能有足够资源完成测试的同时减少资源的浪费,节约成本。
[0118]
本技术实施例提供了一种计算机设备。如图3所示,该计算机设备包括通过装置总线连接的处理器、存储介质、存储器和网络接口。其中,该计算机设备的存储介质存储有操作装置、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种系统资源调节方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种系统资源调节方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0119]
该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。处理器执行计算机程序时实现以下步骤:获取待发布任务的生产处理数据量和多次测试待发布任务产生的测试运行数据,测试运行数据包括待发布任务在测试过程中的系统资源使用信息和测试处理数据量;根据生产处理数据量和多个测试运行数据,确定待发布任务上线运行所需的系统资源配额;根据确定的系统资源配额,将待发布任务发布到生产大数据平台;周期性地获取目标任务的生产运行数据,生产运行数据包括目标任务在当前周期内实际运行过程中的系统资源使用信息和实际处理数据量;根据当前周期目标任务的生产运行数据,确定是否需要调整下一周期目标任务的系统资源配额;若确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和确定的调整幅度,调整下一周期目标任务的系统资源配额。
[0120]
处理器执行计算机程序时实现以下步骤:根据待发布任务的任务标识,从测试大数据平台分别获取每次测试待发布任务产生的测试日志;从每次测试产生的测试日志中,分别获取每次测试待发布任务的测试运行数据,测试运行数据中待发布任务在测试过程中的系统资源使用信息包括在测试过程中为待发布任务分配的cpu配额、内存配额以及待发布任务运行实际占用的cpu使用量和内存使用量。
[0121]
处理器执行计算机程序时实现以下步骤:根据待发布任务对应的每个测试运行数据包括的测试处理数据量及系统资源使用信息,拟合数据量与系统资源之间的线性函数,拟合的线性函数包括数据量与cpu使用量之间的线性函数和数据量与内存使用量之间的线性函数;根据待发布任务对应的生产处理数据量,利用数据量与系统资源之间的线性函数,计算出待发布任务上线所需的系统资源配额,系统资源配额包括cpu配额和内存配额。
[0122]
处理器执行计算机程序时实现以下步骤:根据目标任务的任务标识,从生产大数据平台获取当前周期内目标任务运行产生的生产日志;从生产日志中获取目标任务的生产运行数据,生产运行数据中的系统资源使用信息包括在实际运行过程中为目标任务分配的cpu配额、内存配额以及在实际运行过程中目标任务实际占用的cpu使用量和内存使用量。
[0123]
处理器执行计算机程序时实现以下步骤:根据生产运行数据包括的当前周期为目标任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;判断计算出的系统资源使用率是否位于预设的系统资源区间;如果是,则确定不需要调整下一周
期的系统资源配额;如果否,则确定需要调整下一周期的系统资源配额。
[0124]
处理器执行计算机程序时实现以下步骤:对发布到生产大数据平台的每个任务进行实时监测,若监测到目标任务运行失败;则确定运行失败的目标任务在运行过程中的系统资源配额是否与实际处理数据量不匹配;如果是,则获取目标任务的历史运行数据,根据历史运行数据,重新确定目标任务的系统资源配额;根据重新确定的系统资源配额,重新启动运行失败的目标任务。
[0125]
处理器执行计算机程序时实现以下步骤:获取当前测试待发布任务过程中产生的测试运行数据;根据当前的测试运行数据包括的为待发布任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;系统资源使用率包括cpu使用率和内存使用率;若计算出的系统资源使用率位于预设的系统资源区间,则确定不需要对待发布任务测试过程中的系统资源配额进行调整;若计算出的系统资源使用率不位于预设的系统资源区间,则确定调整幅度,根据调整幅度调整下一次测试待发布任务时的系统资源配额。
[0126]
本技术实施例还提出了一种存储有计算机可读指令的存储介质,如图4所示,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:获取待发布任务的生产处理数据量和多次测试待发布任务产生的测试运行数据,测试运行数据包括待发布任务在测试过程中的系统资源使用信息和测试处理数据量;根据生产处理数据量和多个测试运行数据,确定待发布任务上线运行所需的系统资源配额;根据确定的系统资源配额,将待发布任务发布到生产大数据平台;周期性地获取目标任务的生产运行数据,生产运行数据包括目标任务在当前周期内实际运行过程中的系统资源使用信息和实际处理数据量;根据当前周期目标任务的生产运行数据,确定是否需要调整下一周期目标任务的系统资源配额;若确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和确定的调整幅度,调整下一周期目标任务的系统资源配额。
[0127]
处理器还可以执行以下步骤:根据待发布任务的任务标识,从测试大数据平台分别获取每次测试待发布任务产生的测试日志;从每次测试产生的测试日志中,分别获取每次测试待发布任务的测试运行数据,测试运行数据中待发布任务在测试过程中的系统资源使用信息包括在测试过程中为待发布任务分配的cpu配额、内存配额以及待发布任务运行实际占用的cpu使用量和内存使用量。
[0128]
处理器还可以执行以下步骤:根据待发布任务对应的每个测试运行数据包括的测试处理数据量及系统资源使用信息,拟合数据量与系统资源之间的线性函数,拟合的线性函数包括数据量与cpu使用量之间的线性函数和数据量与内存使用量之间的线性函数;根据待发布任务对应的生产处理数据量,利用数据量与系统资源之间的线性函数,计算出待发布任务上线所需的系统资源配额,系统资源配额包括cpu配额和内存配额。
[0129]
处理器还可以执行以下步骤:根据目标任务的任务标识,从生产大数据平台获取当前周期内目标任务运行产生的生产日志;从生产日志中获取目标任务的生产运行数据,生产运行数据中的系统资源使用信息包括在实际运行过程中为目标任务分配的cpu配额、内存配额以及在实际运行过程中目标任务实际占用的cpu使用量和内存使用量。
[0130]
处理器还可以执行以下步骤:根据生产运行数据包括的当前周期为目标任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;判断计算出的系统资源使用率是否位于预设的系统资源区间;如果是,则确定不需要调整下一周期的系统资
源配额;如果否,则确定需要调整下一周期的系统资源配额。
[0131]
处理器还可以执行以下步骤:对发布到生产大数据平台的每个任务进行实时监测,若监测到目标任务运行失败;则确定运行失败的目标任务在运行过程中的系统资源配额是否与实际处理数据量不匹配;如果是,则获取目标任务的历史运行数据,根据历史运行数据,重新确定目标任务的系统资源配额;根据重新确定的系统资源配额,重新启动运行失败的目标任务。
[0132]
处理器还可以执行以下步骤:获取当前测试待发布任务过程中产生的测试运行数据;根据当前的测试运行数据包括的为待发布任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;系统资源使用率包括cpu使用率和内存使用率;若计算出的系统资源使用率位于预设的系统资源区间,则确定不需要对待发布任务测试过程中的系统资源配额进行调整;若计算出的系统资源使用率不位于预设的系统资源区间,则确定调整幅度,根据调整幅度调整下一次测试待发布任务时的系统资源配额。
[0133]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等存储介质,或随机存储记忆体(random access memory,ram)等。
[0134]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0135]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种系统资源调节方法,其特征在于,包括:获取待发布任务的生产处理数据量和多次测试所述待发布任务产生的测试运行数据,所述测试运行数据包括所述待发布任务在测试过程中的系统资源使用信息和测试处理数据量;根据所述生产处理数据量和多个所述测试运行数据,确定所述待发布任务上线运行所需的系统资源配额;根据确定的所述系统资源配额,将所述待发布任务发布到生产大数据平台;周期性地获取目标任务的生产运行数据,所述生产运行数据包括所述目标任务在当前周期内实际运行过程中的系统资源使用信息和实际处理数据量;根据当前周期所述目标任务的生产运行数据,确定是否需要调整下一周期所述目标任务的系统资源配额;若确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和确定的调整幅度,调整下一周期所述目标任务的系统资源配额。2.根据权利要求1所述的方法,其特征在于,获取多次测试所述待发布任务产生的测试运行数据,包括:根据所述待发布任务的任务标识,从测试大数据平台分别获取每次测试所述待发布任务产生的测试日志;从每次测试产生的测试日志中,分别获取每次测试所述待发布任务的测试运行数据,所述测试运行数据中所述待发布任务在测试过程中的系统资源使用信息包括在测试过程中为所述待发布任务分配的cpu配额、内存配额以及所述待发布任务运行实际占用的cpu使用量和内存使用量。3.根据权利要求1所述的方法,其特征在于,所述根据所述生产处理数据量和多个所述测试运行数据,确定所述待发布任务上线运行所需的系统资源配额,包括:根据所述待发布任务对应的每个测试运行数据包括的测试处理数据量及系统资源使用信息,拟合数据量与系统资源之间的线性函数,拟合的线性函数包括数据量与cpu使用量之间的线性函数和数据量与内存使用量之间的线性函数;根据所述待发布任务对应的所述生产处理数据量,利用数据量与系统资源之间的线性函数,计算出所述待发布任务上线所需的系统资源配额,所述系统资源配额包括cpu配额和内存配额。4.根据权利要求1所述的方法,其特征在于,所述获取目标任务的生产运行数据,包括:根据所述目标任务的任务标识,从所述生产大数据平台获取当前周期内所述目标任务运行产生的生产日志;从所述生产日志中获取所述目标任务的生产运行数据,所述生产运行数据中的系统资源使用信息包括在实际运行过程中为目标任务分配的cpu配额、内存配额以及在实际运行过程中目标任务实际占用的cpu使用量和内存使用量。5.根据权利要求1所述的方法,其特征在于,所述根据当前周期所述目标任务的生产运行数据,确定是否需要调整下一周期所述目标任务的系统资源配额,包括:根据所述生产运行数据包括的当前周期为所述目标任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;
判断计算出的系统资源使用率是否位于预设的系统资源区间;如果是,则确定不需要调整下一周期的系统资源配额;如果否,则确定需要调整下一周期的系统资源配额。6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:对发布到生产大数据平台的每个任务进行实时监测,若监测到目标任务运行失败;则确定运行失败的所述目标任务在运行过程中的系统资源配额是否与实际处理数据量不匹配;如果是,则获取所述目标任务的历史运行数据,根据所述历史运行数据,重新确定所述目标任务的系统资源配额;根据重新确定的系统资源配额,重新启动运行失败的所述目标任务。7.据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:获取当前测试所述待发布任务过程中产生的测试运行数据;根据当前的所述测试运行数据包括的为待发布任务分配的系统资源配额和实际占用的系统资源使用量,计算系统资源使用率;所述系统资源使用率包括cpu使用率和内存使用率;若计算出的系统资源使用率位于预设的系统资源区间,则确定不需要对所述待发布任务测试过程中的系统资源配额进行调整;若计算出的系统资源使用率不位于所述预设的系统资源区间,则确定调整幅度,根据所述调整幅度调整下一次测试所述待发布任务时的系统资源配额。8.一种系统资源调节装置,其特征在于,包括:获取模块,用于获取待发布任务的生产处理数据量和多次测试所述待发布任务产生的测试运行数据,所述测试运行数据包括所述待发布任务在测试过程中的系统资源使用信息和测试处理数据量;确定模块,用于根据所述生产处理数据量和多个所述测试运行数据,确定所述待发布任务上线运行所需的系统资源配额;任务发布模块,用于根据确定的所述系统资源配额,将所述待发布任务发布到生产大数据平台;所述获取模块,用于周期性地获取目标任务的生产运行数据,所述生产运行数据包括所述目标任务在当前周期内实际运行过程中的系统资源使用信息和实际处理数据量;所述确定模块,用于根据当前周期所述目标任务的生产运行数据,确定是否需要调整下一周期所述目标任务的系统资源配额;调整模块,用于若所述确定模块确定需要调整,则确定系统资源的调整幅度,根据当前周期的系统资源配额和确定的调整幅度,调整下一周期所述目标任务的系统资源配额。9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述的方法的步骤。10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述的方法的步骤。
技术总结
本申请提出一种系统资源调节方法、装置、设备及存储介质,该方法包括:获取待发布任务的生产处理数据量和多次测试产生的测试运行数据,测试运行数据包括测试过程中的系统资源使用信息和测试处理数据量;根据生产处理数据量和多个测试运行数据,确定任务上线运行所需的系统资源配额,据此将待发布任务发布到生产大数据平台;获取目标任务的生产运行数据,生产运行数据包括在当前周期内实际运行过程的系统资源使用信息和实际处理数据量;根据当前周期的生产运行数据,确定是否调整下一周期的系统资源配额;如果是,则根据当前周期的系统资源配额和调整幅度,调整下一周期的系统资源配额。如此减少因分配不准确导致资源浪费或资源不足的情况。源不足的情况。源不足的情况。
技术研发人员:黄一格
受保护的技术使用者:平安国际智慧城市科技股份有限公司
技术研发日:2022.02.17
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-10945.html