一种针对大数据平台的慢任务原因检测方法技术

技术编号:18203771 阅读:112 留言:0更新日期:2018-06-13 06:08
大数据的应用程序处理过程一般会划分为多个阶段,每个阶段划分多个任务在多个节点上并行执行,这些任务一般执行相同的代码,当一个阶段所有任务全部完成才能进入下一个阶段执行。在处理过程中,很多因素会导致某些任务执行时间过长,这些任务大幅拖慢了程序的执行时间,检测导致这些慢任务的原因(故障诊断)有助于大数据应用开发人员改善大数据应用性能。本发明专利技术提出的针对大数据平台的慢任务原因检测方法,通过周期性的硬件信息采样和运行日志分析的方法获取相关特征并运用统计学方法得出导致慢任务的原因。

【技术实现步骤摘要】
一种针对大数据平台的慢任务原因检测方法
本专利技术涉及大数据应用性能分析,资源监控,性能瓶颈诊断和可视化。
技术介绍
过去十几年里,互联网的发展使得数据成指数积累,大数据已经越来越广泛地应用在各个领域。大数据处理问题的方式基本可以简化为把数据划分为小数据块,然后每台机器处理一个小数据块,被称为一个任务,当有些机器处理任务过慢就会拖慢整个程序的执行速度,这些任务被称为慢任务(stragglertask)。在微软必应的云计算环境下,10%的慢任务执行时间长度为任务执行时间中位数的10倍。针对谷歌云计算环境的研究也发现,最慢的5%的任务导致了99%的延迟。还有类似的生产环境下日志分析,都一致验证了慢任务会造成很大的延迟。目前已有的方法主要集中在如何用投机执行去消除慢任务的影响,在程序运行时检测到慢任务,然后把这些任务分发到空闲机器上执行。这种方法的缺点在于慢任务的产生是由很多种因素引起的,如果是由于网络拥堵造成执行时间过长,那么将任务迁移到别的机器会引起更大的拥堵;如果是由于数据倾斜(任务处理的数据量太大)造成执行时间过长,将任务迁移到别的机器同样不能让程序执行地更快。此外,投机执行会占用额外的资源,这将导致整个集群处于高负载状态,不便多个用户共享计算资源。现有的慢任务原因定位主要有以下几种方法:1.相关性分析这种方法主要是判断慢任务的出现是否伴随着某些特征的出现,这种方法有很大的弊端,这些伴随慢任务出现的特征不一定是导致慢任务出现的原因,比如高资源占用率有时候可能是任务本身引起的,这种情况下就是高资源占用率导致了慢任务;2.插桩这种方法主要是向大数据平台插桩,获取详细的调度信息,计算出任务执行每一个步骤所用的时间,从而找出慢任务原因。这种方法的弊端在于需要插桩才能获取需要的信息,在生产环境不便部署;而且,很多可能导致慢任务产生的特征无法测量时间,这种方法得出的慢任务原因不够全面;3.自顶向下分析这种方法主要是指定一个按照优先级排列的特征序列,然后依次检查慢任务在执行过程中是否出现这些特征,一旦发现有特征满足条件就停止查找,这种方法的缺点在于无法为慢任务定位多个特征,而且优先级的确定具有很强的人为因素,不具备客观性;这种方法同样没有进行同阶段不同任务比较,无法准确定位慢任务原因。
技术实现思路
本专利技术提供了一种针对大数据平台的慢任务原因分析方法,基于大数据平台离线日志分析加采样日志分析的方式得到特征,然后将慢任务的特征和同阶段不同任务的特征进行对比,得到慢任务原因;其优点在于能够判定任务粒度的内因和外因,便于用户定位应用程序瓶颈,改进应用程序的执行时间。包括以下步骤(1)-(9):步骤(1)从集群调度器获取原始日志信息;集群调度器负责调度用户应用程序,当用户应用程序结束后,集群调度器将日志信息整合,形成原始日志信息,送往故障分析器;步骤(2)故障分析器解析原始日志信息,获取资源占用序列,负载生成时间段序列,任务对象序列;故障分析器解析不同来源的原始日志信息,将资源占用日志解析成按照计算节点分开存储的且按照时间先后顺序排列的资源占用序列,将负载占用日志解析成按照计算节点分开存储的且按照时间先后顺序排列的负载生成时间段序列,将大数据日志信息解析成按照任务序号排列的且包含原始特征的任务对象序列;步骤(3)将资源占用信息、负载生成信息融合到任务对象序列中;遍历任务对象序列,找到任务所在节点和时间跨度信息,从资源占用序列中找到对应的资源占用信息,求平均后存入任务对象中;然后遍历负载生成时间段序列,如果负载生成时间段和任务跨度有重合,就把该负载信息存入任务对象中,表示该任务是在该负载的影响下运行的;步骤(4)获取每个任务的执行时间和该任务所在阶段的所有任务的执行时间;遍历所有任务,找到每个任务所在阶段的所有任务,记录其运行时间到阶段对象中;步骤(5)通过将任务的执行时间和任务所在阶段的所有任务的执行时间的中位数对比得到慢任务信息,找到任务所在阶段对象所有任务执行时间的中位数,如果某任务执行时间大于中位数的1.5倍,就认为该任务是慢任务,并将其加入慢任务索引中;步骤(6)从任务对象中清洗、归一化数据,抽取需要的特征;数据清洗是指去除无用的特征;对从原始任务中提取的离散的特征进行编码(日志中的离散特征一般是未编码的字符串,对离散特征进行编码遵循越影响任务性能,编码的结果数值越大的原则);导致慢任务原因的特征包括离散特征和数值型特征,离散特征包括数据本地性特征,数值型特征包括时间特征和非时间特征,非时间特征包括资源占用特征和普通数值特征;将时间特征除以该任务执行的时间得到归一化的时间特征,将非时间特征除以阶段所有任务该特征的平均值得到归一化的非时间特征;步骤(7)获取应用程序所有任务对象的特征集合,统计每个特征全局分位点信息;包括:为每一个特征建立全局索引,遍历每个任务对象,将任务的特征加入到全局特征索引所对应的数组型数据结构中,然后根据配置文件指定的阈值对所有特征统计分位点;步骤(8)遍历每个慢任务;对所有慢任务及其每一个特征执行下面的判断逻辑,包括以下步骤:(8-1)如果该特征是数值型特征,判断(8-3),否则判断(8-2);(8-2)如果该特征是异常特征并且同阶段其他任务的此特征为非异常特征,所述异常特征是指该特征的数值不为0并且值大于同阶段所有特征的平均值的若干倍,倍数由配置文件指定,则判定该特征为慢任务原因,否则,该特征不是慢任务原因,结束判断;(8-3)如果该特征是时间特征,判断(8-4),否则,判断(8-5);(8-4)判断该特征是否大于预设阈值,这个条件是为了限制这个特征所代表的持续时间必须对任务执行时间产生较大的影响,所述预设阈值根据用户的配置设定。如果是则判断(8-5),否则,该特征不是慢任务原因,结束判断;(8-5)该特征是否大于该特征的全局分位点,如果是判断(8-6),如果不是,则该特征不是慢任务原因,结束判断;这个条件是为了保证这个特征不仅要比同阶段其他特征大,在全局范围内也要足够大;(8-6)该特征是否是资源占用特征,如果是,需要执行边缘检测算法,判断(8-7),否则,判断(8-8)。(8-7)该特征是否在任务开始的时候上升,并且在任务结束的时候下降,这一步主要是为了过滤由任务本身导致的资源占用率过高的情况。如果是,则认为该特征不是慢任务原因,结束判断,否则,继续判断(8-8);(8-8)该特征是否大于阶段其他任务的特征中位数的若干倍,倍数由配置文件指定,如果是,则该特征是慢任务原因,否则,该特征不是慢任务原因,结束判断。步骤(9)向用户展示慢任务原因。将资源占用序列,负载生成序列,慢任务序列,慢任务原因分析通过图形界面展示给用户。进一步地,上述针对大数据平台的慢任务原因检测方法中,步骤(1)中的所述集群调度器除了能够调度用户应用程序外,还能够调度计算节点的资源负载生成器,所述负载生成器包括:CPU占用发生器、磁盘占用发生器以及网络资源占用发生器。进一步地,上述针对大数据平台的慢任务原因检测方法中,所述的数据本地性特征包括:(3-1-1)任务处理的数据存放的位置Flocality=0,PROCESS_LOCAL=1,NODE_LOCAL=2,otherwise其中,PROCESS_LOCAL本文档来自技高网
...
一种针对大数据平台的慢任务原因检测方法

