CN113468036B - 任务执行耗时分析方法及装置、存储介质、终端 - Google Patents
任务执行耗时分析方法及装置、存储介质、终端 Download PDFInfo
- Publication number
- CN113468036B CN113468036B CN202110801636.6A CN202110801636A CN113468036B CN 113468036 B CN113468036 B CN 113468036B CN 202110801636 A CN202110801636 A CN 202110801636A CN 113468036 B CN113468036 B CN 113468036B
- Authority
- CN
- China
- Prior art keywords
- task
- historical
- state information
- execution
- target task
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 17
- 230000000875 corresponding effect Effects 0.000 claims description 209
- 238000003745 diagnosis Methods 0.000 claims description 53
- 238000013507 mapping Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002596 correlated effect Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 24
- 238000012423 maintenance Methods 0.000 description 13
- 238000012549 training Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 238000013145 classification model Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/5055—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 software capabilities, i.e. software resources associated or available to the machine
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种任务执行耗时分析方法及装置、存储介质、终端,所述方法包括:当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取所述目标任务的目标任务批次;根据目标任务批次从集群任务运行状态信息中获取目标任务批次对应的当前的运行状态信息,以及目标任务的N个历史任务批次对应的历史的运行状态信息,其中,所述集群任务运行状态信息为在任务执行过程中产生并通过定时调用预设的端口采集得到的,N为正整数;根据目标任务批次对应的当前的运行状态信息与目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因。上述方案能够提高任务的执行耗时分析效率。
Description
技术领域
本发明实施例涉及数据分析技术领域,尤其涉及一种分布式系统中的任务执行耗时分析方法及装置、存储介质、终端。
背景技术
随着企业数字化转型的深入,越来越多的数据汇入到企业数据中台中,数据处理任务也随之增加。目前,数据中台通常采用分布式系统,大数据集群中资源竞争现象越来越多,经常会出现一个长期运行稳定的任务突然间执行时间大大增加导致下游业务无法按时开展。
目前,通常需要由运维人员查看大量的任务日志,系统日志,排查各种资源的使用情况,如中央处理器(CPU)的使用情况,内存的使用情况,数据的输入及输出(IO)等,并基于运维人员长期积累的经验来判断任务执行耗时增加的具体原因。然而作业任务的诊断分析费时费力还受运维人员的经验影响,造成大型企业数据中台作业任务运维效率低下,可靠性较低。
发明内容
本发明实施例解决的技术问题是任务的执行耗时分析效率低下。
为解决上述技术问题,本发明实施例提供一种分布式系统中的任务执行耗时分析方法,包括:当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取所述目标任务的目标任务批次;根据所述目标任务批次从集群任务运行状态信息中获取所述目标任务批次对应的当前的运行状态信息,以及所述目标任务的N个历史任务批次对应的历史的运行状态信息,其中,所述集群任务运行状态信息为在任务执行过程中产生并通过定时调用预设的端口采集得到的,N为正整数;根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因。
可选的,所述集群任务运行状态信息包括若干个运行指标,所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因,包括:判断所述目标任务批次对应的当前的各运行指标分别与所述目标任务的N个历史任务批次对应的历史的各运行指标的偏差是否超出第一偏差范围,根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因。
可选的,所述判断所述目标任务批次对应的当前的各运行指标分别与所述目标任务的N个历史任务批次对应的历史的各运行指标的偏差是否超出第一偏差范围,根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因,包括:根据各运行指标的优先级,从所有运行指标中选取优先级最高的运行指标;判断所述目标任务批次对应的当前的优先级最高的运行指标与所述目标任务的N个历史任务批次对应的历史的优先级最高的运行指标的偏差是否超出第一偏差范围,若超出所述第一偏差范围,获取所述优先级最高的运行指标对应的执行耗时原因,将所述优先级最高的运行指标对应的执行耗时原因作为所述目标任务的执行耗时原因;若未超出所述第一偏差范围,按照各运行指标的优先级从高至低,选择下一运行指标,并基于所选择的运行指标,分析任务的执行耗时原因。
可选的,各运行指标的优先级根据各运行指标引起任务执行耗时的次数设定,且优先级与引起任务执行耗时的次数正相关。
可选的,所述分布式系统中的任务执行耗时分析方法,还包括:针对超出第一偏差范围的运行指标,更新该运行指标引起任务执行耗时的次数;依据更新后的各运行指标引起的任务执行耗时次数,更新各运行指标的优先级。
可选的,所述分布式系统中的任务执行耗时分析方法,还包括:若根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因为其他任务抢占资源,获取其他任务当前占用的各类资源与所述其他任务的历史占用的各类资源,所述其他任务指在所述目标任务的目标任务批次对应的时间段内同时执行的任务;根据所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源的关系,得到其他任务抢占的资源信息并输出。
可选的,所述根据所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源的关系,得到其他任务抢占的资源信息并输出,包括:若当前占用的资源包括占用的核的数量,针对所述其他任务中的各任务,判断所述其他任务中的各任务当前占用的核的总数分别与各任务的历史占用的核的总数的偏差是否超出第二偏差范围;根据偏差超出第二偏差范围的任务,得到其他任务抢占的资源信息,其中,所述其他任务抢占的资源信息包括偏差超出第二偏差范围的任务占用的核的数量。
可选的,所述分布式系统中的任务执行耗时分析方法,还包括:判断当前的其他任务的任务总数与历史的其他任务的任务总数的偏差是否超出第三偏差范围;若超出所述第三偏差范围,获取当前的其他任务中的新增任务,所述其他任务抢占的资源信息包括所述新增任务占用的资源信息。
可选的,所述目标任务的N个历史任务批次对应的历史的各运行指标采用如下方式得到:获取距所述目标任务批次最近且与所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标;将所述距所述目标任务批次最近且与所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标,作为所述目标任务的N个历史任务批次对应的历史的各运行指标。
可选的,所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因,包括:根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,从预设的规则库中选取诊断规则,所述规则库包括若干条诊断规则,各诊断规则分别指示有运行状态信息的判断条件以及执行耗时原因;判断所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,是否满足所选取的诊断规则;若满足所选取的诊断规则,根据所述诊断规则对应的执行耗时原因确定所述任务的执行耗时原因。
可选的,所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,从预设的规则库中选取诊断规则,包括:所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,结合所述目标任务的任务名称,按照各诊断规则的优先级从所述规则库中选取诊断规则。
可选的,所述分布式系统中的任务执行耗时分析方法,还包括:若不满足所选取的诊断规则,则根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,再次从所述规则库中选取诊断规则,并基于再次从所述规则库中选取的诊断规则,分析任务的执行耗时原因。
可选的,所述分布式系统中的任务执行耗时分析方法,还包括:获取其他任务当前占用的各类资源与所述其他任务的历史占用的各类资源,所述其他任务指在所述目标任务的目标任务批次对应的时间段内同时执行的任务;根据目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,以及所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源,从预设的规则库中选取诊断规则。
本发明实施例还提供一种分布式系统中的任务执行耗时分析装置,包括:第一获取单元,用于当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取所述目标任务的目标任务批次;第二获取单元,用于根据所述目标任务批次从集群任务运行状态信息中获取所述目标任务批次对应的当前的运行状态信息,以及所述目标任务的N个历史任务批次对应的历史的运行状态信息,其中,所述集群任务运行状态信息为在任务执行过程中产生并通过定时调用预设的端口采集得到的,N为正整数;分析单元,用于根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因。
本发明实施例还提供一种存储介质,所述存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一种分布式系统中的任务执行耗时分析方法的步骤。
本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述任一种分布式系统中的任务执行耗时分析方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在分布式系统中的任务执行过程中,通过预设的端口定期采集任务运行过程中产生的集群任务运行状态信息。当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取目标任务的目标任务批次。根据目标任务的目标任务批次,从集群任务运行状态信息中获取目标任务批次对应的当前的运行状态信息,以及从集群任务运行状态信息中获取目标任务的N个历史任务批次对应的历史的运行状态信息。根据目标任务批次对应的当前的运行状态信息与目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因。一方面通过配置设定的端口定期获取任务执行过程中产生的集群任务运行状态信息;另一方面,如果任务执行超时,能够自动从集群任务运行状态信息中获取目标任务批次的当前的运行状态信息,以及从集群任务运行状态信息中获取目标任务的N个历史任务批次对应的历史的运行状态信息,进而基于目标任务批次的当前的运行状态信息以及N个历史任务批次对应的历史的运行状态信息进行执行耗时原因分析,实现任务执行时长超过设定时长,自动进行执行耗时原因分析,相比通过运维人员查看大量的任务日志,系统日志,排查各种资源的使用情况来确定执行耗时原因而言,可以提高执行耗时分析的效率。此外,还可以避免受运维人员的经验影响,提高所得到的执行耗时原因的可靠性。
附图说明
图1是本发明实施例中的一种分布式系统中的任务执行耗时分析方法的流程图;
图2是本发明实施例中的另一种分布式系统中的任务执行耗时分析方法的流程图;
图3是本发明实施例中的一种分布式系统中的任务执行耗时分析装置的结构示意图。
具体实施方式
如上所述,大数据集群中资源竞争现象越来越多,经常会出现一个长期运行稳定的任务突然间执行时间大大增加导致下游业务无法按时开展。目前,通常需要由运维人员查看大量的任务日志,系统日志,排查各种资源的使用情况,如中央处理器(CPU)的使用情况,内存的使用情况,数据的输入及输出(IO)等,并基于运维人员长期积累的经验来判断任务执行耗时增加的具体原因。然而作业任务的诊断分析费时费力还受运维人员的经验影响,造成大型企业数据中台作业任务运维效率低下,可靠性较低。
为解决上述问题,在本发明实施例中,在分布式系统中的任务执行过程中,通过预设的端口定期采集任务运行过程中产生的集群任务运行状态信息。当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取目标任务的目标任务批次。根据目标任务的目标任务批次,从集群任务运行状态信息中获取目标任务批次对应的当前的运行状态信息,以及从集群任务运行状态信息中获取目标任务的N个历史任务批次对应的历史的运行状态信息。根据目标任务批次对应的当前的运行状态信息与目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因。一方面通过配置设定的端口定期获取任务执行过程中产生的集群任务运行状态信息;另一方面,如果任务执行超时,能够自动从集群任务运行状态信息中获取目标任务批次的当前的运行状态信息,以及从集群任务运行状态信息中获取目标任务的N个历史任务批次对应的历史的运行状态信息,进而基于目标任务批次的当前的运行状态信息以及N个历史任务批次对应的历史的运行状态信息进行执行耗时原因分析,实现任务执行市场超过设定时长,自动进行执行耗时原因分析,相比通过运维人员查看大量的任务日志,系统日志,排查各种资源的使用情况来确定执行耗时原因而言,可以提高执行耗时分析的效率。此外,还可以避免受运维人员的经验影响,提高所得到的执行耗时原因的可靠性。
为使本发明实施例的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
本发明实施例提供一种分布式系统中的任务执行耗时分析方法,参照图1,给出了本发明实施例中的一种分布式系统中的任务执行耗时分析方法的流程图,具体可以包括如下步骤:
步骤S11,当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取所述目标任务的目标任务批次。
在具体实施中,在分布式系统中,通常运行有多个任务,各任务分别按照配置的周期,周期地执行。针对同一个任务,为了区别任务的执行周期,可以采用任务批次对任务的执行周期进行标识。
通常针对某一任务,执行完成该任务的任务批次所需的时长是相对固定的,也即任务执行时长是相对固定的,通常在合理的任务执行时长内浮动。
当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取目标任务的目标任务批次。
在具体实施中,可以预先为各任务分别配置对应的设定时长,在任务执行过程中记录任务的开始时间以及结束时间,根据任务的开始时间以及结束时间,可以得到任务的执行时长。当任务的执行时长超出设定时长时,判定任务执行耗时异常。可以理解的是,还可以根据任务的开始时间定期计算任务的执行时长,当计算得到的任务的执行时长超出设定时长,但是任务还没有结束,则可以将该任务作为目标任务,并获取目标任务批次。
在一些实施例中,可以自动将执行时长超过设定时长的任务作为待分析的目标任务,并根据目标任务的开始时间以及结束时间确定目标任务的目标任务批次。
在另一些实施例中,可以由用户在显示界面上选择需要分析的目标任务以及目标任务批次。
在分布式系统中,任务可以包括映射规约(MapReduce)任务以及Spark任务等。
步骤S12,根据所述目标任务批次从集群任务运行状态信息中获取所述目标任务批次对应的当前的运行状态信息,以及所述目标任务的N个历史任务批次对应的历史的运行状态信息。
在具体实施中,数据中台通常基于Hadoop环境搭建分布式系统,通过另一种资源协调者(Yet Another Resource Negotiator,YARN)进行任务调度。YARN是一种Hadoop资源管理器,作为一个通用的资源管理系统可以进行任务提交、资源分配以及任务执行等任务调度。
通过YARN网页(WEB)提供一种实时查看当前集群任务执行状态的监控页面,任务执行结束后只有最终状态的结果信息,对于任务执行过程中的资源使用信息运行时才有。为了便于进行任务执行耗时分析,配置端口以定期采集任务运行过程中的集群任务运行状态信息。
其中,集群任务运行状态信息可以包括当前集群中所有任务运行状态信息,任务运行状态信息可以包括当前提交的任务列表、当前运行任务列表,每个任务使用的核(vcore)、占用的内存等。针对不同任务类型所具体包含任务运行状态信息不同。
例如,MapReduce任务可以分为任务映射(Map)阶段、数据传输(Shuffle)阶段、数据规约(Reduce)阶段、在采集MapReduce任务的运行状态信息时,可以采集每个阶段的子任务状态信息。具体而言,每个阶段的子任务状态信息可以包括:当前执行Map的子任务数量,也即当前有多少Map在执行;进行数据传输的规约子任务数目,也即有多少数据需要经过Shuffle传入Reduce节点;在执行规约的子任务的数目以及执行耗时,也即有多少Reduce在执行以及各Reduce的耗时。
又如,针对Spark任务来说,可以获取当前分配的vcore以及内存等。
在一些非限制性实施例中,可以将获取到的集群任务运行状态信息存在于数据库中,后续需要使用时,从数据库中调取即可。在具体实施中,可以根据目标任务批次从集群任务运行状态信息中获取目标任务批次对应的当前的运行状态信息,以及从集群任务状态信息中获取目标任务的N个历史任务批次对应的历史的运行状态信息,N个正整数。
进一步,不同时间段内运行的任务数目、任务的数据量以及任务占用资源等可能存在差异。例如,针对同一类型的任务,上午执行的情况与深夜执行的情况可能不同。
为更好的考虑时间因素对任务执行耗时的影响,以使得获取到的N个历史任务批次对应的历史的运行状态信息对分析目标任务的目标任务批次的耗时分析更具有参考价值,在本发明实施例中,可以获取距所述目标任务批次最近且与所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行状态信息。
其中,执行时间段与任务的执行周期的频次相关。例如,某任务每天执行多次,可以获取目标任务批次的时间段,并从之前N天对应的集群运行状态信息中,分别取一天内相同时间段的任务批次对应的运行状态信息,将从N天的集群状态信息中获取到的每天内相同时间段的任务批次对应的运行状态信息作为所获取到的N个历史任务批次对应的历史的运行状态信息。又如,某任务每天执行一次,可以确定目标任务批次为该周的周几,此时,可以从之前N周对应的集群运行状态信息中,分别选取一周内相同时间的任务批次对应的运行状态信息,将从N周的集群运行状态信息中选取的各周内相同时间内的任务批次对应的运行状态信息作为所获取到的N个历史任务批次对应的历史的运行状态信息。可以理解的是,对于执行周期间隔较长的任务,可以取目标任务批次之前的N个历史任务批次,可以取目标任务批次之前连续的N个历史任务批次,也可以在目标任务批次之前的历史任务批次中,间隔取N个历史任务批次。
进一步,可以将获取到的N个历史任务批次对应的历史的运行状态信息进行加权,并将加权结果作为N个历史任务批次对应的历史的运行状态信息。
进一步,可以将获取到的N个历史任务批次对应的历史的运行状态信息进行加权并求平均值,将得到的平均值作为N个历史任务批次对应的历史的运行状态信息。
步骤S13,根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因。
在具体实施中,所述集群任务运行状态信息包括若干个运行指标。运行指标可以用于表征任务的运行状态或者所占用的资源。其中,资源可以指硬件的资源如核、内存或者带宽等。
经研究发现,不同执行耗时原因导致的执行耗时可以反映至对应的运行指标,也即执行耗时原因与运行指标存在对应关系,若针对某一运行指标发生异常(如目标任务批次对应的当前的运行指标与目标任务的N个历史任务批次对应的历史的运行指标的偏差超出第一偏差范围),则可以得知执行耗时的原因。为了便于后续进行执行耗时分析,可以预先设置各运行指标与执行耗时原因之间的映射关系,以供后续进行执行耗时分析时使用。
基于以上研究,在本发明一非限制性实施例中,可以判断所述目标任务批次对应的当前的各运行指标分别与所述目标任务的N个历史任务批次对应的历史的各运行指标的偏差是否超出第一偏差范围,根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因。其中,第一偏差范围的具体取值可以根据实际需求进行配置,此处不做限定。
在具体实施中,不同类型的任务对应的运行指标不同,从而不同类型的任务对应的运行指标与执行耗时原因之间的映射关系也不同。任务的类型可以根据任务的名称进行区分,也即可以根据任务的名称获取与该任务对应的运行指标与执行耗时原因之间的映射关系。
分布式系统中通常包括映射规约任务、Spark任务等。映射规约任务对应的运行指标可以包括以下至少一种:输入数据量、映射(Map)时长、数据传输(Shuffle)时长、规约(Reduce)时长等。
Spark任务对应的运行指标可以包括以下至少一种:Spark任务的启动时长、Spark任务的执行时长等。
在本发明一些实施例中,所述目标任务为映射规约任务,所述运行指标可以包括输入数据量,判断所述目标任务批次的当前的输入数据量与所述目标任务的N个历史任务批次输入数据量的偏差是否超出设定数据量偏差范围,所述第一偏差范围包括所述设定数据量偏差范围;若超出所述设定数据量偏差范围,确定所述目标任务的执行耗时原因为输入数据量增大,也即任务自身原因导致。
又如,所述目标任务为Spark任务,所述运行指标包括:Spark任务的启动时长,判断所述Spark任务的目标任务批次的当前的启动时长与所述Spark任务的N个历史任务批次的历史的启动时长的偏差是否超出设定启动时长偏差范围,所述第一偏差范围包括所述设定启动时长偏差范围;若超出所述设定启动时长偏差范围,确定所述目标任务的执行耗时原因为其他任务抢占核。
在具体实施中,所述目标任务的N个历史任务批次对应的历史的各运行指标采用如下方式得到:获取距所述目标任务批次最近且与所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标;将所述距所述目标任务批次最近且与所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标,作为所述目标任务的N个历史任务批次对应的历史的各运行指标。
可以将所述距所述目标任务批次最近且与所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标进行加权平均,将加权平均得到的平均值作为所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标。
可以理解的是,还可以分别为每个历史任务批次分配分配对应的权重,根据各个历史任务次的权重以及运行指标分进行加权,得到加权结果,将加权结果为所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标。
在一些实施例中,历史任务批次距离目标任务批次的时间越近,该历史任务批次对应的权重越大,相应地,历史任务批次距离目标任务批次的时间越远,该历史任务批次对应的权重越小。
进一步,为了提高执行耗时分析效率,在本发明一非限制性实施例中,可以根据各运行指标的优先级,从所有运行指标中选取优先级最高的运行指标;判断所述目标任务批次对应的当前的优先级最高的运行指标与所述目标任务的N个历史任务批次对应的历史的优先级最高的运行指标的偏差是否超出第一偏差范围,若超出所述第一偏差范围,获取所述优先级最高的运行指标对应的执行耗时原因,将所述优先级最高的运行指标对应的执行耗时原因作为所述目标任务的执行耗时原因;若未超出所述第一偏差范围,按照各运行指标的优先级从高至低,选择下一运行指标,并基于所选择的运行指标,分析任务的执行耗时原因。
当目标任务为MapReduce任务时,MapReduce任务对应的运行指标可以包括:映射时长、输入数据量、数据传输时长以及规约时长等。各运行指标的优先级从高至低依次为:输入数据量、映射时长、数据传输时长以及规约时长。针对MapReduce任务下,运行指标与执行耗时原因之间的映射关系可以包括:输入数据量对应的执行耗时原因为输入数据量增大;数据传输时长对应的执行耗时原因为其他任务抢占带宽;规约时长对应的执行耗时原因为其他任务抢占内存。
可以获取目标任务批次对应的当前的输入数据量以及N个历史任务批次的历史的输入数据量,判断所述目标任务批次的当前的输入数据量与N个历史任务批次的历史的输入数据量的偏差是否超出设定数据量偏差范围,所述第一偏差范围包括所述设定数据量偏差范围;若超出所述设定数据量偏差范围,根据预设的运行指标与执行耗时原因之间的映射关系,确定所述目标任务的执行耗时原因为输入数据量增大或者分布节点的数据分布不均衡。
进一步,若未超出所述设定数据量偏差范围,则可以获取目标任务批次的当前的数据传输时长与N个历史任务批次的历史的数据传输时长的偏差是否超出设定传输时长偏差范围,所述第一偏差范围包括所述设定传输时长偏差范围;若超出所述设定传输时长偏差范围,根据预设的运行指标与执行耗时原因之间的映射关系,确定所述目标任务的执行耗时原因为其他任务抢占带宽。
进一步,若未超出所述设定传输时长偏差范围,则获取为所述目标任务分配的各分布节点的当前数据传输时长;根据各分布节点的当前数据传输时长计算平均数据传输时长以及方差;若各分布节点中的最大数据传输时长与所述平均数据传输时长的偏差超出设定阈值,且所述方差大于设定方差阈值,根据预设的运行指标与执行耗时原因之间的映射关系,确定所述目标任务的执行耗时原因为分布节点的数据分布不均衡。
进一步,当各分布节点中的最大数据传输时长与所述平均数据传输时长的偏差未超出所述设定阈值,且所述方差不大于所述设定方差阈值时,判断所述目标任务批次的当前的规约时长与N个历史任务批次的历史的规约时长的偏差是否超出设定规约时长偏差范围,所述第一偏差范围包括所述设定规约时长偏差范围;若超出所述设定规约时长偏差范围,根据预设的运行指标与执行耗时原因之间的映射关系,确定所述目标任务的执行耗时原因为其他任务抢占内存。
当目标任务为Spark任务时,Spark任务的运行指标可以包括:Spark任务的启动时长、Spark任务的执行时长。其中,Spark任务的启动时长可以基核的分配曲线得到,具体而言,将提交请求的时间作为Spark任务的开始启动时间,若分配的核的数目没有达到所请求的核的数目,则一直处于启动状态,核的分配曲线用于表征分配的核的数目变化,直至分配的核的数目达到请求的核的数目,完成Spark任务的启动,进入Spark任务的执行阶段。Spark任务的执行时长与带宽相关。如带宽不足,可能引起Spark任务的执行耗时过长。因此,针对Spark任务下,运行指标与执行耗时原因之间的映射关系为:Spark任务的启动时长对应的执行耗时原因为其他任务抢占核;Spark任务的执行时长对应的执行耗时原因为其他任务抢占带宽。
在具体实施中,可以配置Spark任务的启动时长的优先级高于Spark任务的执行时长。具体而言,可以判断所述Spark任务的目标任务批次的当前的启动时长与所述Spark任务的N个历史任务批次的历史的启动时长的偏差是否超出设定启动时长偏差范围,所述第一偏差范围包括所述设定启动时长偏差范围;若超出所述设定启动时长偏差范围,根据运行指标与执行耗时原因之间的映射关系,确定所述目标任务的执行耗时原因为核占用。
进一步,若未超出所述设定启动时长偏差范围,判断所述Spark任务的目标任务批次的当前的执行时长与N个历史任务批次的历史的执行时长的偏差是否超出设定执行时长偏差范围,所述第一偏差范围包括所述设定执行时长偏差范围;若超出所述设定执行时长偏差范围,根据运行指标与执行耗时原因之间的映射关系,确定所述目标任务的执行耗时原因为带宽占用。
进一步,所述目标任务的N个历史任务批次对应的历史的优先级最高的运行指标可以指N个历史任务批次对应的历史的优先级最高的运行指标进行加权之后的结果,其中,加权可以包括求平均值加权。
在具体实施中,在配置各运行指标的优先级时,考虑的影响因素不同,配置的得到的各运行指标的优先级也不同。
在一非限制性实施例中,可以根据各运行指标引起任务执行耗时的次数设定各运行指标的优先级,其中,优先级与引起任务执行耗时的次数正相关。也即运行指标引起任务执行耗时的次数越多,则该运行指标的优先级越高。从而实现能够优先对引起任务执行耗时的次数较多的运行指标进行分析,以提高任务执行耗时的分析效率,以更快的发现任务的执行耗时的原因。
进一步,针对超出第一偏差范围的运行指标,更新该运行指标引起任务执行耗时的次数。依据更新后的各运行指标引起的任务执行耗时,更新各运行指标的优先级。实现各运行指标优先级的动态更新。
在另一非限制性实施例中,可以根据引起任务执行耗时的原因的类型来确定运行指标的优先级。其中引起任务执行耗时的原因的类型可以包括任务自身引起的任务执行耗时以及其他任务引起的任务执行耗时。对于经常因任务自身引起任务执行耗时的任务,可以配置任务自身引起的任务执行耗时对应的运行指标的优先级高于其他任务引起的任务执行耗时对应的运行指标的优先级。对于经常因其他任务引起任务执行耗时的任务,可以配置其他任务引起的任务执行耗时对应的运行指标的优先级高于任务自身引起的任务执行耗时对应的运行指标的优先级。
进一步,若任务自身引起的任务执行耗时对应的运行指标包括多个时,可以根据各个运行指标引起任务执行耗时的次数,配置各指标的优先级。相应地,若其他任务引起任务执行耗时对应的运行指标包括多个时,可以根据各个运行指标引起任务执行耗时的次数,配置各运行指标的优先级。
在具体实施中,若根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因为其他任务抢占资源,获取其他任务当前占用的各类资源与所述其他任务的历史占用的各类资源,所述其他任务指在所述目标任务的目标任务批次对应的时间段内同时执行的任务;根据所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源的关系,得到其他任务抢占的资源信息并输出,以进一步确定执行耗时的具体原因。
进一步,所得到的其他任务抢占的资源信息可以包括:抢占资源的任务名称、抢占的资源的类型等。当抢占资源的任务的数目为多个时,其他任务抢占的资源信息可以抢占资源的任务列表,列表中可以按照抢占资源的数量从高至低列出前M个任务的任务名称等相关信息,M为正整数。
在具体实施中,根据所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源的关系,得到其他任务抢占的资源信息并输出,具体可以通过如下方式实现:若当前占用的资源包括占用的核的数量,针对所述其他任务中的各任务,判断所述其他任务中的各任务当前占用的核的总数分别与各任务的历史占用的核的总数的偏差是否超出第二偏差范围;根据偏差超出第二偏差范围的任务,得到其他任务抢占的资源信息,其中,所述其他任务抢占的资源信息包括偏差超出第二偏差范围的任务占用的核的数量。
为进一步确定任务的执行耗时的原因或者在偏差未超出第二偏差范围而无法得出任务的执行耗时原因时,在本发明一非限制性实施例中,判断当前的其他任务的任务总数与历史的其他任务的任务总数的偏差是否超出第三偏差范围;若超出所述第三偏差范围,获取当前的其他任务中的新增任务,所述其他任务抢占的资源信息包括所述新增任务占用的资源信息。
由上可知,在分布式系统中的任务执行过程中,通过预设的端口定期采集任务运行过程中产生的集群任务运行状态信息。当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取目标任务的目标任务批次。根据目标任务的目标任务批次,从集群任务运行状态信息中获取目标任务批次对应的当前的运行状态信息,以及从集群任务运行状态信息中获取目标任务的N个历史任务批次对应的历史的运行状态信息。根据目标任务批次对应的当前的运行状态信息与目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因。一方面通过配置设定的端口定期获取任务执行过程中产生的集群任务运行状态信息;另一方面,如果任务执行超时,能够自动从集群任务运行状态信息中获取目标任务批次的当前的运行状态信息,以及从集群任务运行状态信息中获取目标任务的N个历史任务批次对应的历史的运行状态信息,进而基于目标任务批次的当前的运行状态信息以及N个历史任务批次对应的历史的运行状态信息进行执行耗时原因分析,实现任务执行市场超过设定时长,自动进行执行耗时原因分析,相比通过运维人员查看大量的任务日志,系统日志,排查各种资源的使用情况来确定执行耗时原因而言,可以提高执行耗时分析的效率。此外,还可以避免受运维人员的经验影响,提高所得到的执行耗时原因的可靠性。
在具体实施中,上述步骤S13也可以通过如下方式实现:根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,从预设的规则库中选取诊断规则,所述规则库包括若干条诊断规则,各诊断规则分别指示有运行状态信息的判断条件以及执行耗时原因;判断所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,是否满足所选取的诊断规则;若满足所选取的诊断规则,根据所述诊断规则对应的执行耗时原因确定所述任务的执行耗时原因。
在具体实施中,在选取诊断规则后,可以根据诊断规则指示的运行状态信息的判断条件,判断目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息是否满足所述判断条件。
具体而言,所述运行状态信息包括运行指标,所述诊断规则指示的运行状态信息的判断条件包括:运行指标需满足的条件,例如,当前的运行指标与N个历史任务批次对应的历史的运行指标之间的关系。若目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息满足当前的运行指标与N个历史任务批次对应的历史的运行指标之间的关系,则判定满足诊断规则。反之,若不满足当前的运行指标与N个历史任务批次对应的历史的运行指标之间的关系,则判定不满足诊断规则。其中,目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息是否满足当前的运行指标与N个历史任务批次对应的历史的运行指标之间的关系的判断方式,可以参照上述实施例中的描述,此处不再赘述。
在具体实施中,不同类型的任务对应的运行状态信息不同,从而不同类型的任务对应的诊断规则不同。故,为了提高执行耗时分析效率,可以配置任务类型与诊断规则之间的映射关系,可以先根据目标任务的任务类型,从规则库中选择目标任务的任务类型对应的诊断规则,根据目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息从目标任务的任务类型对应的诊断规则中选取最终使用的诊断规则。
进一步,即使同一任务类型对应的多个诊断规则中所采用的运行指标也可以不同。即使诊断规则中采用的运行指标相同,各个运行指标的判断顺序可以不同,具体可以根据各运行指标对应的执行耗时原因等进行配置。
在具体实施中,任务运行状态信息可以包括以下至少一种:当前提交的任务列表、当前运行任务列表,每个任务使用的核(vcore)、占用的内存、各任务的执行时长、各任务中的子任务的执行时长、各任务中的子任务的执行平均时长、各任务中的子任务的执行时长的方差等。具体尔言,不同任务类型的任务对应的任务运行状态信息不同,具体根据实际任务类型进行配置即可。
进一步,诊断规则可以指示一个运行指标需满足的条件,也可以指示多个运行指标需同时满足的条件等。不同诊断规则对应的运行指标不同,具体可以根据任务类型、执行耗时原因等因素配置。
进一步,所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,结合所述目标任务的任务名称,按照各诊断规则的优先级从所述规则库中选取诊断规则。
在具体实施中,各诊断规则的优先级可以根据各诊断规则能够成功确定执行耗时原因的次数确定。针对各诊断规则,诊断规则能够成功确定执行耗时原因的次数与优先级正相关,即能够成功确定执行耗时原因的次数越多,优先级越高,优先级越高的诊断规则被选取的概率越大。
在具体实施中,若不满足所选取的诊断规则,则根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,再次从所述规则库中选取诊断规则,并基于再次从所述规则库中选取的诊断规则,分析任务的执行耗时原因。
进一步,再次从所述规则库中选取诊断规则时,可以根据各诊断规则的优先级,从规则库中未被选过的诊断规则中,按照优先级从高至低的顺序选取诊断规则。
在具体实施中,可以通过设置训练样本,采用深度神经网络模型或者分类模型等具有分类功能的机器学习的方式训练得到规则选取模型。将目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息输入至规则选取模型,以从预设的规则库中选取诊断规则。
进一步,还可以获取其他任务当前占用的各类资源与所述其他任务的历史占用的各类资源,所述其他任务指在所述目标任务的目标任务批次对应的时间段内同时执行的任务。根据目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,以及所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源,从预设的规则库中选取诊断规则。
在具体实施中,可以通过设置训练样本,采用深度神经网络模型或者分类模型等具有分类功能的机器学习的方式训练得到规则选取模型。将目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息、以及其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源输入至规则选取模型,以从预设的规则库中选取诊断规则。
参照图2,给出了本发明实施例中的另一种分布式系统中的任务执行耗时分析方法的流程图,具体可以包括如下步骤:
步骤S201,当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取所述目标任务的目标任务批次。
步骤S202,根据所述目标任务批次从集群任务运行状态信息中获取所述目标任务批次对应的当前的运行状态信息,以及所述目标任务的N个历史任务批次对应的历史的运行状态信息。
步骤S203,判断目标任务类型是否为MapReduce任务。
当判断结果为是时,执行步骤S204;当判断结果为否时,执行步骤S212。
步骤S204,获取MapReduce任务对应的运行指标。
步骤S205,计算目标任务批次的当前的运行指标,以及N次历史任务批次的运行指标的平均值。
步骤S206,判断当前的输入数据量是否大于历史输入数据量的平均值的30%。
可以理解的是,当前的输入数据量是否大于历史输入数据量的平均值的百分比还可以存在其他的取值,此处不做限定。
当判断结果为是时,执行步骤S207;当判断结果为否时,执行步骤S208。
步骤S207,确定任务的执行耗时原因为输入数量增大。
步骤S208,判断当前的Shuffle时长是否大于历史Shuffle时长的平均值的30%。
当判断结果为是时,执行步骤S217或执行步骤S218;当判断结果为否时,执行步骤S209。
步骤S209,判断当前的Reduce时长是否大于历史Reduce时长的平均值的30%。
当判断结果为是时,执行步骤S211;当判断结果为否时,执行步骤S210。
步骤S210,输出未发现明显异常情况,以通知集群运维,进行人工介入做详细诊断。
步骤S211,输出任务执行耗时原因为本地原因。
步骤S217,确定任务的执行耗时原因为带宽占用。
步骤S218,对集群的其他任务运行指标进行分析。
步骤S219,获取其他任务当前占用的各类资源与所述其他任务的历史占用的各类资源。
步骤S220,判断当前的各任务占用的核的总数是否超出历史占用的核的总数的平均值。
当判断结果为是时,执行步骤S221;当判断结果为否时,执行步骤S222。
步骤S221,输出其他任务抢占的资源信息。
可以输出抢占资源的任务列表,以及列表中抢占资源的任务名称、抢占的资源的类型等。
步骤S222,判断当前的其他任务的任务总数与历史的其他任务的任务总数的平均值的偏差是否超出第三偏差范围。
当判断结果为是时,执行步骤S223;当判断结果为否时,结束,可以输出未发现明显异常的提醒。
步骤S223,输出新增任务占用的资源信息。
具体而言,可以输出新增任务的任务名称,还可以输出新增任务占用的资源信息等,以便于集群运维人员直观的获知任务的执行耗时原因。
需要说明的是,在一些实施例中,步骤S218可以在步骤S208判断结果为是时执行,也可以在步骤S217后执行。通过步骤S218至步骤S223可以进一步确定其他任务中的哪方面影响执行耗时,也即可以进一步确定执行耗时的具体原因。
当步骤S203的判断结果为否时,也即目标任务的任务类型不是MapReduce时,执行步骤S212。
步骤S212,判断任务类型是否为Spark任务。
当判断结果为是时,执行步骤S214;当判断结果为否时,执行步骤S213。
步骤S213,其他类型的任务,获取其他类型的任务对应的运行指标,并分析执行耗时原因。
步骤S214,获取Spark任务对应的运行指标。
在具体实施中,Spark任务的运行指标可以包括Spark任务的启动时长,Spark任务的执行时长等。
步骤S215,计算目标任务批次的当前的运行指标,以及N次历史任务批次的运行指标的平均值。
其中,针对Spark任务,对于所需要的资源,通常分配的资源满足其需求之后方启动,若是分配的资源小于所需要的资源,则一直处于启动状态,直至分配的资源满足其实际需求,才完成Spark任务的启动,并进入Spark任务的执行状态。
因此,关于目标任务批次的当前的运行指标的计算,可以根据Spark任务的开始启动的时间以及完成Spark任务的启动时间,计算得到Spark任务的启动时长。根据Spark任务的完成时间以及开始启动时间可以计算得到Spark任务的总时长,将Spark任务的总时长减去Spark任务的启动时长可以得到Spark任务的执行时长。
关于目标任务的N个历史任务批次对应的历史的运行状态信息,本实施例中取N次历史任务批次的运行指标的平均值。也即,运行指标为Spark任务的启动时长时,计算N个历史任务批次的Spark任务的启动时长的平均值(后续简称为历史启动时长的平均值);运行指标为Spark任务的执行时长时,计算N个历史任务批次的Spark任务的执行时长的平均值(后续简称为历史执行时长的平均值)。
步骤S216,判断当前的启动时长是否大于历史启动时长的平均值的30%。
需要说明的是,上述步骤S206、步骤S208、步骤S209以及步骤S216中提到的平均值的30%仅为示意性举例说明。可以理解的是,实际应用中,并不局限于平均值的30%,还可以为平均值的20%、40%或者其他大于30%,或者其他小于30%的值,具体根据实际应用场景需求进行配置即可,此处不做限定。
当判断结果为是时,执行步骤S218;当判断结果为否时,执行步骤S224。
其中,步骤S218至步骤S222的具体描述参见上述描述,此处不再赘述。
当步骤S222的判断结果为是时,执行步骤S223;判断结果为否时,执行步骤S224。
步骤S224,判断当前的执行时长是否大于历史执行时长的平均值的30%。
当判断结果为是时,执行步骤S225;当判断结果为否时,执行步骤S226。
在具体实施中,判断当前的执行时长是否大于历史执行时长的平均值的30%中的30%仅为示意性举例说明,在实际中,还可以取20%、25%、40%或者其他大于30%或者小于30%的值,此处不做限定,具体根据实际应用场景的需求进行配置即可。
进一步,在步骤S208与步骤S209之间,还可以包括:当判断结果为否时,获取为所述目标任务分配的各分布节点的当前数据传输时长;根据各分布节点的当前数据传输时长计算平均数据传输时长以及方差;若各分布节点中的最大数据传输时长与所述平均数据传输时长的偏差超出设定阈值,且所述方差大于设定方差阈值,确定所述目标任务的执行耗时原因为分布节点的数据分布不均衡。当各分布节点中的最大数据传输时长与所述平均数据传输时长的偏差未超出所述设定阈值,且所述方差不大于所述设定方差阈值时,执行步骤S209。
需要说明的是,上述图2仅为便于本领域技术人员更好的理解本发明实施例而示例的其中一个具体实现方式,,上述示例并不对本发明的保护范围构成限制。在实际中,还可以存在其他的实现方式,具体而言,各个步骤之间的相对执行顺序不限定上述举例,也可以存在其他的执行顺序,具体根据需求进行配置即可;目标任务类型不同时,分布式系统中的任务执行耗时分析对应的步骤也相应的不同,可以为上述示例中的部分步骤。
本发明实施例提供一种分布式系统中的任务执行耗时分析装置,参照图3,给出了本发明实施例中的一种分布式系统中的任务执行耗时分析装置的结构示意图,所述分布式系统中的任务执行耗时分析装置30可以包括:
第一获取单元31,用于当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取所述目标任务的目标任务批次;
第二获取单元32,用于根据所述目标任务批次从集群任务运行状态信息中获取所述目标任务批次对应的当前的运行状态信息,以及所述目标任务的N个历史任务批次对应的历史的运行状态信息,其中,所述集群任务运行状态信息为在任务执行过程中产生并通过定时调用预设的端口采集得到的,N为正整数;
分析单元33,用于根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因。
在具体实施中,分布式系统中的任务执行耗时分析装置30的工作原理及工作流程,可以参见本发明上述任一实施例中提供的分布式系统中的任务执行耗时分析方法中的描述,此处不再赘述。
本发明实施例提供一种存储介质,所述存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一实施例提供的分布式系统中的任务执行耗时分析方法的步骤。
本发明实施例提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述任一实施例提供的分布式系统中的任务执行耗时分析方法的步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于任一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种分布式系统中的任务执行耗时分析方法,其特征在于,包括:
当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取所述目标任务的目标任务批次;
根据所述目标任务批次从集群任务运行状态信息中获取所述目标任务批次对应的当前的运行状态信息,以及所述目标任务的N个历史任务批次对应的历史的运行状态信息,其中,所述集群任务运行状态信息为在任务执行过程中产生并通过定时调用预设的端口采集得到的,N为正整数;
根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因;
其中,所述集群任务运行状态信息包括若干个运行指标,所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因,包括:
判断所述目标任务批次对应的当前的各运行指标分别与所述目标任务的N个历史任务批次对应的历史的各运行指标的偏差是否超出第一偏差范围,根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因;
或者,所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因,包括:
根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,从预设的规则库中选取诊断规则,所述规则库包括若干条诊断规则,各诊断规则分别指示有运行状态信息的判断条件以及执行耗时原因;
判断所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,是否满足所选取的诊断规则;
若满足所选取的诊断规则,根据所述诊断规则对应的执行耗时原因确定所述任务的执行耗时原因。
2.如权利要求1所述分布式系统中的任务执行耗时分析方法,其特征在于,所述判断所述目标任务批次对应的当前的各运行指标分别与所述目标任务的N个历史任务批次对应的历史的各运行指标的偏差是否超出第一偏差范围,根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因,包括:
根据各运行指标的优先级,从所有运行指标中选取优先级最高的运行指标;
判断所述目标任务批次对应的当前的优先级最高的运行指标与所述目标任务的N个历史任务批次对应的历史的优先级最高的运行指标的偏差是否超出第一偏差范围,若超出所述第一偏差范围,获取所述优先级最高的运行指标对应的执行耗时原因,将所述优先级最高的运行指标对应的执行耗时原因作为所述目标任务的执行耗时原因;
若未超出所述第一偏差范围,按照各运行指标的优先级从高至低,选择下一运行指标,并基于所选择的运行指标,分析任务的执行耗时原因。
3.如权利要求2所述的分布式系统中的任务执行耗时分析方法,其特征在于,各运行指标的优先级根据各运行指标引起任务执行耗时的次数设定,且优先级与引起任务执行耗时的次数正相关。
4.如权利要求3所述的分布式系统中的任务执行耗时分析方法,其特征在于,还包括:
针对超出第一偏差范围的运行指标,更新该运行指标引起任务执行耗时的次数;
依据更新后的各运行指标引起的任务执行耗时次数,更新各运行指标的优先级。
5.如权利要求1至4任一项所述的分布式系统中的任务执行耗时分析方法,其特征在于,还包括:
若根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因为其他任务抢占资源,获取其他任务当前占用的各类资源与所述其他任务的历史占用的各类资源,所述其他任务指在所述目标任务的目标任务批次对应的时间段内同时执行的任务;
根据所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源的关系,得到其他任务抢占的资源信息并输出。
6.如权利要求5所述的分布式系统中的任务执行耗时分析方法,其特征在于,所述根据所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源的关系,得到其他任务抢占的资源信息并输出,包括:
若当前占用的资源包括占用的核的数量,针对所述其他任务中的各任务,判断所述其他任务中的各任务当前占用的核的总数分别与各任务的历史占用的核的总数的偏差是否超出第二偏差范围;
根据偏差超出第二偏差范围的任务,得到其他任务抢占的资源信息,其中,所述其他任务抢占的资源信息包括偏差超出第二偏差范围的任务占用的核的数量。
7.如权利要求6所述的分布式系统中的任务执行耗时分析方法,其特征在于,还包括:
判断当前的其他任务的任务总数与历史的其他任务的任务总数的偏差是否超出第三偏差范围;
若超出所述第三偏差范围,获取当前的其他任务中的新增任务,所述其他任务抢占的资源信息包括所述新增任务占用的资源信息。
8.如权利要求1所述的分布式系统中的任务执行耗时分析方法,其特征在于,所述目标任务的N个历史任务批次对应的历史的各运行指标采用如下方式得到:
获取距所述目标任务批次最近且与所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标;
将所述距所述目标任务批次最近且与所述目标任务批次执行时段相同的N个历史任务批次对应的历史的运行指标,作为所述目标任务的N个历史任务批次对应的历史的各运行指标。
9.如权利要求1所述的分布式系统中的任务执行耗时分析方法,其特征在于,所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,从预设的规则库中选取诊断规则,包括:
所述根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,结合所述目标任务的任务名称,按照各诊断规则的优先级从所述规则库中选取诊断规则。
10.如权利要求1所述的分布式系统中的任务执行耗时分析方法,其特征在于,还包括:
若不满足所选取的诊断规则,则根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,再次从所述规则库中选取诊断规则,并基于再次从所述规则库中选取的诊断规则,分析任务的执行耗时原因。
11.如权利要求1所述的分布式系统中的任务执行耗时分析方法,其特征在于,还包括:
获取其他任务当前占用的各类资源与所述其他任务的历史占用的各类资源,所述其他任务指在所述目标任务的目标任务批次对应的时间段内同时执行的任务;
根据目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,以及所述其他任务的当前占用的各类资源分别与所述其他任务的历史占用的各类资源,从预设的规则库中选取诊断规则。
12.一种分布式系统中的任务执行耗时分析装置,其特征在于,包括:
第一获取单元,用于当检测到任务的执行时长超过设定时长时,将执行时长超过设定时长的任务作为待分析的目标任务,并获取所述目标任务的目标任务批次;
第二获取单元,用于根据所述目标任务批次从集群任务运行状态信息中获取所述目标任务批次对应的当前的运行状态信息,以及所述目标任务的N个历史任务批次对应的历史的运行状态信息,其中,所述集群任务运行状态信息为在任务执行过程中产生并通过定时调用预设的端口采集得到的,N为正整数;
分析单元,用于根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,分析任务的执行耗时原因;
其中,所述集群任务运行状态信息包括若干个运行指标,所述分析单元用于判断所述目标任务批次对应的当前的各运行指标分别与所述目标任务的N个历史任务批次对应的历史的各运行指标的偏差是否超出第一偏差范围,根据超出所述第一偏差范围的运行指标,结合预设的运行指标与执行耗时原因之间的映射关系,得到所述目标任务的执行耗时原因;
或者,所述分析单元用于根据所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,从预设的规则库中选取诊断规则,所述规则库包括若干条诊断规则,各诊断规则分别指示有运行状态信息的判断条件以及执行耗时原因;判断所述目标任务批次对应的当前的运行状态信息与所述目标任务的N个历史任务批次对应的历史的运行状态信息,是否满足所选取的诊断规则;若满足所选取的诊断规则,根据所述诊断规则对应的执行耗时原因确定所述任务的执行耗时原因。
13.一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至11任一项所述的分布式系统中的任务执行耗时分析方法的步骤。
14.一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至11中任一项所述的分布式系统中的任务执行耗时分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110801636.6A CN113468036B (zh) | 2021-07-15 | 2021-07-15 | 任务执行耗时分析方法及装置、存储介质、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110801636.6A CN113468036B (zh) | 2021-07-15 | 2021-07-15 | 任务执行耗时分析方法及装置、存储介质、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468036A CN113468036A (zh) | 2021-10-01 |
CN113468036B true CN113468036B (zh) | 2023-11-24 |
Family
ID=77880587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110801636.6A Active CN113468036B (zh) | 2021-07-15 | 2021-07-15 | 任务执行耗时分析方法及装置、存储介质、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468036B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138398A (zh) * | 2015-09-30 | 2015-12-09 | 山东乾云启创信息科技有限公司 | 同步通信模式下socket通信与进程管理通用平台及方法 |
CN108132885A (zh) * | 2018-01-02 | 2018-06-08 | 北京奇虎科技有限公司 | 数据获取方法、装置及电子设备 |
CN109376027A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 一种异常销毁进程的处理方法及终端 |
CN110262878A (zh) * | 2019-05-06 | 2019-09-20 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、设备及计算机可读存储介质 |
CN110635962A (zh) * | 2018-06-25 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 用于分布式系统的异常分析方法及装置 |
CN111190753A (zh) * | 2019-12-30 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 分布式任务处理方法、装置、存储介质和计算机设备 |
CN111290917A (zh) * | 2020-02-26 | 2020-06-16 | 深圳市云智融科技有限公司 | 基于yarn的资源监控方法、装置及终端设备 |
CN111475298A (zh) * | 2020-04-03 | 2020-07-31 | 北京字节跳动网络技术有限公司 | 任务处理方法、装置、设备及存储介质 |
CN112689112A (zh) * | 2020-12-15 | 2021-04-20 | 平安普惠企业管理有限公司 | 视频交流系统的耗时分析及优化方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11983094B2 (en) * | 2019-12-05 | 2024-05-14 | Microsoft Technology Licensing, Llc | Software diagnostic context selection and use |
-
2021
- 2021-07-15 CN CN202110801636.6A patent/CN113468036B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138398A (zh) * | 2015-09-30 | 2015-12-09 | 山东乾云启创信息科技有限公司 | 同步通信模式下socket通信与进程管理通用平台及方法 |
CN108132885A (zh) * | 2018-01-02 | 2018-06-08 | 北京奇虎科技有限公司 | 数据获取方法、装置及电子设备 |
CN110635962A (zh) * | 2018-06-25 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 用于分布式系统的异常分析方法及装置 |
CN109376027A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 一种异常销毁进程的处理方法及终端 |
CN110262878A (zh) * | 2019-05-06 | 2019-09-20 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、设备及计算机可读存储介质 |
CN111190753A (zh) * | 2019-12-30 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 分布式任务处理方法、装置、存储介质和计算机设备 |
CN111290917A (zh) * | 2020-02-26 | 2020-06-16 | 深圳市云智融科技有限公司 | 基于yarn的资源监控方法、装置及终端设备 |
CN111475298A (zh) * | 2020-04-03 | 2020-07-31 | 北京字节跳动网络技术有限公司 | 任务处理方法、装置、设备及存储介质 |
CN112689112A (zh) * | 2020-12-15 | 2021-04-20 | 平安普惠企业管理有限公司 | 视频交流系统的耗时分析及优化方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
实时多任务系统的超时故障分析;雷航 等;电子科技大学学报;第36卷(第03期);第273-278页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113468036A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10474504B2 (en) | Distributed node intra-group task scheduling method and system | |
US9430288B2 (en) | Job scheduling based on historical job data | |
US11474874B2 (en) | Systems and methods for auto-scaling a big data system | |
CN112749221A (zh) | 数据任务调度方法、装置、存储介质及调度工具 | |
CN115269147A (zh) | 一种批量任务处理方法、装置、设备及存储介质 | |
CN114518945A (zh) | 一种资源调度方法、装置、设备及存储介质 | |
CN110532156B (zh) | 一种容量预测方法及装置 | |
CN111985851A (zh) | 银行网点资源调度方法及装置 | |
CN106686619B (zh) | 一种性能评估方法和设备 | |
CN113468036B (zh) | 任务执行耗时分析方法及装置、存储介质、终端 | |
CN113391911A (zh) | 一种大数据资源动态调度方法、装置和设备 | |
CN117608840A (zh) | 一种智能监控系统资源综合管理的任务处理方法及系统 | |
CN115271102B (zh) | 一种机器学习引擎的任务导向的优先级方法及系统 | |
CN117435306A (zh) | 集群容器扩缩容方法、装置、设备及存储介质 | |
CN116048773B (zh) | 一种基于波函数坍缩的分布式协作任务指派方法和系统 | |
CN113722141B (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
CN115330219A (zh) | 一种资源调度的方法及装置 | |
CN110928649A (zh) | 资源调度的方法和装置 | |
CN113296907B (zh) | 一种基于集群的任务调度处理方法、系统和计算机设备 | |
CN112948092A (zh) | 批量作业的调度方法、装置、电子设备及存储介质 | |
CN110113434B (zh) | 作业自动调度均衡方法、装置、设备及存储介质 | |
CN111782688A (zh) | 基于大数据分析的请求处理方法、装置、设备及存储介质 | |
CN111625352A (zh) | 调度方法、装置及存储介质 | |
CN110825493A (zh) | 一种虚拟机调优的方法及装置 | |
CN116089248B (zh) | 一种写i/o突发分布预测方法、装置、设备及存储介质 |
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 |