CN113342561A - 任务诊断方法及系统 - Google Patents

任务诊断方法及系统 Download PDF

Info

Publication number
CN113342561A
CN113342561A CN202110680120.0A CN202110680120A CN113342561A CN 113342561 A CN113342561 A CN 113342561A CN 202110680120 A CN202110680120 A CN 202110680120A CN 113342561 A CN113342561 A CN 113342561A
Authority
CN
China
Prior art keywords
task
diagnosis
calculation result
data
automatically
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
Application number
CN202110680120.0A
Other languages
English (en)
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202110680120.0A priority Critical patent/CN113342561A/zh
Publication of CN113342561A publication Critical patent/CN113342561A/zh
Pending legal-status Critical Current

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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种任务诊断方法,该方法包括:收集Flink平台上的任务数据并获取对应的度量指标;采用启发式算法根据所述度量指标对所述任务数据进行分析计算;根据计算结果对每个任务进行评分和评级;根据评级结果对有问题的任务按预设方式提出告警。本申请还公开了一种任务诊断系统、电子装置和计算机可读存储介质。由此,不需要人为上报问题,可以自动对每个任务划分严重性级别,方便用户对出现问题的任务进行及时处理。

Description

任务诊断方法及系统
技术领域
本申请涉及数据分析技术领域,尤其涉及一种任务诊断方法、系统、电子装置及计算机可读存储介质。
背景技术
Flink是一种开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。在Flink平台中,需要处理的任务可能会达到上千个甚至更多,有的任务资源不足,有的任务浪费严重,如何高效管理上千个任务资源治理是个大问题。
并且,流式任务对于用户排障的门槛比较高,而且关联运行指标较多,如果用户非资深Flink玩家,当遇到任务失败、堆积、数据不准不符合预期等诸多问题时无法自行进行分析,需要求助平台值班人员帮助解决。在问题较多时,值班人员可能应接不暇,而且这种方式一定程度上消耗了平台值班人员以及用户的大量时间。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请的主要目的在于提出一种任务诊断方法、系统、电子装置及计算机可读存储介质,旨在解决如何智能地对Flink平台的大量任务进行诊断分析的问题。
为实现上述目的,本申请实施例提供了一种任务诊断方法,所述方法包括:
收集Flink平台上的任务数据并获取对应的度量指标;
采用启发式算法根据所述度量指标对所述任务数据进行分析计算;
根据计算结果对每个任务进行评分和评级;及
根据评级结果对有问题的任务按预设方式提出告警。
可选地,所述方法还包括:
根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整。
可选地,所述方法还包括:
针对所述有问题的任务在用户作业页面提供诊断入口,供用户获取所述有问题的任务的信息并进行调整。
可选地,所述方法还包括:以插件化方式实现所述获取度量指标和所述开发式算法,以进行扩展。
可选地,所述根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整包括:
按照层级归因和时间归因的方式根据所述计算结果分析所述有问题的任务出现问题的原因,并根据历史经验数据得到相应的调整策略。
可选地,所述根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整包括:
根据所述计算结果得到所述任务的历史运行状态,根据所述历史运行状态预测所述任务在高峰期是否会出现资源不足;
当预测会出现资源不足时,对所述任务的资源进行自动扩充。
可选地,所述根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整还包括:
根据所述计算结果对所述任务进行空闲资源检测;
当检测出的空闲率大于阈值时,对所述任务的资源进行自动缩减。
此外,为实现上述目的,本申请实施例还提供一种任务诊断系统,所述系统包括:
收集模块,用于收集Flink平台上的任务数据并获取对应的度量指标;
计算模块,用于采用启发式算法根据所述度量指标对所述任务数据进行分析计算;
评分模块,用于根据计算结果对每个任务进行评分和评级;
告警模块,用于根据评级结果对有问题的任务按预设方式提出告警。
为实现上述目的,本申请实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务诊断程序,所述任务诊断程序被所述处理器执行时实现如上述的任务诊断方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有任务诊断程序,所述任务诊断程序被处理器执行时实现如上述的任务诊断方法。
本申请实施例提出的任务诊断方法、系统、电子装置及计算机可读存储介质,能够自动收集Flink平台上的所有任务数据和度量指标,采用开发式算法对每个任务进行计算后进行评分和评级,然后对有问题的任务自动告警,不需要人为上报问题,且可以自动对每个任务划分严重性级别,方便用户对出现问题的任务进行及时处理。
附图说明
图1为实现本申请各个实施例的一种应用环境架构图;
图2为本申请第一实施例提出的一种任务诊断方法的流程图;
图3为本申请第二实施例提出的一种任务诊断方法的流程图;
图4为图3中步骤S308提供的扩容过程的细化流程图;
图5为图3中步骤S308提供的缩容过程的细化流程图;
图6为本申请第三实施例提出的一种电子装置的硬件架构示意图;
图7为本申请第四实施例提出的一种任务诊断系统的模块示意图;
图8为本申请第五实施例提出的一种任务诊断系统的模块示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于Flink平台10、电子装置20、数据库30的应用环境中。
其中,所述Flink平台10用于向用户提供Flink服务,以数据并行和流水线方式执行任意流数据程序,处理多个Flink任务。
所述电子装置20用于从Flink平台10中收集所有任务数据,并对各个任务进行智能地诊断分析。所述电子装置20可以是服务器等具有数据分析处理能力的计算设备。所述服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
所述数据库30可以是MySQL(关系型数据库管理系统)数据库,用于进行数据存储,例如存储电子装置20对Flink平台10中的任务列表和评分、评级结果以及分析结果等。
所述Flink平台10、电子装置20、数据库30之间通过网络通信连接,以进行数据传输和交互。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
实施例一
如图2所示,为本申请第一实施例提出的一种任务诊断方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以所述电子装置20作为执行主体对该方法进行说明。
该方法包括以下步骤:
S200,收集平台上的任务数据及对应的度量指标。
本实施例提供一套智能诊断Flink平台运行时的任务质量的方案,来辅助线上任务的运维,对Flink任务进行性能监控、诊断和调优,提供Job级别的任务流性能比较。首先,定期从Flink平台中收集当前运行的所有任务的数据,例如定期从YARN(Yet AnotherResource Negotiator,另一种资源协调者)中获取Job基本信息。YARN是一种新的Hadoop(一种分布式系统基础架构)资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度。然后自动收集Flink平台(系统层、应用层)上所有的度量指标,用以对所收集的任务数据进行计算和判断。
例如,有一项诊断是TaskManager(任务管理器)CPU,即通过检查当前任务所使用的平均CPU负载与默认并行度的比率,判断严重程度,比例越高,严重程度越高。其中度量指标包括:Load(CPU为Java虚拟机提供的正在运行的以及准备运行的进程数)、taskNum(任务管理器数量)、parallelism(并行度)等。
S202,采用启发式算法根据所述度量标准对所述任务数据进行分析计算。
启发式算法(Heuristic Algorithm)是一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解。在收集到Flink平台的任务数据和度量指标后,根据所述度量指标对所述任务数据按预设规则采用启发式算法进行相应计算,算法模型可以根据Flink算子特点做响应改动。在本实施例中,启发式算法的计算结果的取值区间可以为0-1,表示一个百分比。
值得注意的是,在本实施例中,所述启发式算法是基于规则的,且获取度量指标和启发式算法部分均是插件式、可配置的,具有良好扩展性。针对获取度量指标和启发式算法部分,提供统一插件开发标准,打包将JAR文件放入库中,实现插件与源代码分离解耦合。
S204,根据计算结果对每个任务进行评分和评级。
在本实施例中,预先对各种诊断项目设置评分和评级规则,然后根据启发式计算的结果,根据所述评分规则对每个任务进行评分,再根据所述评级规则和评分结果判断每个任务的严重性级别。
在本实施例中,所述评分的取值可以在0—100之间。每个任务可能需要计算多个项目,会有多个启发式计算结果,根据每个计算结果可以分别得到一个评分,然后再计算所述任务的整体评分为所有评分总和除以启发式算法个数。同样地,针对每个任务的每个评分也能按评级规则得到一个对应的评级(取值可以为0-4,分别对应五种严重性级别),所述任务的整体评级为所有评级总和除以启发式算法个数。
S206,根据评级结果对有问题的任务按预设方式提出告警。
在本实施例中,预先设定告警规则及阈值,根据每个任务的所述评级的结果响应对应的告警规则,通过微信、邮件、电话等预设方式进行告警输出。例如,可以每天自动产出一份任务质量检测的邮件,邮件内容包括有问题任务的列表(或者所有任务列表)及对应的严重性级别,平台值班人员可以根据该邮件对有问题的任务进行调整或改进误诊。
本实施例提出的任务诊断方法,可以自动收集Flink平台上的所有任务数据和度量指标,采用开发式算法对每个任务进行计算后进行评分和评级,然后对有问题的任务自动告警,不需要人为上报问题,且可以自动对每个任务划分严重性级别,方便用户对出现问题的任务进行及时处理。
为了更详尽的对该方法的上述各步骤进行解释说明,以下以特定的具体实施例(几种场景下从任务监测到评级的过程)为例进行说明。本领域技术人员当知,下述具体实施例的内容并不用于限制本发明的发明思想,本领域技术人员可以轻易依据下述实施例具体描述内容进行适当的内容发散和扩展。
(一)针对sub_task(子任务)是否存在Data Skew(数据倾斜)的诊断:
(1)针对所述sub_task获取所有输入、输出数据,并取均值;
(2)利用所述均值将所有数据分为高、低两组;
(3)分别取高、低组的均值,并求高低组的均值差;
(4)求均值差所占高组的比例,也就是倾斜比率,取值区间为0-1,0表示不倾斜,1表示完全倾斜;
(5)配置阈值0.3、0.4、0.5、0.6,当倾斜比率小于0.3时,评分为100,等级为NONE;当倾斜比率大于等于0.3且小于0.4时,评分为75,等级为LOW;当倾斜比率大于等于0.4且小于0.5时,评分为50,等级为MODERATE;当倾斜比率大于等于0.5且小于0.6时,评分为25,等级为SEVERE;当倾斜比率大于等于0.6时,评分为0,等级为CRITICAL。其中,五种等级待优化的迫切性降序为:CRITICAL>SEVERE>MODERATE>LOW>NONE。
(二)针对Checkpoint(内部事件,简称CK)失败的诊断:
(1)通过/jobs/:jobid/checkpoints获取最近一次CK信息,其中有最近一次失败的信息;
(2)获取最近一次失败的CK的详情,判断failure_timestamp(失败时间戳)是否在一次计划任务时间区间(例如1小时)之内,在所述时间区间之内参与计算,否则忽略。判断时间区间的原因是,有可能最近一次失败是1小时之前的,在1小时之前已经判断过,当前再次计算会重复判断。
(3)评分为10,等级为SEVERE。
(三)针对TaskManager CPU的诊断:
(1)获取当前任务的Load、taskNum、parallelism数据;
(2)计算每个TaskManager平均Load数(即avg_cpu_load),计算公式为:avg_cpu_load=SUM(Load)/taskNum;
(3)计算所述平均Load数和并行度的比率(即cpu_ratio_serverity),计算公式为:cpu_ratio_serverity=avg_cpu_load/parallelism。
(4)配置阈值0.8、0.85、0.9、0.95,当cpu_ratio_serverity小于0.8时,评分为100,等级为NONE;当cpu_ratio_serverity大于等于0.8且小于0.85时,评分为75,等级为LOW;当cpu_ratio_serverity大于等于0.85且小于0.9时,评分为50,等级为MODERATE;当cpu_ratio_serverity大于等于0.9且小于0.95时,评分为25,等级为SEVERE;当cpu_ratio_serverity大于等于0.95时,评分为0,等级为CRITICAL。
(四)针对断流的诊断:
在使用kafka(一种开源流处理平台)作为数据源时,或者为下游血缘关系的任务提供kafka数据源时,若长时间未收到(一段时间内收到条数远小于预期条数)或未发送数据,则可能出现断流的情况,需要及时检测并定位具体问题。
(1)在Prometheus(一种开源监控告警解决系统)上对kafka流进行监控,统计任务整体输入记录数(records_in_num)和输出记录数(records_out_num);
(2)当records_in_num、records_out_num出现为0的情况时(过滤异常情况),设置评分为10,等级为Critical;其他情况设置评分为100,等级设置为NONE。
实施例二
如图3所示,为本申请第二实施例提出的一种任务诊断方法的流程图。在第二实施例中,所述任务诊断方法在上述第一实施例的基础上,还包括步骤S308。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。
该方法包括以下步骤:
S300,收集平台上的任务数据及对应的度量指标。
本实施例提供一套智能诊断Flink平台运行时的任务质量的方案,来辅助线上任务的运维,对Flink任务进行性能监控、诊断和调优,提供Job级别的任务流性能比较。首先,定期从Flink平台中收集当前运行的所有任务的数据,例如定期从YARN中获取Job基本信息。然后自动收集Flink平台(系统层、应用层)上所有的度量指标,用以对所收集的任务数据进行计算和判断。
S202,采用启发式算法根据所述度量标准对所述任务数据进行分析计算。
在收集到Flink平台的任务数据和度量指标后,根据所述度量指标对所述任务数据按预设规则采用启发式算法进行相应计算,算法模型可以根据Flink算子特点做响应改动。在本实施例中,启发式算法的计算结果的取值区间可以为0-1,表示一个百分比。
值得注意的是,在本实施例中,所述启发式算法是基于规则的,且获取度量指标和启发式算法部分均是插件式、可配置的,具有良好扩展性。
S304,根据计算结果对每个任务进行评分和评级。
在本实施例中,预先对各种诊断项目设置评分和评级规则,然后根据启发式计算的结果,根据所述评分规则对每个任务进行评分,再根据所述评级规则和评分结果判断每个任务的严重性级别。
在本实施例中,所述评分的取值可以在0—100之间。每个任务可能需要计算多个项目,会有多个启发式计算结果,根据每个计算结果可以分别得到一个评分,然后再计算所述任务的整体评分为所有评分总和除以启发式算法个数。同样地,针对每个任务的每个评分也能按评级规则得到一个对应的评级(取值可以为0-4,分别对应五种严重性级别),所述任务的整体评级为所有评级总和除以启发式算法个数。
S306,根据评级结果对有问题的任务按预设方式提出告警。
在本实施例中,预先设定告警规则及阈值,根据每个任务的所述评级的结果响应对应的告警规则,通过微信、邮件、电话等预设方式进行告警输出。例如,可以每天自动产出一份任务质量检测的邮件,邮件内容包括有问题任务的列表(或者所有任务列表)及对应的严重性级别,平台值班人员可以根据该邮件对有问题的任务进行调整或改进误诊。
S308,根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整。
在采用启发式算法得到每个任务的计算结果之后,本实施例还可以根据所述计算结果对每个任务自动进行诊断分析,包括按照层级归因和时间归因的方式根据所述计算结果分析所述有问题的任务出现问题的原因,并根据历史经验数据得到相应的调整策略。在本实施例中,可以将分析结果和调整建议提供给用户查看后进行手动调整,也可以根据所述分析结果得到调整策略后自动根据所述调整策略对所述有问题的任务进行调整,对所述任务的整个检测、判断、调优的过程完成自动化。
另外,本实施例还可以根据每个任务的所述计算结果预判是否需要进行扩缩容并自动执行。
(1)针对一些高峰期资源不足的任务,需要提前预测高峰期所需要资源,即需要一种根据所述任务的历史运行状态,推断可能存在资源不足的风险,进行适当的资源扩充,避免在高峰期到来的时候造成任务不必要的数据堆积。这类任务的特点是通过横向添加资源就能使得数据处理能力得到提升。具体地,如图4所示,为本实施例提供的扩容过程的细化流程图。该过程包括步骤:
S400,根据所述计算结果得到所述任务的历史运行状态。也就是统计所述任务的历史计算结果。
S402,根据所述历史运行状态预测所述任务在高峰期是否会出现资源不足。
S404,当预测会出现资源不足时,对所述任务的资源进行自动扩充。
具体而言,例如各任务管理器CPU资源使用比较均衡,但使用率都很高的场景下,可以进行扩容。其中,首先将各个任务管理器的CPU值进行排序,取中位数(偶数取均值),每个任务管理器的CPU值与所述中位数做差。当所有差值在一定范围内浮动(1-3之间)时,表示各任务管理器CPU使用均衡。若所有差值相差较大,则表示各任务管理器CPU使用不均衡,不在判断范围。检查点可以为短线(例如根据午高峰预测晚高峰,以中午11点到14点的数据为依据)或长线(根据上一周高峰预测当天晚高峰,以一周中最高值为依据)。调整方式包括固定增量和动态增量两种方式,且最高增量为当前资源的0.5-1倍。其中,固定增量可以是单次增加0.3倍,直到增加到1倍停止。触发条件是当前CPU资源使用是否达到7(最好可以结合一个增量斜率判断),若是则以0.3倍增量叠加。动态增量是指单次增加需要计算,直到增加到1倍停止。触发条件是当前CPU资源使用是否达到7(最好可以结合一个增量斜率判断),若是则计算当前CPU资源和上一次高峰的差值百分比(回归算法),以此百分比作为增加系数进行资源增加。
上述扩容的调整时效可以是每5分钟监测一次(高时效),也可以是每1小时监测一次(低时效)。监测的时候通过判断是否达到触发条件以及应该增加多少资源来确定此次检查是否要触发调整。当满足触发条件且没有达到调整次数上限、没有达到调整资源上限、队列有足够的资源时,触发任务资源调整。
(2)随着实时平台任务不断增加,任务资源使用存在浪费的情况,很多任务并不需要这么多的资源,需要有一个检测机制,并且能够通过一定的规则对任务使用的资源进行判断和调整。本实施例采用的策略是保证任务度过高峰期前提下对剩余资源的回收,并不是低峰期腾出剩余资源,高峰期再扩容,所以缩容的频率不高。具体地,如图5所示,为本实施例提供的缩容过程的细化流程图。该过程包括步骤:
S500,根据所述计算结果对所述任务进行空闲资源检测。
S502,当检测出的空闲率大于阈值时,对所述任务的资源进行自动缩减。
具体而言,当所述任务的CPU空闲率较高时,可以进行缩容。例如监测周期可以是天级别(避免持续缩容),监测范围为3天内数据(针对周五、周六、周日)。值得注意的是,本实施例中缩容的响应速度要远小于扩容。监测指标包括:CPU值、Cgroup(控制组)值、进出流量、Lag(滞后)等。监测规则为当任务在监测范围内均没有上升趋势的lag,任务在监测范围内Cgroup被限制在500ms及以下,Cgroup限制百分比在5%以下,且峰值使用率低于50%时,应该缩容。提前计算高峰期和低峰期时CPU使用量和进出流量的比例,可以得到这个量级下所需要的单位CPU资源,并在此基础上进行冗余评估,根据冗余评估结果可以计算具体缩减多少资源。
值得注意的是,本实施例中根据所述计算结果对所述任务进行诊断分析后得到分析结果,所述分析结果可以直接保存,也可以提供给用户。在本实施例中,针对所述有问题的任务在用户作业页面提供诊断入口(暴露API),供用户获取所述有问题的任务的信息并进行调整,所述信息可以包括每个任务对应的评分、评级结果和所述分析结果。
本实施例提出的任务诊断方法,可以自动收集Flink平台上的所有任务数据和度量指标,采用开发式算法对每个任务进行计算后进行评分和评级,然后对有问题的任务自动告警,不需要人为上报问题,且可以自动对每个任务划分严重性级别,方便用户对出现问题的任务进行及时处理。另外,还可以根据计算结果对所述任务自动进行诊断分析,并提供调整建议或自动进行调整,或者提供诊断入口给用户,针对Flink平台中运行的任务实现从监测、分析到调优整个流程的自动化处理,提高处理效率,减轻用户负担。
实施例三
如图6所示,为本申请第三实施例提出的一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图6仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如任务诊断系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述任务诊断系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
实施例四
如图7所示,为本申请第四实施例提出一种任务诊断系统60的模块示意图。所述任务诊断系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述任务诊断系统60包括:
收集模块600,用于收集平台上的任务数据及对应的度量指标。
本实施例提供一套智能诊断Flink平台运行时的任务质量的方案,来辅助线上任务的运维,对Flink任务进行性能监控、诊断和调优,提供Job级别的任务流性能比较。首先,收集模块600定期从Flink平台中收集当前运行的所有任务的数据,例如定期从YARN中获取Job基本信息。然后自动收集Flink平台(系统层、应用层)上所有的度量指标,用以对所收集的任务数据进行计算和判断。
计算模块602,用于采用启发式算法根据所述度量标准对所述任务数据进行分析计算。
在收集到Flink平台的任务数据和度量指标后,根据所述度量指标对所述任务数据按预设规则采用启发式算法进行相应计算,算法模型可以根据Flink算子特点做响应改动。在本实施例中,启发式算法的计算结果的取值区间可以为0-1,表示一个百分比。
值得注意的是,在本实施例中,所述启发式算法是基于规则的,且获取度量指标和启发式算法的模块均是插件式、可配置的,具有良好扩展性。
评分模块604,用于根据计算结果对每个任务进行评分和评级。
在本实施例中,预先对各种诊断项目设置评分和评级规则,然后根据启发式计算的结果,根据所述评分规则对每个任务进行评分,再根据所述评级规则和评分结果判断每个任务的严重性级别。
在本实施例中,所述评分的取值可以在0—100之间。每个任务可能需要计算多个项目,会有多个启发式计算结果,根据每个计算结果可以分别得到一个评分,然后再计算所述任务的整体评分为所有评分总和除以启发式算法个数。同样地,针对每个任务的每个评分也能按评级规则得到一个对应的评级(取值可以为0-4,分别对应五种严重性级别),所述任务的整体评级为所有评级总和除以启发式算法个数。
告警模块606,用于根据评级结果对有问题的任务按预设方式提出告警。
在本实施例中,预先设定告警规则及阈值,根据每个任务的所述评级的结果响应对应的告警规则,通过微信、邮件、电话等预设方式进行告警输出。例如,可以每天自动产出一份任务质量检测的邮件,邮件内容包括有问题任务的列表(或者所有任务列表)及对应的严重性级别,平台值班人员可以根据该邮件对有问题的任务进行调整或改进误诊。
本实施例提出的任务诊断系统,可以自动收集Flink平台上的所有任务数据和度量指标,采用开发式算法对每个任务进行计算后进行评分和评级,然后对有问题的任务自动告警,不需要人为上报问题,且可以自动对每个任务划分严重性级别,方便用户对出现问题的任务进行及时处理。
实施例五
如图8所示,为本申请第五实施例提出一种任务诊断系统60的模块示意图。在本实施例中,所述任务诊断系统60除了包括第四实施例中的所述收集模块600、计算模块602、评分模块604、告警模块606之外,还包括分析模块608。
所述分析模块608,用于根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整。
在采用启发式算法得到每个任务的计算结果之后,本实施例还可以根据所述计算结果对每个任务自动进行诊断分析,包括按照层级归因和时间归因的方式根据所述计算结果分析所述有问题的任务出现问题的原因,并根据历史经验数据得到相应的调整策略。在本实施例中,可以将分析结果和调整建议提供给用户查看后进行手动调整,也可以根据所述分析结果得到调整策略后自动根据所述调整策略对所述有问题的任务进行调整,对所述任务的整个检测、判断、调优的过程完成自动化。
另外,本实施例还可以根据每个任务的所述计算结果预判是否需要进行扩缩容并自动执行。
(1)针对一些高峰期资源不足的任务,需要提前预测高峰期所需要资源,即需要一种根据所述任务的历史运行状态,推断可能存在资源不足的风险,进行适当的资源扩充,避免在高峰期到来的时候造成任务不必要的数据堆积。这类任务的特点是通过横向添加资源就能使得数据处理能力得到提升。该过程包括:
根据所述计算结果得到所述任务的历史运行状态,也就是统计所述任务的历史计算结果;根据所述历史运行状态预测所述任务在高峰期是否会出现资源不足;当预测会出现资源不足时,对所述任务的资源进行自动扩充。
(2)随着实时平台任务不断增加,任务资源使用存在浪费的情况,很多任务并不需要这么多的资源,需要有一个检测机制,并且能够通过一定的规则对任务使用的资源进行判断和调整。本实施例采用的策略是保证任务度过高峰期前提下对剩余资源的回收,并不是低峰期腾出剩余资源,高峰期再扩容,所以缩容的频率不高。该过程包括:根据所述计算结果对所述任务进行空闲资源检测;当检测出的空闲率大于阈值时,对所述任务的资源进行自动缩减。
值得注意的是,本实施例中根据所述计算结果对所述任务进行诊断分析后得到分析结果,所述分析结果可以直接保存,也可以提供给用户。在本实施例中,针对所述有问题的任务在用户作业页面提供诊断入口(暴露API),供用户获取所述有问题的任务的信息并进行调整,所述信息可以包括每个任务对应的评分、评级结果和所述分析结果。
本实施例提出的任务诊断系统,可以根据计算结果对所述任务自动进行诊断分析,并提供调整建议或自动进行调整,或者提供诊断入口给用户,针对Flink平台中运行的任务实现从监测、分析到调优整个流程的自动化处理,提高处理效率,减轻用户负担。
实施例六
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有任务诊断程序,所述任务诊断程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的任务诊断方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。

