CN112631761A - 一种任务调度监控方法和装置 - Google Patents
一种任务调度监控方法和装置 Download PDFInfo
- Publication number
- CN112631761A CN112631761A CN202011640291.2A CN202011640291A CN112631761A CN 112631761 A CN112631761 A CN 112631761A CN 202011640291 A CN202011640291 A CN 202011640291A CN 112631761 A CN112631761 A CN 112631761A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- tasks
- workload
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开一种任务调度监控方法和装置,在达到监控定时时间后,目标工作负载从集群数据库获取任务执行计划数据表;目标工作负载根据任务执行计划数据表确定目标工作负载上的所有任务的执行情况;若执行情况反映目标工作负载上的所有任务正常,且目标工作负载的状态正常,目标工作负载向监控系统发送心跳报文;若执行情况反映存在任务异常,或目标工作负载的状态异常,向监控系统发送第一联机告警。该方法无需在监控系统上配置对应关系,降低监控部署难度。监控系统可以根据一个心跳报文同时知晓任务和工作负载的情况,当任务数量随着业务拓展而逐渐增加,心跳报文的数量不会随着任务数量增多而增多,从而避免增加监控系统的计算压力。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种任务调度监控方法和装置。
背景技术
分布式任务调度框架在金融、互联网等企业中占据十分重要的作用,在一些实时数据处理领域中,由于存在数据量大、高并发、单任务低时延的特点,对数据处理的要求较高,既要保证高时效性,也要保证准确和安全性,一旦任务调度或任务执行出现异常,将会导致相关业务异常及问题堆积,从而造成一系列的连锁反应。
为此,需要对分布式任务调度框架进行监控,对分布式任务调度框架的监控就是要及时掌握分布式任务在各个工作负载中集群任务的正常开始和结束执行情况。当发现有集群任务出现执行异常时,能将错误及时提交异常处理模块
然而,相关技术中提供的监控方式都需要在监控系统预置集群任务信息,每当有集群任务数量或编号规则调整,都需要在监控系统重新配置对应关系,增加监控部署难度。并且为监控系统带来更高的性能压力,一旦任务数量随着业务拓展而逐渐增加,监控系统的计算压力也将持续增加。
发明内容
为了解决上述技术问题,本申请提供了一种任务调度监控方法和装置,无需在监控系统上配置对应关系,降低监控部署难度。同时,每个工作负载发送一个心跳报文,当任务数量随着业务拓展而逐渐增加,心跳报文的数量不会随着任务数量增多而增多,从而避免增加监控系统的计算压力。
第一方面,本申请实施例提供一种任务调度监控方法,所述方法包括:
在达到监控定时时间后,目标工作负载从集群数据库获取任务执行计划数据表;
所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况;
若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,所述目标工作负载向监控系统发送心跳报文,所述心跳报文表示所述目标工作负载上所有任务正常,且所述目标工作负载的状态正常;
若所述执行情况反映存在任务异常,或所述目标工作负载的状态异常,向所述监控系统发送第一联机告警。
可选的,所述任务执行计划数据表中包括每个任务的任务开始时间,所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况,包括:
所述目标工作负载检查是否存在第一任务的任务开始时间处于系统初始值,得到所述执行情况;
若存在,所述执行情况表示所述第一任务异常;
相应的,所述第一联机告警表示任务调度异常。
可选的,所述任务执行计划数据表中包括每个任务的任务开始时间、任务结束时间、当前时间,所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况,包括:
所述目标工作负载根据所述任务开始时间、所述任务结束时间、所述当前时间和任务超时阈值确定是否存在第二任务的所述当前时间距离所述任务开始时间的时长超过所述任务超时阈值,所述第二任务为根据所述任务结束时间确定超时未执行完的任务;
若存在,所述执行情况表示所述第二任务异常;
相应的,所述第一联机告警表示任务执行异常。
可选的,若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,所述方法还包括:
根据已执行完的所有任务的执行时长更新所述任务超时阈值。
可选的,所述根据已执行完的所有任务的执行时长更新所述任务超时阈值,包括:
获取预设时间段内的全部任务时长数据,所述任务时长数据表示已执行完的所有任务的执行时长,所述全部任务时长数据中包括的执行时长服从正态分布;
根据所述全部任务时长数据中的执行时长和所述正态分布的参数计算置信区间;
将所述置信区间的区间最大值作为更新后的任务超时阈值。
可选的,所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况之前,所述方法还包括:
检查所述目标工作负载与所述集群数据库的通信;
若检查结果表示所述目标工作负载无法访问所述集群数据库或所述任务执行计划数据表,向所述监控系统发送第二联机告警。
第二方面,本申请实施例提供一种任务调度监控装置,所述装置包括:
获取单元,用于在达到监控定时时间后,从集群数据库获取任务执行计划数据表;
确定单元,用于根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况;
发送单元,用于若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,向监控系统发送心跳报文,所述心跳报文表示所述目标工作负载上所有任务正常,且所述目标工作负载的状态正常;
所述发送单元,还用于若所述执行情况反映存在任务异常,或所述目标工作负载的状态异常,向所述监控系统发送联机告警。
可选的,所述任务执行计划数据表中包括每个任务的任务开始时间,所述确定单元,用于:
检查是否存在第一任务的任务开始时间处于系统初始值,得到所述执行情况;
若存在,所述执行情况表示所述第一任务异常;
相应的,所述联机告警表示任务调度异常。
可选的,所述任务执行计划数据表中包括每个任务的任务开始时间、任务结束时间、当前时间,所述确定单元,用于:
根据所述任务开始时间、所述任务结束时间、所述当前时间和任务超时阈值确定是否存在第二任务的所述当前时间距离所述任务开始时间的时长超过所述任务超时阈值,所述第二任务为根据所述任务结束时间确定超时未执行完的任务;
若存在,所述执行情况表示所述第二任务异常;
相应的,所述联机告警表示任务执行异常。
可选的,若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,所述装置还包括:
更新单元,用于根据已执行完的所有任务的执行时长更新所述任务超时阈值。
可选的,所述更新单元,具体用于:
获取预设时间段内的全部任务时长数据,所述任务时长数据表示已执行完的所有任务的执行时长,所述全部任务时长数据中包括的执行时长服从正态分布;
根据所述全部任务时长数据中的执行时长和所述正态分布的参数计算置信区间;
将所述置信区间的区间最大值作为更新后的任务超时阈值。
可选的,所述装置还包括:
检查单元,用于在根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况之前,检查所述目标工作负载与所述集群数据库的通信;
所述发送单元,用于若检查结果表示所述目标工作负载无法访问所述集群数据库或所述任务执行计划数据表,向所述监控系统发送第二联机告警。
由上述技术方案可以看出,本申请提供的任务调度监控方法,在达到监控定时时间后,目标工作负载从集群数据库获取任务执行计划数据表;目标工作负载根据任务执行计划数据表确定目标工作负载上的所有任务的执行情况;若执行情况反映目标工作负载上的所有任务正常,且目标工作负载的状态正常,目标工作负载向监控系统发送心跳报文,心跳报文表示目标工作负载上所有任务正常,且目标工作负载的状态正常,使得监控系统可以根据一个心跳报文同时知晓任务和工作负载的情况;若执行情况反映存在任务异常,或目标工作负载的状态异常,向监控系统发送第一联机告警。该方法由工作负载向监控系统发送同时反映工作负载和其上所有任务的情况的心跳报文,从而无需在监控系统上配置对应关系,降低监控部署难度。同时,每个工作负载发送一个心跳报文,当任务数量随着业务拓展而逐渐增加,心跳报文的数量不会随着任务数量增多而增多,从而避免增加监控系统的计算压力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术提供的一种任务调度监控方法的系统架构图;
图2为相关技术提供的一种任务调度监控方法的系统架构图;
图3为本申请实施例提供的一种无中心分布式任务调度框架示例图;
图4为本申请实施例提供的一种任务调度监控方法的流程图;
图5为本申请实施例提供的一种任务调度监控方法的流程图;
图6为本申请实施例提供的一种全部任务时长数据的概率分布示例图;
图7为本申请实施例提供的另一种全部任务时长数据的概率分布示例图;
图8为本申请实施例提供的又一种全部任务时长数据的概率分布示例图;
图9为本申请实施例提供的一种任务调度监控装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,相关技术中提供两种任务调度监控方法,一种方法是任务在工作负载打标留痕监控周期T内,集群任务轮询调度,每个工作负载打标记录监控周期内执行完成的任务编号,并向监控系统报告一次任务执行情况和自己健康情况。例如图1所示,以两个工作负载即工作负载1和工作负载2为例,在监控时段T内,工作负载1执行任务1、2、3、4,工作负载2执行任务1、2、3、4、5,若工作负载1和工作负载2的所有任务执行正常,则工作负载1可以向监控系统发送任务1、2、3、4正常和工作负载1的健康情况,工作负载2可以向监控系统发送任务1、2、3、4、5正常和工作负载2健康情况。
监控系统根据接收的信息判断工作负载是否正常工作,并将每次收集到的全量任务编号进行汇总、去重,查找是否有任务被漏掉执行。当发现有工作负载不发送信息,认为其异常则产生工作负载挂起的告警。当检查到有任务漏掉执行后,产生工作任务挂起的告警。
第二种方法是任务执行过程内嵌监控上送逻辑,各个集群任务自己控制监控时段T,定时通过工作负载向监控系统发送心跳报文。监控系统接收到任务心跳视为任务工作正常,并按照本地配置的全量任务清单对比是否有任务漏掉,如果有,则产生有工作任务挂起的告警。同时,监控系统根据任务心跳的发送源地址进行去重检查各个工作负载是否运行正常,如果一段时间内未收到某个工作负载发送的任务心跳,则产生工作负载挂起的告警。
例如图2所示,以两个工作负载即工作负载1和工作负载2为例,在监控时段T内,工作负载1执行任务1、2、3、4,工作负载2执行任务1、2、3、5,任务4可以通过工作负载1向监控系统发送任务4正常的心跳报文,任务1、2、3、5分别可以通过工作负载2向监控系统发送任务1、2、3、5正常的心跳报文。
然而,相关技术中提供的监控方式都需要在监控系统预置集群任务信息,每当有集群任务数量或编号规则调整,都需要在监控系统重新配置对应关系,增加监控部署难度。并且为监控系统带来更高的性能压力,一旦任务数量随着业务拓展而逐渐增加,监控系统的计算压力也将持续增加。
为了解决上述技术问题,本申请提供的任务调度监控方法,在达到监控定时时间后,目标工作负载从集群数据库获取任务执行计划数据表,任务执行计划数据表;目标工作负载根据任务执行计划数据表确定目标工作负载上的所有任务的执行情况;若执行情况反映目标工作负载上的所有任务正常,且目标工作负载的状态正常,目标工作负载向监控系统发送心跳报文,心跳报文表示目标工作负载上所有任务正常,且目标工作负载的状态正常,使得监控系统可以根据一个心跳报文同时知晓任务和工作负载的情况;若执行情况反映存在任务异常,或目标工作负载的状态异常,向监控系统发送第一联机告警。该方法由工作负载向监控系统发送同时反映工作负载和其上所有任务的情况的心跳报文,从而无需在监控系统上配置对应关系,降低监控部署难度。同时,每个工作负载发送一个心跳报文,当任务数量随着业务拓展而逐渐增加,心跳报文的数量不会随着任务数量增多而增多,从而避免增加监控系统的计算压力。
需要说明的是,本申请实施例提供的任务调度监控方法可以适用于无中心分布式任务调度框架,无中心分布式任务调度是指在集群中各工作负载节点独立自治,不需要调度中心管理任务分配,集群水平扩展容易,实现难度低且部署简单。无中心化分布式任务调度框架下,各工作负载基于高可用架构的商业数据库锁规则保证操作一致性。
无中心分布式任务调度框架可以参见图3所示,主要由数据库101和工作负载102组成,数据库101中包括多个任务例如任务1、任务2、……任务m,工作负载102可以包括多个,例如可以分别是工作负载1、工作负载2、……工作负载n。每个工作负载102都是一个任务执行的单元,依据设定的线程多少而控制每个工作负载可执行的任务多少,假设图3中工作负载1执行任务1和任务4,工作负载2执行任务2和任务3,……工作负载n执行任务m。在这个集群中,每个工作负载102单独启动或停止,相互独立自治、时钟同步,不同工作负载之间是没有通信的。
其中,工作负载102例如可以是终端设备、服务器、也可以是中央处理器(CentralProcessing Unit,CPU)等处理单元。终端设备例如可以是智能终端、计算机、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑等设备。
集群工作负载102通过访问共同的数据库101来感知集群需要执行的任务。在每个工作负载102中,都定义了集群中各种类型任务的实现方式,但是此刻要执行哪类任务,要依据从数据库101获取的任务编号来确定,执行完成后再通知数据库101,以便其他工作负载102下次执行和此工作负载102继续执行其他任务。
需要说明的是,无中心分布式任务调度框架常被应用于高并发、低时延的实时数据处理场景,此场景中大量数据实时生成,需要在有效时间内完成处理、加工和计算,为了达到快速处理的效果,在数据分类过程会将数据铺平拆分,比如在处理银行全国动账数据流水时,河北省的数据只需要按每个地级市建立10余个独立数据处理任务,但浙江省杭州市就要依照交易流水尾号进行更细致的拆分,以便每个实时数据处理任务的数据量保持基本一致。通过数据拆分,更多的任务需要同步执行,因为数据拆分更细致,每个拆分区内的数据量变小,就形成了高并发、低时延的分布式任务调度场景。
此外,实时数据带有时态性,不同时段数据量大小有显著差别,比如双十一电商大促期间,各类型任务需要处理的数据量都会有显著提升,导致任务处理时间变长。或者上游数据收集系统运维升级期间,实时数据流量会有显著下降,单任务处理时长变短。任务时长的变化对分布式任务调度框架工作过程的超时判断提出了挑战,伴随着误告警次数增加或者应急处置不及时的隐患。
故在这些场景下,基于无中心分布式任务调度框架的任务调度监控方法将被广泛应用,从而进行合理的超时判断和告警等。
接下来,将结合附图对本申请提供的任务调度监控方法进行介绍。参见图4所示,所示方法包括:
S401、在达到监控定时时间后,目标工作负载从集群数据库获取任务执行计划数据表。
在本实施例中,按照监控定时时间对任务调度进行监控。在达到监控定时时间后,目标工作负载启动独立的监控进程。目标工作负载为无中心分布式任务调度框架下的每个工作负载。
集群数据库中包括任务执行计划数据表,任务执行计划数据表中可以记录分布式任务调度框架每次获取及更新的任务列表,包含任务编号、执行的工作负载编号、任务开始时间、任务结束时间、执行次数、超时时间等。通常在无中心任务调度框架启动时会对任务执行计划数据表中所有任务的参数进行初始化,任务开始时间会置为系统初始值,只有任务被正常执行过,任务开始时间才会被更新。同样的,在任务执行后,任务结束时间、执行次数、超时时间也可能会被更新。
需要说明的是,在本实施例中,除了任务的执行情况可以反映是否需要联机告警或发送心跳报文,在一些情况下,在目标工作负载根据任务执行计划数据表确定目标工作负载上的所有任务的执行情况之前,还可以检查目标工作负载与集群数据库的通信(参见图5中S501所示),确定目标工作负载是否可以访问集群数据库或任务执行计划数据表(参见图5中S502所示),若检查结果表示目标工作负载无法访问集群数据库或任务执行计划数据表,向监控系统发送第二联机告警(参见图5中S503所示),以通知监控系统“集群数据库或任务执行计划数据表异常”,完成此次监控,释放进程。若检查结果表示目标工作负载可以访问集群数据库和任务执行计划数据表,则执行S402。
S402、所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况。
在本实施例中,S402的实现方式可以包括多种。在一种可能的实现方式中,若任务执行计划数据表中包括每个任务的任务开始时间,目标工作负载根据任务执行计划数据表确定目标工作负载上的所有任务的执行情况的方式可以是获取所有任务的任务开始时间(参见图5中S504所示),目标工作负载检查是否存在第一任务的任务开始时间处于系统初始值(参见图5中S505所示),得到执行情况。若存在,该执行情况表示第一任务异常,可能被遗漏或未执行成功。相应的,发送表示任务调度异常的第一联机告警(参见图5中S506所示),若不存在,则执行情况表示任务调度正常,说明所有任务都已被成功执行过,未存在遗漏。
由于在无中心任务调度框架启动时会对任务执行计划数据表中所有任务的参数进行初始化,任务开始时间会置为系统初始值,只有任务被正常执行过,任务开始时间才会被更新。故通过该方法可以检查所有任务是否全部启动。若存在未启动的第一任务,则向监控系统发送第一联机告警,通知监控系统“任务调度异常”,完成此次监控,释放进程。其中,进程的首次调起不会伴随工作负载启动,进入检查前都会有一段较长的延时等待,以便分布式任务调度集群能充分运转,因此不会存在没来得及对任务进行初始化就产生联机告警的情况。
在另一种可能的实现方式中,若任务执行计划数据表中包括每个任务的任务开始时间、任务结束时间、当前时间,目标工作负载根据任务执行计划数据表确定目标工作负载上的所有任务的执行情况的方式可以是目标工作负载根据任务开始时间、任务结束时间、当前时间和任务超时阈值确定是否存在第二任务的当前时间距离任务开始时间的时长超过任务超时阈值,第二任务为根据任务结束时间确定超时未执行完的任务。若存在,执行情况表示第二任务异常,相应的,第一联机告警表示任务执行异常,此时通知监控系统“任务执行异常”,完成此次监控,释放进程。若不存在,表示任务未超时或超时在超时可容忍时长内,执行情况表示任务执行正常。
需要说明的是,上述两种S402的可能实现方式可以单独执行,也可以组合执行,即先通过检查是否存在第一任务的任务开始时间处于系统初始值,若不存在,再获取所有任务的任务结束时间(参见图5中S507所示),确定是否存在第二任务的当前时间距离任务开始时间的时长超过任务超时阈值(参见图5中S508所示)的步骤,从而确定最终执行情况。若存在,执行情况表示第二任务异常,相应的,发送表示任务执行异常的第一联机告警(参见图5中S509所示),此时通知监控系统“任务执行异常”,完成此次监控,释放进程。若不存在,表示任务未超时或超时在超时可容忍时长内,执行情况表示任务执行正常,可以执行后续步骤。
需要说明的是,相关技术中,任务超时阈值由人工设定分时段固定值,不适用于当前金融、互联网场景下的动态流量变化,实时数据规模在不同时期、不同时段的变化趋势可以预判,但实际数据量与任务可执行时长的关系不能通过变化趋势来设定固定值,因为缺少对数据规模变化时工作负载运行效率和网络吞吐量等因素的考虑,这类因素的变化是随机无规律可循的。此外,某些互联网场景的数据流量变化是不可预期的,如微博的访客会因一则爆炸性新闻而在某个时段开始突然增加。设定分时段固定阈值后可推导出如下情况,当任务实际处理时长逐渐高于任务超时阈值时,高并发任务会连续触发误告警,其他工作负载误认为有任务已在原工作负载中挂起,需要重新恢复执行,引起任务的重复执行;当任务实际处理时长逐渐小于任务超时阈值时,真正发生任务超时将更晚被发现,由于此时集群任务都处于低时延快速执行状态,超时异常任务没有被及时发现,会造成故障堆积,引发业务数据的不连续,实时数据有效性降低,例如信用卡风控应用,下游系统会根据一段时间内的风控数据换算风险等级从而告知客户,如果有部分数据在无中心任务调度框架中明显晚于同批次数据的到达,将使风控计算结果大相径庭。
为此,本申请实施例提供一种动态调整任务超时阈值的方法,即若执行情况反映目标工作负载上的所有任务正常,且目标工作负载的状态正常,此时随着这些任务执行的完成,已执行完的所有任务将发生变化,故可以根据已执行完的所有任务的执行时长更新任务超时阈值(参见图5中S510所示),从而实现根据不同时段任务的实际执行时长,动态调整任务超时阈值,使其更符合实际应用场景的需求。
在一种可能的实现方式中,根据已执行完的所有任务的执行时长更新所述任务超时阈值的方式可以是获取预设时间段内的全部任务时长数据,任务时长数据表示已执行完的所有任务的执行时长,全部任务时长数据中包括的执行时长服从正态分布;根据全部任务时长数据中的执行时长和正态分布的参数计算置信区间;将置信区间的区间最大值作为更新后的任务超时阈值。
例如,对于任务超时阈值的估算,采用1小时内(预设时间段内)样本数据来估计总体参数,样本数据呈现随机概率分布,整体服从正态分布。为了选择能覆盖绝大多数任务时长的任务超时阈值,设定样本数据的正态分布置信水平为99.7%,即认为任务的执行时长能控制在样本数据均值加3个样本标准差的范围内是任务执行的正常时间。计算步骤如下:
取近1小时内执行同类型业务的全部任务时长数据,构建样本集,该样本集服从正态分布X~N(μ,σ2),X1、X2、……Xn表示每个任务时长数据;
3)根据置信水平换算置信区间,[M-3s,M+3s],置信水平为99.7%
4)取置信区间的区间最大值作为M+3s作为更新后的任务超时阈值。
例如,全部任务时长数据参见表1所示,代表同类型业务的分布式任务在一段时间内的按任务结束时刻顺序时序排列的任务执行时长,单位为毫秒,全部任务时长数据(包括的执行时间)的个数为150。
表1
根据表1中的数据首先计算样本均值为2039.34,样本标准差为17.01,此全部任务时长数据呈现概率分布图如图6所示,直方图为各数值区间的频次数,曲线为拟合的正态曲线图。
然后计算置信区间最大值2090.37,则任务超时阈值为2090.37毫秒,大于此数值的数据即认为是任务执行异常,需要告警并异常处置。按照阈值设定,当分布式任务执行时长在(0,2090.37]范围内,监控进程认为任务执行正常结束,此区间数据发生的概率为99.9%,能够满足高并发、低时延分布式任务调度绝大多数场景的监控方法中。
当实际发生的任务的执行时长增加时,按时序排列,时间较早的执行时长被剔除,新的执行时长作为样本加入,此时得到的全部任务时长数据参见表2所示,其中表2中带有横线的数值表示被剔除:
表2
此时,计算得出的样本均值为2061.9,样本标准差为22.01,相对于根据表1的数据计算得到的样本均值和样本标准差都发生变化,引起置信区间变化,概率分布变为图7所示。
重新计算后的任务超时阈值为2127.93,样本均值向右偏移,反应了总体参数的向右偏移,此时需要动态调整任务超时阈值,以应对大量任务的执行时长开始增加。如果此时任务超时阈值依然保持在2090.37毫秒,监控系统将收到大量“超时任务”引发频繁的误告警。
当实际发生的任务的执行时长减少时,按时序排列,时间较早的执行时长被剔除,新的执行时长作为样本加入,此时得到的全部任务时长数据参见表3所示,其中表3中带有横线的数值表示被剔除:
表3
此时,计算得出的样本均值为2034.92,样本标准差为15.45,相对于根据表1的数据计算得到的样本均值和样本标准差都发生变化,引起置信区间变化,概率分布变为图8所示。
重新计算后的任务超时阈值为2081.27,样本均值向左偏移,反应了总体参数的向左偏移,此时需要动态调整任务超时阈值,以应对大量短任务的执行时长减少。如果此时任务超时阈值依然保持在2090.37毫秒,分布式任务框架将处于过长的等待超时,大量高并发任务不断积压,造成业务数据处理的拖延。
S403、若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,所述目标工作负载向监控系统发送心跳报文。
其中,心跳报文表示目标工作负载上所有任务正常,且目标工作负载的状态正常,也就是说,监控系统根据一个心跳报文可以知晓目标工作负载上所有任务正常,且目标工作负载的状态正常。对应于图5中S511。
S404、若所述执行情况反映存在任务异常,或所述目标工作负载的状态异常,向所述监控系统发送第一联机告警。
由上述技术方案可以看出,本申请提供的任务调度监控方法,在达到监控定时时间后,目标工作负载从集群数据库获取任务执行计划数据表;目标工作负载根据任务执行计划数据表确定目标工作负载上的所有任务的执行情况;若执行情况反映目标工作负载上的所有任务正常,且目标工作负载的状态正常,目标工作负载向监控系统发送心跳报文,心跳报文表示目标工作负载上所有任务正常,且目标工作负载的状态正常,使得监控系统可以根据一个心跳报文同时知晓任务和工作负载的情况;若执行情况反映存在任务异常,或目标工作负载的状态异常,向监控系统发送第一联机告警。该方法由工作负载向监控系统发送同时反映工作负载和其上所有任务的情况的心跳报文,从而无需在监控系统上配置对应关系,降低监控部署难度。同时,每个工作负载发送一个心跳报文,当任务数量随着业务拓展而逐渐增加,心跳报文的数量不会随着任务数量增多而增多,从而避免增加监控系统的计算压力。
工作负载每次启动任务检查时,重新计算任务超时阈值,计算数据样本为最近一段时间内同类型已完成任务的执行时长,概率分布呈正态分布,任务超时阈值选择采用99.7%置信区间边界值,任务超时阈值随近期任务执行时长而动态增减。
基于前述实施例提供的任务调度监控方法,本申请实施例提供一种任务调度监控装置,参见图9,所述装置包括:
获取单元901,用于在达到监控定时时间后,从集群数据库获取任务执行计划数据表,所述任务执行计划数据表;
确定单元902,用于根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况;
发送单元903,用于若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,向监控系统发送心跳报文,所述心跳报文表示所述目标工作负载上所有任务正常,且所述目标工作负载的状态正常;
所述发送单元903,还用于若所述执行情况反映存在任务异常,或所述目标工作负载的状态异常,向所述监控系统发送联机告警。
可选的,所述任务执行计划数据表中包括每个任务的任务开始时间,所述确定单元,用于:
检查是否存在第一任务的任务开始时间处于系统初始值,得到所述执行情况;
若存在,所述执行情况表示所述第一任务异常;
相应的,所述联机告警表示任务调度异常。
可选的,所述任务执行计划数据表中包括每个任务的任务开始时间、任务结束时间、当前时间,所述确定单元,用于:
根据所述任务开始时间、所述任务结束时间、所述当前时间和任务超时阈值确定是否存在第二任务的所述当前时间距离所述任务开始时间的时长超过所述任务超时阈值,所述第二任务为根据所述任务结束时间确定超时未执行完的任务;
若存在,所述执行情况表示所述第二任务异常;
相应的,所述联机告警表示任务执行异常。
可选的,若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,所述装置还包括:
更新单元,用于根据已执行完的所有任务的执行时长更新所述任务超时阈值。
可选的,所述更新单元,具体用于:
获取预设时间段内的全部任务时长数据,所述任务时长数据表示已执行完的所有任务的执行时长,所述全部任务时长数据中包括的执行时长服从正态分布;
根据所述全部任务时长数据中的执行时长和所述正态分布的参数计算置信区间;
将所述置信区间的区间最大值作为更新后的任务超时阈值。
可选的,所述装置还包括:
检查单元,用于在根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况之前,检查所述目标工作负载与所述集群数据库的通信;
所述发送单元,用于若检查结果表示所述目标工作负载无法访问所述集群数据库,向所述监控系统发送第二联机告警。
由上述技术方案可以看出,本申请提供的任务调度监控装置,在达到监控定时时间后,目标工作负载从集群数据库获取任务执行计划数据表;目标工作负载根据任务执行计划数据表确定目标工作负载上的所有任务的执行情况;若执行情况反映目标工作负载上的所有任务正常,且目标工作负载的状态正常,目标工作负载向监控系统发送心跳报文,心跳报文表示目标工作负载上所有任务正常,且目标工作负载的状态正常,使得监控系统可以根据一个心跳报文同时知晓任务和工作负载的情况;若执行情况反映存在任务异常,或目标工作负载的状态异常,向监控系统发送第一联机告警。该方法由工作负载向监控系统发送同时反映工作负载和其上所有任务的情况的心跳报文,从而无需在监控系统上配置对应关系,降低监控部署难度。同时,每个工作负载发送一个心跳报文,当任务数量随着业务拓展而逐渐增加,心跳报文的数量不会随着任务数量增多而增多,从而避免增加监控系统的计算压力。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种任务调度监控方法,其特征在于,所述方法包括:
在达到监控定时时间后,目标工作负载从集群数据库获取任务执行计划数据表;
所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况;
若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,所述目标工作负载向监控系统发送心跳报文,所述心跳报文表示所述目标工作负载上所有任务正常,且所述目标工作负载的状态正常;
若所述执行情况反映存在任务异常,或所述目标工作负载的状态异常,向所述监控系统发送第一联机告警。
2.根据权利要求1所述的方法,其特征在于,所述任务执行计划数据表中包括每个任务的任务开始时间,所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况,包括:
所述目标工作负载检查是否存在第一任务的任务开始时间处于系统初始值,得到所述执行情况;
若存在,所述执行情况表示所述第一任务异常;
相应的,所述第一联机告警表示任务调度异常。
3.根据权利要求1或2所述的方法,其特征在于,所述任务执行计划数据表中包括每个任务的任务开始时间、任务结束时间、当前时间,所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况,包括:
所述目标工作负载根据所述任务开始时间、所述任务结束时间、所述当前时间和任务超时阈值确定是否存在第二任务的所述当前时间距离所述任务开始时间的时长超过所述任务超时阈值,所述第二任务为根据所述任务结束时间确定超时未执行完的任务;
若存在,所述执行情况表示所述第二任务异常;
相应的,所述第一联机告警表示任务执行异常。
4.根据权利要求3所述的方法,其特征在于,若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,所述方法还包括:
根据已执行完的所有任务的执行时长更新所述任务超时阈值。
5.根据权利要求4所述的方法,其特征在于,所述根据已执行完的所有任务的执行时长更新所述任务超时阈值,包括:
获取预设时间段内的全部任务时长数据,所述任务时长数据表示已执行完的所有任务的执行时长,所述全部任务时长数据中包括的执行时长服从正态分布;
根据所述全部任务时长数据中的执行时长和所述正态分布的参数计算置信区间;
将所述置信区间的区间最大值作为更新后的任务超时阈值。
6.根据权利要求1或2所述的方法,其特征在于,所述目标工作负载根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况之前,所述方法还包括:
检查所述目标工作负载与所述集群数据库的通信;
若检查结果表示所述目标工作负载无法访问所述集群数据库或所述任务执行计划数据表,向所述监控系统发送第二联机告警。
7.一种任务调度监控装置,其特征在于,所述装置包括:
获取单元,用于在达到监控定时时间后,从集群数据库获取任务执行计划数据表;
确定单元,用于根据所述任务执行计划数据表确定所述目标工作负载上的所有任务的执行情况;
发送单元,用于若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,向监控系统发送心跳报文,所述心跳报文表示所述目标工作负载上所有任务正常,且所述目标工作负载的状态正常;
所述发送单元,还用于若所述执行情况反映存在任务异常,或所述目标工作负载的状态异常,向所述监控系统发送联机告警。
8.根据权利要求7所述的装置,其特征在于,所述任务执行计划数据表中包括每个任务的任务开始时间,所述确定单元,用于:
检查是否存在第一任务的任务开始时间处于系统初始值,得到所述执行情况;
若存在,所述执行情况表示所述第一任务异常;
相应的,所述联机告警表示任务调度异常。
9.根据权利要求7或8所述的装置,其特征在于,所述任务执行计划数据表中包括每个任务的任务开始时间、任务结束时间、当前时间,所述确定单元,用于:
根据所述任务开始时间、所述任务结束时间、所述当前时间和任务超时阈值确定是否存在第二任务的所述当前时间距离所述任务开始时间的时长超过所述任务超时阈值,所述第二任务为根据所述任务结束时间确定超时未执行完的任务;
若存在,所述执行情况表示所述第二任务异常;
相应的,所述联机告警表示任务执行异常。
10.根据权利要求9所述的装置,其特征在于,若所述执行情况反映所述目标工作负载上的所有任务正常,且所述目标工作负载的状态正常,所述装置还包括:
更新单元,用于根据已执行完的所有任务的执行时长更新所述任务超时阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640291.2A CN112631761A (zh) | 2020-12-31 | 2020-12-31 | 一种任务调度监控方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640291.2A CN112631761A (zh) | 2020-12-31 | 2020-12-31 | 一种任务调度监控方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112631761A true CN112631761A (zh) | 2021-04-09 |
Family
ID=75290187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011640291.2A Pending CN112631761A (zh) | 2020-12-31 | 2020-12-31 | 一种任务调度监控方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631761A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836160A (zh) * | 2021-09-28 | 2021-12-24 | 上海市大数据股份有限公司 | 一种基于主从同步的数据流状态监控告警系统 |
CN115017235A (zh) * | 2022-06-30 | 2022-09-06 | 上海弘玑信息技术有限公司 | 数据同步方法及电子设备、存储介质 |
CN116610537A (zh) * | 2023-07-20 | 2023-08-18 | 中债金融估值中心有限公司 | 一种数据量监控方法、系统、设备及存储介质 |
CN116886755A (zh) * | 2023-09-08 | 2023-10-13 | 安擎计算机信息股份有限公司 | 一种被测服务器的保活方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521044A (zh) * | 2011-12-30 | 2012-06-27 | 北京拓明科技有限公司 | 一种基于消息中间件的分布式任务调度方法及系统 |
CN107483601A (zh) * | 2017-08-28 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种分布式定时任务的实现方法及执行系统 |
CN107734035A (zh) * | 2017-10-17 | 2018-02-23 | 华南理工大学 | 一种云计算环境下的虚拟集群自动伸缩方法 |
US20180321975A1 (en) * | 2017-05-04 | 2018-11-08 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery |
-
2020
- 2020-12-31 CN CN202011640291.2A patent/CN112631761A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521044A (zh) * | 2011-12-30 | 2012-06-27 | 北京拓明科技有限公司 | 一种基于消息中间件的分布式任务调度方法及系统 |
US20180321975A1 (en) * | 2017-05-04 | 2018-11-08 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery |
CN107483601A (zh) * | 2017-08-28 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种分布式定时任务的实现方法及执行系统 |
CN107734035A (zh) * | 2017-10-17 | 2018-02-23 | 华南理工大学 | 一种云计算环境下的虚拟集群自动伸缩方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836160A (zh) * | 2021-09-28 | 2021-12-24 | 上海市大数据股份有限公司 | 一种基于主从同步的数据流状态监控告警系统 |
CN113836160B (zh) * | 2021-09-28 | 2024-01-23 | 上海市大数据股份有限公司 | 一种基于主从同步的数据流状态监控告警系统 |
CN115017235A (zh) * | 2022-06-30 | 2022-09-06 | 上海弘玑信息技术有限公司 | 数据同步方法及电子设备、存储介质 |
CN116610537A (zh) * | 2023-07-20 | 2023-08-18 | 中债金融估值中心有限公司 | 一种数据量监控方法、系统、设备及存储介质 |
CN116610537B (zh) * | 2023-07-20 | 2023-11-17 | 中债金融估值中心有限公司 | 一种数据量监控方法、系统、设备及存储介质 |
CN116886755A (zh) * | 2023-09-08 | 2023-10-13 | 安擎计算机信息股份有限公司 | 一种被测服务器的保活方法及装置 |
CN116886755B (zh) * | 2023-09-08 | 2023-11-17 | 安擎计算机信息股份有限公司 | 一种被测服务器的保活方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112631761A (zh) | 一种任务调度监控方法和装置 | |
CN111782360B (zh) | 分布式任务调度方法及装置 | |
US10459805B2 (en) | Method and system for data recovery in a data system | |
CN111901422B (zh) | 一种集群中节点的管理方法、系统及装置 | |
CN110704173A (zh) | 任务调度方法、调度系统、电子设备及计算机存储介质 | |
CN107092521B (zh) | 一种分布式任务调度方法、装置及系统 | |
US20170329655A1 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN111400104B (zh) | 数据同步方法及装置、电子设备、存储介质 | |
CN111160873A (zh) | 基于分布式架构的跑批处理装置及方法 | |
CN115964153A (zh) | 一种异步任务处理方法、装置、设备以及存储介质 | |
CN109493230B (zh) | 一种单边交易的补录方法及装置 | |
CN116431313A (zh) | 一种轮询任务的调度方法、装置、设备及介质 | |
CN116090780A (zh) | 天气预报流程的控制方法、装置、设备和介质 | |
CN115190052B (zh) | 一种长连接的管理方法、系统和控制单元 | |
CN110795239A (zh) | 应用内存泄露的检测方法及装置 | |
CN111158896A (zh) | 一种分布式进程调度方法及系统 | |
CN113703964A (zh) | 内存管理方法及装置 | |
CN114518974A (zh) | 数据处理任务的检查点恢复方法、装置、设备及介质 | |
CN106850283B (zh) | 一种基于事件驱动的云ac告警处理系统及方法 | |
CN115328670B (zh) | 一种异步任务处理方法、系统和服务器 | |
CN116719632B (zh) | 任务调度方法、装置、设备以及介质 | |
CN112702376B (zh) | 一种交易实时监控方法 | |
CN108595625B (zh) | Bi工具的运维方法、装置、计算机装置及存储介质 | |
CN116578396A (zh) | 定时任务分页处理方法、装置、计算机设备及存储介质 | |
CN117573162A (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 |