【技术保护点】
一种针对大数据平台的慢任务原因检测方法,其特征在于,首先提取资源占用特征和大数据平台日志特征,然后将慢任务的特征和同阶段不同任务的特征进行对比,得到慢任务原因;包括以下步骤:步骤(1)从集群调度器获取原始日志信息;集群调度器负责调度用户应用程序,当用户应用程序结束后,集群调度器将日志信息整合,形成原始日志信息,送往故障分析器;步骤(2)故障分析器解析原始日志信息,获取资源占用序列,负载生成时间段序列,任务对象序列;故障分析器解析不同来源的原始日志信息,将资源占用日志解析成按照计算节点分开存储的且按照时间先后顺序排列的资源占用序列,将负载占用日志解析成按照计算节点分开存储的且按照时间先后顺序排列的负载生成时间段序列,将大数据日志信息解析成按照任务序号排列的且包含原始特征的任务对象序列;步骤(3)将资源占用信息、负载生成信息融合到任务对象序列中;遍历任务对象序列,找到任务所在节点和时间跨度信息,从资源占用序列中找到对应的资源占用信息,求平均后存入任务对象中;然后遍历负载生成时间段序列,如果负载生成时间段和任务跨度有重合,就把该负载信息存入任务对象中,表示该任务是在该负载的影响下运行的;步骤(4)获取每个任务的执行时间和该任务所在阶段的所有任务的执行时间;遍历所有任务,找到每个任务所在阶段的所有任务,记录其运行时间到阶段对象中;步骤(5)通过将任务的执行时间和任务所在阶段的所有任务的执行时间的中位数对比得到慢任务信息,找到任务所在阶段对象所有任务执行时间的中位数,如果某任务执行时间大于中位数的1.5倍,就认为该任务是慢任务,并将其加入慢任务索引中;步骤(6)从任务对象中清洗、归一化数据,抽取需要的特征;数据清洗是指去除无用的特征;对从原始任务中提取的离散的特征进行编码;导致慢任务原因的特征包括离散特征和数值型特征,离散特征包括数据本地性特征,数值型特征包括时间特征和非时间特征,非时间特征包括资源占用特征和普通数值特征;将时间特征除以该任务执行的时间得到归一化的时间特征,将非时间特征除以阶段所有任务该特征的平均值得到归一化的非时间特征;步骤(7)获取应用程序所有任务对象的特征集合,统计每个特征全局分位点信息;包括:为每一个特征建立全局索引,遍历每个任务对象,将任务的特征加入到全局特征索引所对应的数组型数据结构中,然后根据配置文件指定的阈值对所有特征统计分位点;步骤(8)遍历每个慢任务;对所有慢任务及其每一个特征执行下面的判断逻辑,包括以下步骤:(8‑1)如果该特征是数值型特征,判断(8‑3),否则判断(8‑2);(8‑2)如果该特征是异常特征并且同阶段其他任务的此特征为非异常特征,所述异常特征是指该特征的数值不为0并且值大于同阶段所有特征的平均值的若干倍,倍数由配置文件指定),则判定该特征为慢任务原因,否则,该特征不是慢任务原因,结束判断;(8‑3)如果该特征是时间特征,判断(8‑4),否则,判断(8‑5);(8‑4)判断该特征是否大于预设阈值,所述预设阈值根据用户的配置设定;如果是则判断(8‑5),否则,该特征不是慢任务原因,结束判断;(8‑5)该特征是否大于该特征的全局分位点,如果是判断(8‑6),如果不是,则该特征不是慢任务原因,结束判断;(8‑6)该特征是否是资源占用特征,如果是,需要执行边缘检测算法,判断(8‑7),否则,判断(8‑8);(8‑7)该特征是否在任务开始的时候上升,并且在任务结束的时候下降,如果是,则认为该特征不是慢任务原因,结束判断,否则,继续判断(8‑8);(8‑8)该特征是否大于阶段其他任务的特征中位数的若干倍,倍数由配置文件指定,如果是,则该特征是慢任务原因,否则,该特征不是慢任务原因,结束判断;步骤(9)可视化慢任务及其原因分析。...