Claims (10)

1.一种任务诊断方法,其特征在于,所述方法包括:
收集Flink平台上的任务数据并获取对应的度量指标;
采用启发式算法根据所述度量指标对所述任务数据进行分析计算;
根据计算结果对每个任务进行评分和评级;及
根据评级结果对有问题的任务按预设方式提出告警。
2.根据权利要求1所述的任务诊断方法,其特征在于,所述方法还包括:
根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整。
3.根据权利要求1或2所述的任务诊断方法,其特征在于,所述方法还包括:
针对所述有问题的任务在用户作业页面提供诊断入口,供用户获取所述有问题的任务的信息并进行调整。
4.根据权利要求1所述的任务诊断方法,其特征在于,所述方法还包括:以插件化方式实现所述获取度量指标和所述开发式算法,以进行扩展。
5.根据权利要求1所述的任务诊断方法,其特征在于,所述根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整包括:
按照层级归因和时间归因的方式根据所述计算结果分析所述有问题的任务出现问题的原因,并根据历史经验数据得到相应的调整策略。
6.根据权利要求1所述的任务诊断方法,其特征在于,所述根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整包括:
根据所述计算结果得到所述任务的历史运行状态,根据所述历史运行状态预测所述任务在高峰期是否会出现资源不足;
当预测会出现资源不足时,对所述任务的资源进行自动扩充。
7.根据权利要求6所述的任务诊断方法,其特征在于,所述根据所述计算结果对所述任务进行诊断分析,并提供调整建议或自动进行调整还包括:
根据所述计算结果对所述任务进行空闲资源检测;
当检测出的空闲率大于阈值时,对所述任务的资源进行自动缩减。
8.一种任务诊断系统,其特征在于,所述系统包括:
收集模块,用于收集Flink平台上的任务数据并获取对应的度量指标;
计算模块,用于采用启发式算法根据所述度量指标对所述任务数据进行分析计算;
评分模块,用于根据计算结果对每个任务进行评分和评级;
告警模块,用于根据评级结果对有问题的任务按预设方式提出告警。
9.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务诊断程序,所述任务诊断程序被所述处理器执行时实现如权利要求1至7中任一项所述的任务诊断方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有任务诊断程序,所述任务诊断程序被处理器执行时实现如权利要求1至7中任一项所述的任务诊断方法。
CN202110680120.0A 2021-06-18 2021-06-18 任务诊断方法及系统 Pending CN113342561A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110680120.0A CN113342561A (zh) 2021-06-18 2021-06-18 任务诊断方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110680120.0A CN113342561A (zh) 2021-06-18 2021-06-18 任务诊断方法及系统

