全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
流计算

作业仪表盘

更新时间:2017-06-07 13:26:11

阿里云流计算提供了当前作业的核心指标概览页面,用户可以通过这个工具进行当前运行作业运行情况的一键诊断,未来流计算还会提供更多的基于作业现状深度智能分析算法,以辅助用户进行智能化、自动化诊断。目前的作业诊断如下图:

作业诊断

注意: 上述所有指标在流计算作业运行状态下才提供显示,暂停以及停止状态均不提供显示。另外,作业指标是流计算系统异步后台采集,有一定延迟。因此,在作业启动一分钟内,指标无法显示,等待一分钟后各项指标才能逐步采集到位

异常检测

提供该流计算作业运行的最近的异常信息,用户可以通过这个异常信息推断业务在底层分布式集群运行下出现的问题。例如,在流计算写入RDS过程中,出现了网络异常,此时流计算作业会抛出异常并登记在作业诊断中以方便用户事后查阅。该检测项在没有异常情况下,会显示作业运行正常

在出现异常情况下,用户可以点击查看详情进一步查看当前的异常栈信息。请参看《错误排查》一章节。

数据倾斜

所谓数据倾斜,通俗而言指的是由于数据分布不均匀,个别值集中占据大部分数据量,导致计算资源不均匀引起性能下降。作业诊断中自带数据倾斜检测模块。对于可能存在数据倾斜的作业提供信息提示。注意,数据倾斜的判别依赖于业务上的取舍,有些数据倾斜在系统级别认为有倾斜,但是业务上可能认为合理。

在数据倾斜情况下,流计算将展示整个作业运行链路每个阶段的不同线程处理最大值和最小值。关于如何对于数据倾斜进行调优,请参看《性能调优》一章节。

业务延时

链路延时指当前流计算处理时刻 减去 流式数据业务时间戳(如果业务时间不存在,使用上游的DataHub/LogHub等均会对进入的数据加入系统时间戳),该数据集中反映出当前流计算全链路的一个时效情况。例如,当前流计算时间点为凌晨5点,但流计算读取处理的数据存储时间戳为凌晨1点,意味着当前流计算处理的数据还是1点的数据,即处理的数据相比于当前处理时间落后近4个小时,那么业务延时就是4小时。业务延时用来监控全链路的数据进度,如果源头采集数据由于故障没有进入DataHub,链路延时也会随之主键增大。业务延时的图示如下:

业务延时

业务延时页面会提供当前该流计算作业的业务延时,包括当前的业务延时以及历史的延时曲线,单位是秒。

计算耗时

计算耗时指一批数据从进入流计算到最终输出的过程时间,该数据集中反映出当前流计算处理本身的时延,是流计算本身处理能力数据指标。一般而言,阿里云流计算保证计算耗时在秒级别以内。如果大于秒级,很有可能是内部处理逻辑过于复杂,此时应需要人工介入调优。计算耗时的图示如下:

计算耗时

计算耗时页面会提供当前该流计算作业的计算计算耗时,包括当前的计算耗时以及历史的延时曲线,单位是秒。

数据输入

数据输入对于该流计算作业所有的流式数据输入进行统计,给用户一个直观的检测数据存储RPS(Record Per Secodng)情况。通常,我们在系统运维过程中,如果出现没有数据输出的情况,就需要查看该值是否从源头数据输入就已经没有数据了。

数据输入一栏提供了该流计算作业数据输入是否处于正确状态的判断,如果出现任意一个流式数据存储没有输入,即判断为不正常,反之为正常。注意,输入还针对不同流式数据存储提供历史曲线。

数据输出

数据输出对于该流计算作业所有的数据输(注意,并非是流式数据存储,而是全部数据存储)出进行统计,给用户一个直观的检测数据存储RPS(Record Per Secodng)情况。通常,我们在系统运维过程中,如果出现没有数据输出的情况,除了检查上游是否存在数据输入,同样要检查下游是否真的存在数据输出。

数据输出一栏提供了该流计算作业数据输出是否处于正确状态的判断,如果出现任意一个数据存储没有输出,即判断为不正常,反之为正常。注意,输出还针对不同数据存储提供历史曲线。

CPU占用

CPU占用反映的是流计算作业对于CPU资源消耗情况,流计算提供了两个指标反映CPU占用情况。

  1. 当前CPU平均使用率: 每个流计算进程的CPU平均使用率,需要注意的是平均使用率一定在[0%, 100%]波动(有时统计误差可能瞬时大于100%)。如果当前CPU平均使用率持续在80%以上,可能需要考虑作业需要扩容。即调大CU。
  2. CPU使用核数: 当前流计算作业的使用总CPU Core数,需要注意的是CPU使用核数一定在[0, 申请CU数量]之间波动,可能是0.3核类似的小数。CPU使用核数是一个曲线,展示历史的CPU使用核数。对于用户申请核数(CU数量),流计算提供了一条绿色基准线,如果使用核数持续接近申请核数,需要考虑扩容,即调大CU。

内存占用

内存使用率反映的是流计算作业对于内存资源消耗情况,流计算提供两个指标反映内存占用情况。

  1. 当前内存平均使用量: 每个流计算进程的内存平均使用量,需要注意的是平均使用率一定在[0MB, 4GB]之间波动,注意单个CU消耗的内存值在4GB以内。如果内存平均使用率大于3G,建议用户扩大该作业的流计算CU。
  2. 内存使用量: 当前流计算作业的使用总内存量,非平均值!内存使用量是一个曲线,展示历史的内存使用量。对于用户申请内存量(单位内存量 * CU数量),流计算提供了一条绿色基准线,如果使用量持续接近申请量,需要考虑扩容,即调大CU。

源表RT

源表RT反映的是流计算读取源头数据一次的平均RT时间,通常在毫秒级别。如果持续大于毫秒级,应该向相关的流式数据存储方咨询性能问题。例如,对于日志服务,读取一次的平均RT应该在毫秒级别,如果大于毫秒,请联系日志服务相关技术支持寻求建议。

维表RT

维表RT反映的是流计算读取维表数据一次的平均RT时间,通常在毫秒级别。如果持续大于毫秒级,应该向相关的数据存储方咨询性能问题。例如,对于表格存储,读取一次的平均RT应该在毫秒级别,如果大于毫秒,请联系表格存储相关技术支持寻求建议。

如果作业没有维表,该曲线持续为0。

维表命中率

维表命中率反映的是流计算在读取维表过程中,命中流计算内存Cache次数/总数据请求次数,该值越低表明数据约离散。流计算为了加快用户的查询,提供了将外部维表数据进行内存缓存,因此数据尽可能在流计算内存命中性能最优。大量的不命中导致数据需要向外部物理请求数据,可能导致性能急剧降低。

如果作业没有维表,该曲线持续为0。

维表关联率

维表命中率反映的是流计算在读取维表过程中,数据关联成功/总数据请求次数。如果在作业存在维表关联情况下,该值为0代表数据全部没有命中,进而导致用户在数据结果表就看不到数据产出的情况。

源表脏数据

源表脏数据反映的是在读取源表时候,实际数据格式和用户DDL定义数据格式不匹配,导致数据被当做脏数据处理,进而导致用户在数据结果表就看不到数据产出的情况。

本文导读目录