Flink反压如何查看和优化

我们在使用Flink程序进行流式数据处理时,由于种种原因难免会遇到性能问题,如我们在使用Flink程序消费kafka数据,可能会遇到kafka数据有堆积的情况,并且随着时间的推移,数据堆积越来越多,这就表名消费处理数据的速度没有跟上生产的速度。面对这种情况,我们如何知道到底哪个环节造成性能瓶颈问题,这就需要我们对flink作业链路进行分析排查,找出存在瓶颈的算子。好在flink为我们提供了任务监控的Web UI,我们可以可以通过监控的算子反压情况找出性能瓶颈的算子。
Flink 1.5 之前是基于 TCP 流控 + bounded buffer 实现反压。
Flink 1.5 之后实现了自己托管的 credit -- based 流控机制,在应用层模拟 TCP 的流控机制。

反压如果不能得到正确的处理,可能会影响到 checkpoint 时长和 state 大小,甚至可能会导致资源耗尽甚至系统崩溃。

Flink的反压机制

Flink的反压(BackPressure)机制是通过周期性对taskManager线程的栈信息采样,计算被阻塞在请求输出Buffer的线程比率来确定,默认情况下,比率在0.1以下为OK,0.1到0.5为LOW,超过0.5则为HIGH。算子链如果存在反压,则意味着某个算子存在瓶颈,即其处理速率跟不上上游发送数据的速率,从而需要对上游进行限速,影响任务整体处理性能。所以,我们需要找出存在性能瓶颈的算子节点,优化对应的算子,才能解决整体的性能问题。算子是否存在反压,可以通过Flink任务提供的Web UI的反压状态表现出来,根据算子链的反压状态,找出存在性能瓶颈的算子,从而有针对性的进行优化。比如,我们的流作业在存在性能问题的情况下,会导致数据源消费速率跟不上生产速率,从而引起Kafka消费组的积压。在这种情况下,可以通过算子的反压和时延,确定算子的性能瓶颈点。

反压场景进行分析及应对处理

下面对flink任务常见的反压场景进行分析及应对处理:

  • kafka数据有堆积,但所有算子反压都正常(蓝色)

该场景说明性能瓶颈点在Source,主要是受数据读取速度影响,此时可以通过增加Kafka分区数并增加source并发解决。

  • 作业首个或非倒数第二个算子反压很高(红色)

该场景说明性能瓶颈点在Vertex2算子,可以通过查看该算子描述,确认该算子具体功能,以进行下一步优化。

  • 作业最后一个算子反压正常(蓝色),但前面的算子都高反压(红色)

该场景说明性能瓶颈点在sink算子(Vertex3),可以通过调整sink.parallelism来优化.但还需要根据对应的具体数据源具体优化,比如对于JDBC数据源,可以通过调整写出批次及刷写时间(sink.buffer-flush.max-rows 、sink.buffer-flush.interval)等。

  • 反压算子下游有多个算子

如下,作业一个算子反压高(红色),而后后续多个并行算子反压正常(蓝色)

该场景说明性能瓶颈在Vertex2或者Vertex3,为了进一步确定具体瓶颈点算子,可以在FlinkUI页面开启inPoolUsage监控。如果某个算子并发对应的inPoolUsage长时间为100%,则该算子大概率为性能瓶颈点,需分析该算子以进行下一步优化。

inPoolUsage 监控

总结

依次算子链从前往后找到最后一个反压算子节点,则瓶颈一般为该节点的下游节点,如果其下游有多个节点,则通过查看其所有下游节点的Metrics监控的buffers.inPoolUsage,如果某节点的buffers.inPoolUsage长期为1,则该节点即为瓶颈节点。

相关推荐
武子康1 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康2 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库3 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟3 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长3 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
十月南城3 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark
中烟创新3 天前
灯塔AI智能体获评“2025-2026中国数智科技年度十大创新力产品”
大数据·人工智能·科技