Publications (1)

Publication Number Publication Date
CN113342561A true CN113342561A (zh) 2021-09-03

Family

ID=77477678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110680120.0A Pending CN113342561A (zh) 2021-06-18 2021-06-18 任务诊断方法及系统

Country Status (1)

Country Link
CN (1) CN113342561A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113868098A (zh) * 2021-10-18 2021-12-31 杭州安恒信息技术股份有限公司 一种任务监控方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180196867A1 (en) * 2017-01-09 2018-07-12 Alexander WIESMAIER System, method and computer program product for analytics assignment
CN109189552A (zh) * 2018-08-17 2019-01-11 烽火通信科技股份有限公司 虚拟网络功能扩容与缩容方法及系统
CN110069335A (zh) * 2019-05-07 2019-07-30 江苏满运软件科技有限公司 任务处理系统、方法、计算机设备和存储介质
CN110597621A (zh) * 2019-08-09 2019-12-20 苏宁金融科技(南京)有限公司 集群资源的调度方法与系统
CN111459761A (zh) * 2020-04-01 2020-07-28 广州虎牙科技有限公司 一种Redis配置的方法、装置、存储介质及设备
CN111881004A (zh) * 2020-09-27 2020-11-03 苏宁金融科技(南京)有限公司 一种硬件资源管控方法、装置、设备、存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180196867A1 (en) * 2017-01-09 2018-07-12 Alexander WIESMAIER System, method and computer program product for analytics assignment
CN109189552A (zh) * 2018-08-17 2019-01-11 烽火通信科技股份有限公司 虚拟网络功能扩容与缩容方法及系统
CN110069335A (zh) * 2019-05-07 2019-07-30 江苏满运软件科技有限公司 任务处理系统、方法、计算机设备和存储介质
CN110597621A (zh) * 2019-08-09 2019-12-20 苏宁金融科技(南京)有限公司 集群资源的调度方法与系统
CN111459761A (zh) * 2020-04-01 2020-07-28 广州虎牙科技有限公司 一种Redis配置的方法、装置、存储介质及设备
CN111881004A (zh) * 2020-09-27 2020-11-03 苏宁金融科技(南京)有限公司 一种硬件资源管控方法、装置、设备、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
尚正阳,等 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113868098A (zh) * 2021-10-18 2021-12-31 杭州安恒信息技术股份有限公司 一种任务监控方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US12112214B2 (en) Predicting expansion failures and defragmenting cluster resources
US11972301B2 (en) Allocating computing resources for deferrable virtual machines
US20050216793A1 (en) Method and apparatus for detecting abnormal behavior of enterprise software applications
EP3932025B1 (en) Computing resource scheduling method, scheduler, internet of things system, and computer readable medium
AU2005301282A1 (en) Reporting of abnormal computer resource utilization data
CN113590429B (zh) 一种服务器故障诊断方法、装置及电子设备
US10225337B2 (en) Modeling and forecasting reserve capacity for overbooked clusters
CN113672345A (zh) 一种基于io预测的云虚拟化引擎分布式资源调度方法
CN108268351B (zh) 一种进程运行状态精确监控方法及系统
CN113342561A (zh) 任务诊断方法及系统
CN118152124A (zh) 一种基于云计算的数据处理方法及系统
CN115114124A (zh) 主机风险的评估方法及评估装置
CN115701890B (zh) 调整告警规则的方法及相关设备
CN115658319A (zh) 资源调度方法、系统、设备及存储介质
CN114389962A (zh) 宽带流失用户确定方法、装置、电子设备和存储介质
US11200097B2 (en) Device and method for optimizing the utilization over time of the resources of an IT infrastructure
US20210208962A1 (en) Failure detection and correction in a distributed computing system
CN111327442B (zh) 基于控制图的投诉预警阈值获取方法及装置
CN112685390A (zh) 数据库实例管理方法及装置、计算设备
US12135996B2 (en) Computing resource scheduling method, scheduler, internet of things system, and computer readable medium
CN118069620A (zh) 数据库的故障预防方法、装置、计算机设备及存储介质
US12028271B2 (en) Prioritizing messages for server processing based on monitoring and predicting server resource utilization
CN117575654B (zh) 数据加工作业的调度方法及装置
CN118626263A (zh) 异构硬件算力调度方法、装置、设备及介质
CN118916128A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210903