开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink如何通过Flink Web UI 自带的反压监控面板来定位反压节点?

Flink如何通过Flink Web UI 自带的反压监控面板来定位反压节点?

展开
收起
Lee_tianbai 2020-12-30 11:49:15 1568 0
1 条回答
写回答
取消 提交回答
  • Flink Web UI 的反压监控提供了 SubTask 级别的反压监控,原理是通过周期 性对 Task 线程的栈信息采样,得到线程被阻塞在请求 Buffer(意味着被下游队列阻 塞)的频率来判断该节点是否处于反压状态。默认配置下,这个频率在 0.1 以下则为 OK,0.1 至 0.5 为 LOW,而超过 0.5 则为 HIGH。 image.png 如果处于反压状态,那么有两种可能性: 1. 该节点的发送速率跟不上它的产生数据速率。这一般会发生在一条输入多条 输出的 Operator(比如 flatmap)。 2. 下游的节点接受速率较慢,通过反压机制限制了该节点的发送速率。 如果是第一种状况,那么该节点则为反压的根源节点,它是从 Source Task 到 Sink Task 的第一个出现反压的节点。如果是第二种情况,则需要继续排查下游节点。 值得注意的是,反压的根源节点并不一定会在反压面板体现出高反压,因为反压 面板监控的是发送端,如果某个节点是性能瓶颈并不会导致它本身出现高反压,而是 导致它的上游出现高反压。总体来看,如果我们找到第一个出现反压的节点,那么反 压根源要么是就这个节点,要么是它紧接着的下游节点。 那么如果区分这两种状态呢?很遗憾只通过反压面板是无法直接判断的,我们还 需要结合 Metrics 或者其他监控手段来定位。此外如果作业的节点数很多或者并行度 很大,由于要采集所有 Task 的栈信息,反压面板的压力也会很大甚至不可用。

    2020-12-30 11:50:12
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Web应用系统性能优化 立即下载
    高性能Web架构之缓存体系 立即下载
    PWA:移动Web的现在与未来 立即下载