【技术特征摘要】
1.一种针对大数据平台的慢任务原因检测方法,其特征在于,首先提取资源占用特征和大数据平台日志特征,然后将慢任务的特征和同阶段不同任务的特征进行对比,得到慢任务原因;包括以下步骤:步骤(1)从集群调度器获取原始日志信息;集群调度器负责调度用户应用程序,当用户应用程序结束后,集群调度器将日志信息整合,形成原始日志信息,送往故障分析器;步骤(2)故障分析器解析原始日志信息,获取资源占用序列,负载生成时间段序列,任务对象序列;故障分析器解析不同来源的原始日志信息,将资源占用日志解析成按照计算节点分开存储的且按照时间先后顺序排列的资源占用序列,将负载占用日志解析成按照计算节点分开存储的且按照时间先后顺序排列的负载生成时间段序列,将大数据日志信息解析成按照任务序号排列的且包含原始特征的任务对象序列;步骤(3)将资源占用信息、负载生成信息融合到任务对象序列中;遍历任务对象序列,找到任务所在节点和时间跨度信息,从资源占用序列中找到对应的资源占用信息,求平均后存入任务对象中;然后遍历负载生成时间段序列,如果负载生成时间段和任务跨度有重合,就把该负载信息存入任务对象中,表示该任务是在该负载的影响下运行的;步骤(4)获取每个任务的执行时间和该任务所在阶段的所有任务的执行时间;遍历所有任务,找到每个任务所在阶段的所有任务,记录其运行时间到阶段对象中;步骤(5)通过将任务的执行时间和任务所在阶段的所有任务的执行时间的中位数对比得到慢任务信息,找到任务所在阶段对象所有任务执行时间的中位数,如果某任务执行时间大于中位数的1.5倍,就认为该任务是慢任务,并将其加入慢任务索引中;步骤(6)从任务对象中清洗、归一化数据,抽取需要的特征;数据清洗是指去除无用的特征;对从原始任务中提取的离散的特征进行编码;导致慢任务原因的特征包括离散特征和数值型特征,离散特征包括数据本地性特征,数值型特征包括时间特征和非时间特征,非时间特征包括资源占用特征和普通数值特征;将时间特征除以该任务执行的时间得到归一化的时间特征,将非时间特征除以阶段所有任务该特征的平均值得到归一化的非时间特征;步骤(7)获取应用程序所有任务对象的特征集合,统计每个特征全局分位点信息;包括:为每一个特征建立全局索引,遍历每个任务对象,将任务的特征加入到全局特征索引所对应的数组型数据结构中,然后根据配置文件指定的阈值对所有特征统计分位点;步骤(8)遍历每个慢任务;对所有慢任务及其每一个特征执行下面的判断逻辑,包括以下步骤:(8-1)如果该特征是数值型特征,判断(8-3),否则判断(8-2);(8-2)如果该特征是异常特征并且同阶段其他任务的此特征为非异常特征,所述异常特征是指该特征的数值不为0并且值大于同阶段所有特征的平均值的若干倍,倍数由配置文件指定),则判定该特征为慢任务原因,否则,该特征不是慢任务原因,结束判断;(8-3)如果该特征是时间特征,判断(8-4),否则,判断(8-5);(8-4)判断该特征是否大于预设阈值,所述预设阈值根据用户的配置设定;如果是则判断(8-5),否则,该特征不是慢任务原因,结束判断;(8-5)该特征是否大于该特征的全局分位点,如果是判断(8-6),如果不是,则该特征不是慢任务原因,结束判断;(8-6)该特征是否是资源占用特征,如果是,需要执行边缘检测算法,判断(8-7),否则,判断(8-8);(8-7)该特征是否在任务开始的时候上升,并且在任务结束的时候下降,如果是,则认为该特征不是慢任务原因,结束判断,否则,继续判断(8-8);(8-8)该特征是否大于阶段其他任务的特征中位数的若干倍,倍数由配置文件指定,如果是,则该特征是慢任务原因,否则,该特征不是慢任务原因,结束判断;步骤(9)可视化慢任务及其原因分析。2.根据权利要求1所述的针对大数据平台的慢任务原因检测方法,其特征在于,步骤(1)中的所述集群调度器除了能够调度用户应用程序外,还能够调度计算节点的资源负载生成器,所述集群调度器包括:CPU占用发生器、磁盘占用发生器以及网络资源占用发生器。3.根据权利要求1所述的针对大数据平台的慢任务原因检测方法,其特征在于,所述的数据本地性特征包括:(3-1-1)任务处理的数据存放的位置Flocality=0,PROCESS_LOCAL=1,NODE_LOCAL=2,otherwise其中,PROCESS_LOCAL代表任务需要的数据在本进程的地址空间,NODE_LOCAL是代表任务需要的数据在本节点上,otherwise代表任务所需要的数据在别的位置;所述的时间特征包括:(3-2-1)该任务在执行序列化时所用的时间Fserial...

【专利技术属性】
技术研发人员:杨海龙周红刚李云春李巍
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1