识别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反压的值

相关推荐
+电报dapp1295 分钟前
波场链DAPP智能合约系统开发:解锁Web3.0时代的价值新范式
大数据·人工智能·web3·去中心化·区块链·智能合约·信任链
股票程序化交易接口5 分钟前
详细介绍程序化交易接口种类及特点,助你全面了解交易接口选择
大数据·股票api接口·股票量化接口·程序化交易接口·交易指令接口·行情数据接口·账户管理接口
陈喜标bill24 分钟前
S2B2C私域会员电商如何重构企业经营逻辑
大数据·人工智能·重构
AEMC马广川43 分钟前
能源托管项目中“企业认证+人才证书”双轨评分策略分析
大数据·运维·人工智能·能源
一个很帅的帅哥1 小时前
git命令大全
大数据·git·elasticsearch
geneculture2 小时前
融智学体系图谱(精确对应版)
大数据·人工智能·学习·融智学的重要应用·信智序位
有味道的男人2 小时前
国内电商 API 深度赋能:从选品、库存到履约,重构电商运营效率新范式
大数据·重构
程砚成2 小时前
美容行业的未来:当科技照进美与健康
大数据·人工智能
TG:@yunlaoda360 云老大2 小时前
腾讯云国际站代理商TEFP有什么优势呢?
大数据·云计算·腾讯云
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2025-12-17
大数据·人工智能·经验分享·搜索引擎·产品运营