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

作业健康指标

更新时间:2017-12-27 11:21:32

作业健康指标

当我们的Stream SQL作业经过性能调优、正确性验证等过程,成功上线之后,我们还需要持续关注作业的运行状态,比如作业的性能/延迟是否能满足需求、是否有failover情况等,下面我们将详细介绍需要重点关注哪些指标、这些指标所代表的意义等。

作业总览

3333

在上图中,我们需要重点关注的是以下几个指标:

  1. 各拓扑节点的输入、输出队列是否有长时间的堵塞,即队列长度为100%的情况,因为当某个节点堵塞之后,会堵塞该节点的所有上游节点,从而影响整个作业的性能;
  2. 作业是否有failover,如果有failover,可以看到failover节点的异常信息。
  3. 可以查看相应的瞬时值来判断作业是否运行正常。

    Overview

    Overview中包含了TPS、Failover、最小延迟、平均延迟等曲线,如下所示:

4444

TPS

TPS反映作业的实时处理速度,用户需要关注该指标是否符合预期。TPS图中有两条曲线:parserTps和tps。parserTps表示的是每秒所处理数据的条数,而tps表示的是每秒所处理的block的个数。我们知道,某些数据源,比如sls, tt, metaQ会将多条数据打包在一起,以block为单位发送给消费端处理以提升性能。对于其它类型的数据源,parserTps与tps相同,只需关注parserTps即可。

Failover

Failover反映作业在运行过程中,是否曾经因为某种原因,发生过failover,正常情况下该指标应该为0,如果不为0,一定要重视。需要注意的,该曲线默认显示的是过去一小时是否有failover发生,而我们通常需要知道的是更长的一段时间内是否有failover发生,有不同粒度的时间供其选择(6小时、一天、一周)。

最小延迟

延迟反映的是从数据进入到数据源到数据被Blink source节点读取之间的时间间隔。通常,我们会配置多个source节点并发地从数据源拉数据,各个source节点会独立的记录该节点所看到的延迟。最小延迟反映的是所有source节点看到的延迟中的最小值。

平均延迟

同理,平均延迟反映的是所有source节点看到的延迟中的平均值。当数据量比较小的时候,大部分source节点会因为长时间读取不到新的数据,导致这些节点所统计的延迟变长,此时平均延迟也会变长,这是正常现象,是Blink统计延迟的方法的问题,在这种情况下,用户只需要关注最小延迟即可。

Advanced view

通过Advanced view,我们可以看到一个作业更深入的运行信息,主要包括checkpoint、GC、state等信息,如图所示:5555

Checkpoint Count

默认情况下,流计算每3分钟做一次增量checkpoint,通过该曲线,我们可以看到一个作业做了多少次checkpoint,该曲线通常情况下是一条线性上升的直线,如果发现某段时间变成了一条水平线,就表示这段时间checkpoint有异常,可以提工单询问值班同学

Checkpoint Duration

该指标反映了每次checkpoint的用时,通常为s级,如果发现checkpoint用时较大,甚至达到了分钟级,可以提工单询问值班同学。

Get、Put、Seek

流计算底层当前使用rocksdb存储作业的状态信息,这几个指标反映的是各种类型的rocksdb操作的延时,通常为us级,有一些ms级的毛刺一般也是正常的。如果长时间达到了ms级,需要引起重视,可以提工单询问值班同学。

State Size

流计算中,一次checkpoint是由各个task节点共同完成的,每个task节点负责该节点的state的checkpoint。该指标反映的是各个task节点的checkpoint的大小。通过该指标,我们可以看出checkpoint对于IO吞吐所造成的影响。用户需要关注的是state size是否一直在增长,如果增长过快,则存在较大的风险,可以提工单询问值班同学。

CMS GC Time、CMS GC Rate

这两个指标反映的是JVM old区GC的情况。其中,CMS GC Time反映的是各个container的old区CMS GC的用时,通常为ms级,若用时较长(超过s级),应该引起重视。CMS GC Rate反映的是各个container的old区GC的频率,通常情况下,old区的GC应该很少触发,如果发现经常触发CMS GC,在该曲线会看到频繁的毛刺,应该引起重视,通常是因为节点的内存配小了导致的,可以提工单询问值班同学。

本文导读目录