CN113742117A - 分布式任务诊断方法、装置以及存储介质 - Google Patents

分布式任务诊断方法、装置以及存储介质 Download PDF

Info

Publication number
CN113742117A
CN113742117A CN202110018305.5A CN202110018305A CN113742117A CN 113742117 A CN113742117 A CN 113742117A CN 202110018305 A CN202110018305 A CN 202110018305A CN 113742117 A CN113742117 A CN 113742117A
Authority
CN
China
Prior art keywords
task
distributed
information
backpressure
diagnosis
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.)
Granted
Application number
CN202110018305.5A
Other languages
English (en)
Other versions
CN113742117B (zh
Inventor
陈冬林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110018305.5A priority Critical patent/CN113742117B/zh
Publication of CN113742117A publication Critical patent/CN113742117A/zh
Application granted granted Critical
Publication of CN113742117B publication Critical patent/CN113742117B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种分布式任务诊断方法、装置以及存储介质,涉及计算机技术领域,其中的方法包括:接收分布式任务管理设备发送的分布式任务诊断开启指令,获取与分布式任务诊断开启指令相对应的分布式任务的运行状态数据;根据预设的任务诊断规则对运行状态数据进行诊断处理,生成分布式任务诊断结果;生成对应的任务处理信息,将任务处理信息发送给分布式任务管理设备,以使分布式任务管理设备根据任务处理信息进行相应的操作。本公开的方法、装置以及存储介质,能够为分布式任务提供智能诊断功能,可以根据诊断结果优化分布式任务;提供资源弹性伸缩功能,保证任务的正常运行且资源得到有效利用,使分布式任务稳定运行,提高用户体验。

Description

分布式任务诊断方法、装置以及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种分布式任务诊断方法、装置以及存储介质。
背景技术
在分布式计算过程中,一个作业通常会被分解成多个分布式任务,将多个分布式任务分配给多个物理节点进行并行计算。分布式任务可以有多种,例如Flink任务等。对于分布式计算,可以将多个Flink任务(子任务)连接到一起组成任务,每一个Flink任务由一个线程来执行。目前,在运行中存在Flink任务并行度设置不合理,造成资源浪费,以及任务CPU和内存到瓶颈时无法自动扩容等问题。Flink用户只能通过Flink UI查看当前任务的状态是否正常,任务是否存在故障恢复,以及是否存在背压压和异常等。由于缺少任务健康审查机制,无法智能诊断任务状态,定位问题耗时较长并且无法精准定位问题,使用户无法精准评估自己的任务所需要的资源,可能会造成资源的浪费,并影响系统运行的稳定性。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种分布式任务诊断方法、装置以及存储介质。
根据本公开的第一方面,提供一种分布式任务诊断方法,包括:接收分布式任务管理设备发送的分布式任务诊断开启指令,获取与所述分布式任务诊断开启指令相对应的分布式任务的运行状态数据;根据预设的任务诊断规则对所述运行状态数据进行诊断处理,生成分布式任务诊断结果;基于所述分布式任务诊断结果生成对应的任务处理信息,将所述任务处理信息发送给所述分布式任务管理设备,以使所述分布式任务管理设备根据所述任务处理信息进行相应的操作。
可选地,所述分布式任务诊断开启指令中携带的信息包括:任务ID、查询地址信息、运行指标信息;所述获取与所述分布式任务诊断开启指令相对应的分布式任务的运行状态数据包括:根据所述查询地址信息获取与所述任务ID相对应的所述运行状态数据;其中,所述运行状态数据包括:任务TOPO信息、运行时长、重启信息、任务运行信息、资源使用信息。
可选地,所述根据预设的任务诊断规则对所述运行状态数据进行诊断处理包括:基于所述运行时长判断所述分布式任务是否满足预设的运行时长条件;基于所述重启信息判断所述分布式任务是否存在重启情况;基于所述任务运行信息判断所述分布式任务是否存在背压情况;基于所述任务TOPO信息和所述资源使用信息判断所述分布式任务是否存在资源分配过多情况。
可选地,所述基于所述任务运行信息判断所述分布式任务是否存在背压情况包括:基于所述任务运行信息获取分布式背压任务;其中,所述分布式背压任务对于任务请求的等待时长超过预设的等待时长阈值;如果所述分布式背压任务的数量大于预设的任务数量阈值,则确定存在背压情况。
可选地,在确定存在背压情况之后,基于所述任务TOPO信息、所述任务运行信息和所述资源使用信息确定与所述分布式背压任务相对应的存在背压情况的原因;其中,所述存在背压情况的原因包括:数据倾斜、任务槽分配不均、实例运行缓慢和资源不足中的至少一项。
可选地,所述确定与所述分布式背压任务相对应的存在背压情况的原因包括:基于所述任务TOPO信息确定与所述分布式背压任务相对应的算子;获取与所述算子相对应的其他任务的第一数据输入量;基于所述任务运行信息获取所述分布式背压任务的第二数据输入量;如果所述第一数据输入量和所述第二数据输入量之差大于数据量阈值,则确定所述存在背压情况的原因为数据倾斜。
可选地,所述确定与所述分布式背压任务相对应的存在背压情况的原因包括:基于所述任务TOPO信息确定与所述分布式背压任务相对应的算子;获取与所述分布式背压任务相对应的任务槽;获取与所述算子相对应的、被分配了所述任务槽的其他任务;如果所述其他任务消耗的资源超过预设的资源阈值,或者所述其他任务的资源占用比例超过预设的比例阈值,则确定所述存在背压情况的原因为任务槽分配不均;其中,所述资源包括:CPU和内存。
可选地,所述确定与所述分布式背压任务相对应的存在背压情况的原因包括:将所述分布式背压任务的第一数据处理能力与其他任务的第二数据处理能力进行比对,基于比对结果确定所述存在背压情况的原因是否为实例运行缓慢。
可选地,所述确定与所述分布式背压任务相对应的存在背压情况的原因包括:基于所述任务TOPO信息确定与所述分布式背压任务部署的物理节点;如果确定所述物理节点的资源使用量超过预设的第一资源使用阈值,则确定所述存在背压情况的原因为资源不足;其中,所述资源包括:CPU和内存。
可选地,所述基于所述任务TOPO信息和所述资源使用信息判断所述分布式任务是否存在资源分配过多情况包括:基于所述任务TOPO信息确定与所述分布式背压任务相对应的物理节点;如果确定所述物理节点的资源使用量低于预设的第二资源使用阈值,则确定所述分布式任务存在资源分配过多情况;其中,所述资源包括:CPU和内存。
可选地,所述基于所述分布式任务诊断结果生成对应的任务处理信息包括:基于所述存在背压情况的原因和/或所述分布式任务存在资源分配过多情况,生成所述任务处理信息;其中,所述任务处理信息包括资源调整指令和/或资源调整建议信息。
可选地,所述分布式任务管理设备在接收到所述资源调整指令之后,根据所述资源调整指令进行相应的资源调整操作;所述分布式任务管理设备在接收到所述资源调整建议信息之后,进行提示操作。
可选地,所述查询地址信息包括:运行状态数据库地址;所述根据所述查询地址信息获取与所述任务ID相对应的所述运行状态数据包括:基于所述运行状态数据库地址,从运行状态数据库获取与所述任务ID相对应的所述运行状态数据;其中,分布式任务集群周期性地将所述运行状态数据发送到所述运行状态数据库。
可选地,所述分布式任务包括:Flink任务。
根据本公开的第一方面,提供一种分布式任务诊断装置,包括:数据获取模块,用于接收分布式任务管理设备发送的分布式任务诊断开启指令,获取与所述分布式任务诊断开启指令相对应的分布式任务的运行状态数据;任务诊断模块,用于根据预设的任务诊断规则对所述运行状态数据进行诊断处理,生成分布式任务诊断结果;任务处理模块,用于基于所述分布式任务诊断结果生成对应的任务处理信息,将所述任务处理信息发送给所述分布式任务管理设备,以使所述分布式任务管理设备根据所述任务处理信息进行相应的操作。
根据本公开的第三方面,提供一种分布式任务诊断装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如上的分布式任务诊断方法。
本公开的分布式任务诊断方法、装置以及存储介质,获取与分布式任务诊断开启指令相对应的分布式任务的运行状态数据,根据任务诊断规则对运行状态数据进行诊断处理,生成分布式任务诊断结果并生成对应的任务处理信息;能够为分布式任务提供智能诊断功能,可以根据诊断结果优化分布式任务;提供资源弹性伸缩功能,保证任务的正常运行且资源得到有效利用,使分布式任务稳定运行,提高用户体验。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为根据本公开的分布式任务诊断方法的一个实施例的流程示意图;
图2为根据本公开的分布式任务诊断方法的一个实施例中的判断分布式任务是否存在背压情况的流程示意图;
图3为根据本公开的分布式任务诊断方法的一个实施例中的判断是否出现数据倾斜的流程示意图;
图4为根据本公开的分布式任务诊断方法的一个实施例中的判断是否出现任务槽分配不均的流程示意图;
图5为本公开的分布式任务诊断方法在实际应用中的架构示意图;
图6为本公开的分布式任务诊断方法在实际应用中的信息交互时序示意图;
图7为根据本公开的分布式任务诊断装置的一个实施例的模块示意图;
图8为根据本公开的分布式任务诊断装置的一个实施例中的任务诊断模块的模块示意图;
图9为根据本公开的分布式任务诊断装置的一个实施例中的任务背压诊断单元的模块示意图;
图10为根据本公开的分布式任务诊断装置的另一个实施例的模块示意图。
具体实施方式
下面参照附图对本公开进行更全面的描述,其中说明本公开的示例性实施例。下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。下面结合各个图和实施例对本公开的技术方案进行多方面的描述。
图1为根据本公开的分布式任务诊断方法的一个实施例的流程示意图,如图1所示:
步骤101,接收分布式任务管理设备发送的分布式任务诊断开启指令,获取与分布式任务诊断开启指令相对应的分布式任务的运行状态数据。
在一个实施例中,分布式任务可以为Flink任务等。Flink设计为在所有常见的集群环境中运行,Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。可以利用Flink引擎构建Flink任务,并将Flink任务提交至集群处理。分布式任务管理设备可以为Flink任务管理设备等,用于对Flink任务、以及Flink集群进行管理。
步骤102,根据预设的任务诊断规则对运行状态数据进行诊断处理,生成分布式任务诊断结果。
步骤103,基于分布式任务诊断结果生成对应的任务处理信息,将任务处理信息发送给分布式任务管理设备,以使分布式任务管理设备根据任务处理信息进行相应的操作。
在一个实施例中,分布式任务诊断开启指令中携带的信息包括:任务ID、查询地址信息、运行指标信息等;查询地址信息包括:用于获取运行指标信息的地址、用于获取任务TOPO信息的地址、获取历史诊断结果地址等;运行指标包括运行时长、重启信息、任务运行、资源使用等指标。
例如,查询地址信息包括运行状态数据库地址,基于运行状态数据库地址,从运行状态数据库获取与任务ID相对应的运行状态数据。分布式任务集群周期性地将运行状态数据发送到运行状态数据库,分布式任务集群可以为Flink集群等。运行状态数据包括任务TOPO(拓扑)信息、运行时长、重启信息、任务运行信息、资源使用信息等信息。TOPO信息包括Flink任务部署的物理节点信息、以及与Flink任务相对应的算子(operator)信息等信息;任务运行信息包括任务接收的数据量、任务处理时间、任务等待时间等信息;资源使用信息包括任务使用的CPU、内存等信息。
在一个实施例中,任务诊断规则可以包括多个规则。例如,基于运行时长判断分布式任务是否满足预设的运行时长条件,基于重启信息判断分布式任务是否存在重启情况,基于任务运行信息判断分布式任务是否存在背压情况,基于任务TOPO信息和资源使用信息判断分布式任务是否存在资源分配过多情况。
基于诊断结果生成任务处理信息,任务处理信息包括分布式任务运行时长情况、是否存在重启情况、是否存在背压情况、是否存在资源分配过多情况等信息。将任务处理信息存储在数据库中,并向分布式任务管理设备发送,分布式任务管理设备可以进行相应的操作,例如,分布式任务管理设备调整对于各个分布式任务所分配的CPU、内存等资源。
图2为根据本公开的分布式任务诊断方法的一个实施例中的判断分布式任务是否存在背压情况的流程示意图,如图2所示:
步骤201,基于任务运行信息获取分布式背压任务;其中,分布式背压任务对于任务请求的等待时长超过预设的等待时长阈值。
在一个实施例中,分布式背压任务可以为Flink背压任务等,Flink背压任务为出现阻塞的Flink任务。例如,如果一个Flink任务对于一个任务请求的等待时长超过预设的等待时长阈值,则确定此Flink任务发生阻塞,则将此Flink任务确定为Flink背压任务。
步骤202,如果分布式背压任务的数量大于预设的任务数量阈值,则确定存在背压情况。任务数量阈值可以设置,例如任务数量阈值为5、6等。
步骤203,在确定存在背压情况之后,基于任务TOPO信息、任务运行信息和资源使用信息确定与分布式背压任务相对应的存在背压情况的原因。存在背压情况的原因包括数据倾斜、任务槽分配不均、实例运行缓慢和资源不足等。
图3为根据本公开的分布式任务诊断方法的一个实施例中的判断是否出现数据倾斜的流程示意图,如图3所示:
步骤301,基于任务TOPO信息确定与分布式背压任务相对应的算子。
在一个实施例中,算子可以为现有的多种operator。Flink的整个数据处理流程是由多个operator组成的,一个operator具有一个或多个operator子任务,operator子任务即为Flink任务。根据获取的任务TOPO信息确定与Flink任务相对应的算子operator。
步骤302,获取与算子相对应的其他任务的第一数据输入量。
在一个实施例中,获取与operator相对应的全部其他任务,其他任务可以为其他Flink任务等。获取其他Flink任务的第一数据输入量,即与其他Flink任务对应的数据输入量。
步骤303,基于任务运行信息获取分布式背压任务的第二数据输入量。例如,获取Flink任务的第二数据输入量,即与Flink任务对应的数据输入量。
步骤304,如果第一数据输入量和第二数据输入量之差大于数据量阈值,则确定存在背压情况的原因为数据倾斜。其中,数据量阈值可以设置。
在一个实施例中,数据倾斜是指一部分任务的输入数据很多,而另一部分任务的输入数据很少的现象。获取运行时的拓扑信息,根据拓扑信息获取与引起背压的Flink背压任务相对应的operator,获取此operator所有的任务,查询所有任务的输入数据。
判断当前产生背压的Flink背压任务和其余任务的输入数据量有没有数量级差别,例如,当前产生背压的task的第二输入数据量是100M,而其余任务的第一输入数据量是10M,则确定存在背压情况的原因为数据倾斜。
图4为根据本公开的分布式任务诊断方法的一个实施例中的判断是否出现任务槽分配不均的流程示意图,如图4所示:
步骤401,基于任务TOPO信息确定与分布式背压任务相对应的算子。
步骤402,获取与分布式背压任务相对应的任务槽。
步骤403,获取与算子相对应的、被分配了任务槽的其他任务。
步骤404,如果其他任务消耗的资源超过预设的资源阈值,或者其他任务的资源占用比例超过预设的比例阈值,则确定存在背压情况的原因为任务槽分配不均;其中,资源包括:CPU和内存等。
例如,资源阈值为60%,比例阈值为3/4;如果其他任务消耗的CPU和内存超过60%,或者其他任务的资源占用比例超过3/4,则确定存在背压情况的原因为任务槽分配不均。
在一个实施例中,Flink通过任务槽(Task Slot)定义执行资源,每个TaskManager都有一或多个任务槽,每个任务槽都可以并行执行任务。operator是在TaskManager的slot中执行的,一个operator在一个slot中执行。
获取运行时的拓扑信息,根据拓扑信息获取与引起背压的Flink背压任务相对应的operator,获取此operator所有的任务,判断其他任务的CPU负载和GC是否超过阈值,如果超过,则确定存在背压情况的原因为任务槽分配不均,或者,如果其他任务的资源占用比例超过预设的比例阈值,则确定存在背压情况的原因为任务槽分配不均。
在一个实施例中,将分布式背压任务的第一数据处理能力与其他任务的第二数据处理能力进行比对,基于比对结果确定存在背压情况的原因是否为实例运行缓慢。例如,在输入数据相同的情况下,如果Flink背压任务的第二数据处理能力明显低于其他任务的第一数据处理能力,则确定存在背压情况的原因为实例运行缓慢。
基于任务TOPO信息确定与分布式背压任务部署的物理节点,如果确定物理节点的资源使用量超过预设的第一资源使用阈值,则确定存在背压情况的原因为资源不足,资源包括CPU和内存等。例如,CPU负载或者GC超过阈值,确定存在背压情况的原因为资源不足。
在一个实施例中,基于任务TOPO信息确定在Flink集群中部署Flink背压任务的物理节点,如果确定此物理节点的CPU和内存等的使用量超过第一资源使用阈值,第一资源使用阈值可以为60%、70%等,则确定存在背压情况的原因为资源不足。
基于任务TOPO信息确定与分布式背压任务相对应的物理节点,如果确定物理节点的资源使用量低于预设的第二资源使用阈值,则确定分布式任务存在资源分配过多情况。例如,基于任务TOPO信息确定在Flink集群中部署Flink任务的物理节点,如果确定此物理节点的CPU和内存等的使用量低于第二资源使用阈值,第二资源使用阈值可以为30%、40%等,则确定存在资源分配过多情况。
在一个实施例中,基于存在背压情况的原因和/或分布式任务存在资源分配过多情况,生成任务处理信息,任务处理信息包括资源调整指令和/或资源调整建议信息。
分布式任务管理设备在接收到资源调整指令之后,根据资源调整指令进行相应的资源调整操作,例如,Flink管理设备进行的资源调整操作包括对Flink任务分配新的物理节点、分配更多的CPU和内存资源等操作,提供资源弹性伸缩功能。Flink管理设备在接收到资源调整建议信息之后,进行的提示操作包括:向用户提供优化方案等。
本公开的分布式任务诊断方法能够为Flink任务提供智能诊断功能,用户可根据诊断结果优化Flink任务;提供资源弹性伸缩功能当,诊断到任务存在资源浪费时,自动缩容节省资源;诊断到任务资源不足时,自动扩容,调整任务并行度,保证任务的正常运行且资源得到有效利用。
在一个实施例中,如图5所示,Flink产品端为Flink任务管理设备,诊断器为分布式任务诊断装置,Flink任务部署在Flink Cluster(集群)中进行运行。Flink集群周期性地将运行状态数据发送到运行状态数据库Metric Storage数据库。
Flink产品端用于发布、启停Flink任务。Metric Storage数据库存储Flink任务的实时运行状态数据。Metric puller从Metric Storage数据库查询metric指标(运行状态数据)。诊断器自定义配置各种任务诊断规则,进行诊断处理并调整策略等。
如图6所示,任务管理设备为Flink产品端,发送智能诊断开关指令,指令中携带的信息包括任务ID、多个查询地址信息、运行指标信息等信息,用于开启智能诊断。分布式任务诊断装置定期基于metric进行诊断,给出相应的解决方案,如果需要资源伸缩则配合Flink产品端,对任务并行度进行调整。分布式任务诊断装置和JRC(京东实时计算平台)协同工作,JRC平台包括Flink产品端,提供开启关闭诊断功能,提供需要诊断的任务信息。分布式任务诊断装置基于诊断结果生成对应的任务处理信息,将任务处理信息发送给Flink产品端。
分布式任务诊断装置基于诊断规则执行诊断处理,包括:任务运行时长是否满足条件、任务是否存在重启、任务是否存在背压、判断是否存在资源浪费等;对于任务存在背压的情况,需要判断:是否存在数据倾斜、是否存在分配不均、是否存在慢实例、判断是否存在资源不足等。
在一个实施例中,如图7所示,本公开提供一种分布式任务诊断装置,包括数据获取模块71、任务诊断模块72和任务处理模块73。数据获取模块71接收分布式任务管理设备发送的分布式任务诊断开启指令,获取与分布式任务诊断开启指令相对应的分布式任务的运行状态数据。
任务诊断模块72根据预设的任务诊断规则对运行状态数据进行诊断处理,生成分布式任务诊断结果。任务处理模块73基于分布式任务诊断结果生成对应的任务处理信息,将任务处理信息发送给分布式任务管理设备,以使分布式任务管理设备根据任务处理信息进行相应的操作。
在一个实施例中,分布式任务诊断开启指令中携带的信息包括:任务ID、查询地址信息、运行指标信息等。数据获取模块71根据查询地址信息获取与任务ID相对应的运行状态数据;其中,运行状态数据包括:任务TOPO信息、运行时长、重启信息、任务运行信息、资源使用信息等。
例如,查询地址信息包括运行状态数据库地址,数据获取模块71基于运行状态数据库地址,从运行状态数据库获取与任务ID相对应的运行状态数据;其中,分布式任务集群周期性地将运行状态数据发送到运行状态数据库。
如图8所示,任务诊断模块72包括:任务时长诊断单元721、任务重启诊断单元722、任务背压诊断单元723和任务资源诊断单元724。任务时长诊断单元721基于运行时长判断分布式任务是否满足预设的运行时长条件。任务重启诊断单元722基于重启信息判断分布式任务是否存在重启情况。任务背压诊断单元723基于任务运行信息判断分布式任务是否存在背压情况。任务资源诊断单元724基于任务TOPO信息和资源使用信息判断分布式任务是否存在资源分配过多情况。
任务背压诊断单元723基于任务运行信息获取分布式背压任务,其中,分布式背压任务对于任务请求的等待时长超过预设的等待时长阈值。如果分布式背压任务的数量大于预设的任务数量阈值,则任务背压诊断单元723确定存在背压情况。
任务背压诊断单元723在确定存在背压情况之后,基于任务TOPO信息、任务运行信息和资源使用信息确定与分布式背压任务相对应的存在背压情况的原因,其中,存在背压情况的原因包括:数据倾斜、任务槽分配不均、实例运行缓慢和资源不足等。
如图9所示,任务背压诊断单元723包括:数据倾斜诊断单元7231、第一分配诊断单元7232、实例运行诊断单元7233和第二分配诊断单元7234。数据倾斜诊断单元7231基于任务TOPO信息确定与分布式背压任务相对应的算子。数据倾斜诊断单元7231获取与算子相对应的其他任务的第一数据输入量。基于任务运行信息获取分布式背压任务的第二数据输入量。如果第一数据输入量和第二数据输入量之差大于数据量阈值,则数据倾斜诊断单元7231确定存在背压情况的原因为数据倾斜。
第一分配诊断单元7232基于任务TOPO信息确定与分布式背压任务相对应的算子。第一分配诊断单元7232获取与分布式背压任务相对应的任务槽,获取与算子相对应的、被分配了任务槽的其他任务。如果其他任务消耗的资源超过预设的资源阈值,或者其他任务的资源占用比例超过预设的比例阈值,则第一分配诊断单元7232确定存在背压情况的原因为任务槽分配不均,其中,资源包括:CPU和内存等。
实例运行诊断单元7233将分布式背压任务的第一数据处理能力与其他任务的第二数据处理能力进行比对。实例运行诊断单元7233基于比对结果确定存在背压情况的原因是否为实例运行缓慢。
第二分配诊断单元7234基于任务TOPO信息确定与分布式背压任务部署的物理节点。如果确定物理节点的资源使用量超过预设的第一资源使用阈值,则第二分配诊断单元7234确定存在背压情况的原因为资源不足,其中,资源包括CPU和内存等。
任务资源诊断单元724基于任务TOPO信息确定与分布式背压任务相对应的物理节点。如果确定物理节点的资源使用量低于预设的第二资源使用阈值,则任务资源诊断单元724确定分布式任务存在资源分配过多情况。
在一个实施例中,任务处理模块73基于存在背压情况的原因和/或分布式任务存在资源分配过多情况,生成任务处理信息;其中,任务处理信息包括资源调整指令和/或资源调整建议信息。分布式任务管理设备在接收到资源调整指令之后,根据资源调整指令进行相应的资源调整操作。分布式任务管理设备在接收到资源调整建议信息之后,进行提示操作。
在一个实施例中,图10为根据本公开的分布式任务诊断装置的另一个实施例的模块示意图。如图10所示,该装置可包括存储器1001、处理器1002、通信接口1003以及总线1004。存储器1001用于存储指令,处理器1002耦合到存储器1001,处理器1002被配置为基于存储器1001存储的指令执行实现上述的分布式任务诊断方法。
存储器1001可以为高速RAM存储器、非易失性存储器(non-volatile memory)等,存储器1001也可以是存储器阵列。存储器1001还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器1002可以为中央处理器CPU,或专用集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本公开的分布式任务诊断方法的一个或多个集成电路。
在一个实施例中,本公开提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的分布式任务诊断方法。
上述实施例提供的分布式任务诊断方法、装置以及存储介质,获取与分布式任务诊断开启指令相对应的分布式任务的运行状态数据,根据任务诊断规则对运行状态数据进行诊断处理,生成分布式任务诊断结果并生成对应的任务处理信息;能够为分布式任务提供智能诊断功能,可以根据诊断结果优化分布式任务;提供资源弹性伸缩功能,当诊断到任务存在资源浪费时,可以自动缩容节省资源;当诊断到任务资源不足时,能够自动扩容,调整任务并行度,保证任务的正常运行且资源得到有效利用;能够使分布式任务稳定运行,提高用户体验。
可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

Claims (17)

1.一种分布式任务诊断方法,包括:
接收分布式任务管理设备发送的分布式任务诊断开启指令,获取与所述分布式任务诊断开启指令相对应的分布式任务的运行状态数据;
根据预设的任务诊断规则对所述运行状态数据进行诊断处理,生成分布式任务诊断结果;
基于所述分布式任务诊断结果生成对应的任务处理信息,将所述任务处理信息发送给所述分布式任务管理设备,以使所述分布式任务管理设备根据所述任务处理信息进行相应的操作。
2.如权利要求1所述的方法,其中,所述分布式任务诊断开启指令中携带的信息包括:任务ID、查询地址信息、运行指标信息;所述获取与所述分布式任务诊断开启指令相对应的分布式任务的运行状态数据包括:
根据所述查询地址信息获取与所述任务ID相对应的所述运行状态数据;
其中,所述运行状态数据包括:任务TOPO信息、运行时长、重启信息、任务运行信息、资源使用信息。
3.如权利要求2所述的方法,所述根据预设的任务诊断规则对所述运行状态数据进行诊断处理包括:
基于所述运行时长判断所述分布式任务是否满足预设的运行时长条件;
基于所述重启信息判断所述分布式任务是否存在重启情况;
基于所述任务运行信息判断所述分布式任务是否存在背压情况;
基于所述任务TOPO信息和所述资源使用信息判断所述分布式任务是否存在资源分配过多情况。
4.如权利要求3所述的方法,所述基于所述任务运行信息判断所述分布式任务是否存在背压情况包括:
基于所述任务运行信息获取分布式背压任务;其中,所述分布式背压任务对于任务请求的等待时长超过预设的等待时长阈值;
如果所述分布式背压任务的数量大于预设的任务数量阈值,则确定存在背压情况。
5.如权利要求4所述的方法,还包括:
在确定存在背压情况之后,基于所述任务TOPO信息、所述任务运行信息和所述资源使用信息确定与所述分布式背压任务相对应的存在背压情况的原因;
其中,所述存在背压情况的原因包括:数据倾斜、任务槽分配不均、实例运行缓慢和资源不足中的至少一项。
6.如权利要求5所述的方法,所述确定与所述分布式背压任务相对应的存在背压情况的原因包括:
基于所述任务TOPO信息确定与所述分布式背压任务相对应的算子;
获取与所述算子相对应的其他任务的第一数据输入量;
基于所述任务运行信息获取所述分布式背压任务的第二数据输入量;
如果所述第一数据输入量和所述第二数据输入量之差大于数据量阈值,则确定所述存在背压情况的原因为数据倾斜。
7.如权利要求5所述的方法,所述确定与所述分布式背压任务相对应的存在背压情况的原因包括:
基于所述任务TOPO信息确定与所述分布式背压任务相对应的算子;
获取与所述分布式背压任务相对应的任务槽;
获取与所述算子相对应的、被分配了所述任务槽的其他任务;
如果所述其他任务消耗的资源超过预设的资源阈值,或者所述其他任务的资源占用比例超过预设的比例阈值,则确定所述存在背压情况的原因为任务槽分配不均;其中,所述资源包括:CPU和内存。
8.如权利要求5所述的方法,所述确定与所述分布式背压任务相对应的存在背压情况的原因包括:
将所述分布式背压任务的第一数据处理能力与其他任务的第二数据处理能力进行比对,基于比对结果确定所述存在背压情况的原因是否为实例运行缓慢。
9.如权利要求5所述的方法,所述确定与所述分布式背压任务相对应的存在背压情况的原因包括:
基于所述任务TOPO信息确定与所述分布式背压任务部署的物理节点;
如果确定所述物理节点的资源使用量超过预设的第一资源使用阈值,则确定所述存在背压情况的原因为资源不足;其中,所述资源包括:CPU和内存。
10.如权利要求5所述的方法,所述基于所述任务TOPO信息和所述资源使用信息判断所述分布式任务是否存在资源分配过多情况包括:
基于所述任务TOPO信息确定与所述分布式背压任务相对应的物理节点;
如果确定所述物理节点的资源使用量低于预设的第二资源使用阈值,则确定所述分布式任务存在资源分配过多情况;其中,所述资源包括:CPU和内存。
11.如权利要求10所述的诊断方法,所述基于所述分布式任务诊断结果生成对应的任务处理信息包括:
基于所述存在背压情况的原因和/或所述分布式任务存在资源分配过多情况,生成所述任务处理信息;其中,所述任务处理信息包括资源调整指令和/或资源调整建议信息。
12.如权利要求11所述的诊断方法,其中,
所述分布式任务管理设备在接收到所述资源调整指令之后,根据所述资源调整指令进行相应的资源调整操作;
所述分布式任务管理设备在接收到所述资源调整建议信息之后,进行提示操作。
13.如权利要求2所述的方法,所述查询地址信息包括:运行状态数据库地址;所述根据所述查询地址信息获取与所述任务ID相对应的所述运行状态数据包括:
基于所述运行状态数据库地址,从运行状态数据库获取与所述任务ID相对应的所述运行状态数据;
其中,分布式任务集群周期性地将所述运行状态数据发送到所述运行状态数据库。
14.如权利要求1至13任一项所述的方法,其中,
所述分布式任务包括:Flink任务。
15.一种分布式任务诊断装置,包括:
数据获取模块,用于接收分布式任务管理设备发送的分布式任务诊断开启指令,获取与所述分布式任务诊断开启指令相对应的分布式任务的运行状态数据;
任务诊断模块,用于根据预设的任务诊断规则对所述运行状态数据进行诊断处理,生成分布式任务诊断结果;
任务处理模块,用于基于所述分布式任务诊断结果生成对应的任务处理信息,将所述任务处理信息发送给所述分布式任务管理设备,以使所述分布式任务管理设备根据所述任务处理信息进行相应的操作。
16.一种分布式任务诊断装置,包括:
存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至14中任一项所述的方法。
17.一种计算机可读存储介质,所述计算机可读存储介质非暂时性地存储有计算机指令,所述指令被处理器执行如权利要求1至14中任一项所述的方法。
CN202110018305.5A 2021-01-07 2021-01-07 分布式任务诊断方法、装置以及存储介质 Active CN113742117B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110018305.5A CN113742117B (zh) 2021-01-07 2021-01-07 分布式任务诊断方法、装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110018305.5A CN113742117B (zh) 2021-01-07 2021-01-07 分布式任务诊断方法、装置以及存储介质

Publications (2)

Publication Number Publication Date
CN113742117A true CN113742117A (zh) 2021-12-03
CN113742117B CN113742117B (zh) 2024-09-20

Family

ID=78728122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110018305.5A Active CN113742117B (zh) 2021-01-07 2021-01-07 分布式任务诊断方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN113742117B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126859A1 (en) * 2006-08-31 2008-05-29 Guo Shang Q Methods and arrangements for distributed diagnosis in distributed systems using belief propagation
CN105337765A (zh) * 2015-10-10 2016-02-17 上海新炬网络信息技术有限公司 一种分布式hadoop集群故障自动诊断修复系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126859A1 (en) * 2006-08-31 2008-05-29 Guo Shang Q Methods and arrangements for distributed diagnosis in distributed systems using belief propagation
CN105337765A (zh) * 2015-10-10 2016-02-17 上海新炬网络信息技术有限公司 一种分布式hadoop集群故障自动诊断修复系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SUN LU等: "Study of fault diagnosis task decomposition and solution synthesis based on multi-agent system", 《FIRE CONTROL AND COMMAND CONTROL 》, 30 December 2008 (2008-12-30) *
张建军;冯静;张利;徐娟;: "故障诊断网格任务调度模型的研究", 计算机应用研究, no. 03, 15 March 2010 (2010-03-15) *

Also Published As

Publication number Publication date
CN113742117B (zh) 2024-09-20

Similar Documents

Publication Publication Date Title
CN108810100B (zh) 一种主节点的选举方法、装置及设备
US10606675B1 (en) Query watchdog
WO2017166803A1 (zh) 一种资源调度方法及装置
CN111818159A (zh) 数据处理节点的管理方法、装置、设备及存储介质
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
CN111399986A (zh) Pod资源配额配置方法及装置
KR101171543B1 (ko) 배치 처리 다중화 방법
JP6409543B2 (ja) コンピュータ・システムにおいてジョブを実行する方法、資源マネージャおよび高性能コンピュータ・システム
CN111258746B (zh) 资源分配方法和服务设备
CN107562512A (zh) 一种迁移虚拟机的方法、装置及系统
CN111625331A (zh) 任务调度方法、装置、平台、服务器及存储介质
CN109032805A (zh) 一种弹性扩缩容方法、装置、服务器及存储介质
CN112231098A (zh) 任务处理方法、装置、设备及存储介质
US11438271B2 (en) Method, electronic device and computer program product of load balancing
CN113918647A (zh) 分布式数据库弹性伸缩方法、装置、设备和存储介质
JP6477260B2 (ja) アプリケーションを実行する方法及びリソースマネジャ
CN110413393B (zh) 集群资源管理方法、装置、计算机集群及可读存储介质
CN115113987A (zh) 一种非一致内存访问资源分配方法、装置、设备及介质
CN103488538A (zh) 云计算系统中的应用扩展装置和应用扩展方法
CN113961353A (zh) 一种ai任务的任务处理方法和分布式系统
CN111240824A (zh) 一种cpu资源调度方法及电子设备
CN113742117B (zh) 分布式任务诊断方法、装置以及存储介质
CN112052087B (zh) 动态资源调整与迁移的深度学习训练系统及方法
CN112100273B (zh) 集群数据扩容的方法、存储介质
CN114090541A (zh) 数据库业务处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant