识别flink的反压源头

背景

flink中最常见的问题就是反压,这种情况下我们要正确的识别导致反压的真正的源头,本文就简单看下如何正确识别反压的源头

反压的源头

首先我们必须意识到现实中轻微的反压是没有必要去优化的,因为这种情况下是由于偶尔的流量峰值,TaskManager的GC,定时任务,或者网络波动正好触发引起的,我们要优化的是那种出现持续的反压的情况

其次反压是通过JobManager通过对TaskManager进行定时采样判断TaskManager的cpu状态来确定的,如下:
JobManager对多个采样周期的数据进行平均后得到如下参数:

idleTimeMsPerSecond 每秒空闲时间

busyTimeMsPerSecond 每秒繁忙时间

backPressuredTimeMsPerSecond 每秒反压时间

这里需要注意,既然是多个周期内的平均,需要意识到我们有可能处于这种情况,比如上一个采样cpu处于反压状态,下一个采样处于空闲状态,这种情况其实也值得注意

然后反压的定义如下:

OK: 0% <= back pressured <= 10%

LOW: 10% < back pressured <= 50%

HIGH: 50% < back pressured <= 100%

重新回到正题,比如如下的图:

我们看到Source算子和Flat map算子都处于严重的反压状态,那么导致反压的算子是哪一个呢?是Source算子和Flat Map算子本身吗?答案肯定不是,上游的算子反压都是由于下游算子的消费速度跟不上造成的,所以我们需要查看反压算子的下游算子,下游算子中cpu使用100%的那个下游算子几乎就是导致反压的真正源头,比如这里的keyed aggregate→map算子,cpu使用达到了100%,这才是我们需要优化的算子

PS: flink UI中展示的每个算子的cpu空闲/忙碌/反压值是算子所有算子任务中的最大子任务的cpu空闲/最大子任务的cpu忙碌/最大子任务的cpu反压的值

相关推荐
Agentic AI人工智能与大数据6 小时前
数据产品运营指南:如何提升用户活跃度?这4个策略让数据产品不再“沉睡”
大数据·ai·产品运营
飞Link7 小时前
开发者必读:2026 欧盟“AI Omnibus”法案达成,技术合规性红线在哪里?
大数据
老纪的技术唠嗑局8 小时前
深度解析 LLM Wiki / Obsidian-Wiki / GBrain:Agent 时代知识的“自组织”与“自进化”
大数据·数据库·人工智能·算法
好赞科技9 小时前
2026年高口碑餐厅预约小程序排行榜:智能就餐新体验一键解锁
大数据·微信小程序
数据智能老司机10 小时前
深入解锁 dbt——Documentation:项目文档与数据文档
大数据
计算机毕业编程指导师10 小时前
【计算机毕设推荐】Python+Hadoop+Spark共享单车数据可视化分析系统 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·数据挖掘·spark·课程设计
计算机毕业编程指导师10 小时前
【计算机毕设】基于Hadoop的共享单车订单数据分析系统+Python+Django全栈开发 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·数据挖掘·spark·django
2601_9561394210 小时前
文体娱媒品牌全案公司哪家强
大数据·人工智能·python
塔望品牌咨询11 小时前
组织效率诊断框架:返工、解释、等待、救火,分别说明了什么
大数据·产品运营
塔能物联运维11 小时前
两相液冷:从“散热”到“控温”,重构高密度算力的热管理系统
大数据·人工智能