flink反压的监控
反压在流式系统中是一种非常重要的机制,主要作用是当系统中下游算子的处理速度下降,导致数据处理速率低于数据接入的速率时,通过反向背压的方式让数据接入的速率下降,从而避免大量数据积压在flink系统中,最后系统无法正常运行。flink具有天然的反压机制,不需要通过额外的配置就能够完成反压处理。
当在flinkUI中切换到Backpressure页签时,flink才会对整个job触发反压数据的采集,反压过程对系统有一定的影响,主要因为jvm进程采样成本较高。flink通过在TaskManager中采样LocalBufferPool内存块上的每个Task的stackTrace实现。默认情况下,TaskManager会触发一百次采样,然后将采样的结果汇报给JobManager,最终通过JobManager进行汇总计算,得出反压比例并在页面中展示,反压比例等于反压出现次数/采样次数。
通过在页面中点击Back Pressure页签触发反压检测,整个采样过程大约会持续5s,每次采样的间隔为50ms,持续100次。同时,为了避免让TaskManager过多地采样StackTrace,即使页面被刷新,也要等待60s后才能触发下一次Sampling过程。
通过触发jvm进程采样的方式获取到反压监控数据,同时flink会将反压状态分为三个级别,分别为OK、LOW、HIGH级别,其中OK对应的反压比例为大于0小于10%,LOW对应的反压比例为10%-50%,HIGH对应的反压比例大于50%小于100%。
如果对task进行抽样显示,所有的subtasks状态均显示OK,表示未发生大规模的数据堵塞,系统整体运行正常,不需要做任何调整。
如果所有的subtasks状态均显示HIGH,表示系统触发了比较多的反压,需要适当的增加subtask并发度或者降低数据生产速度,否则经过长时间的运行后,系统中处理的数据将出现比较严重的超时现象。
针对反压的优化,用户可以调整以下参数:
- web.backpressure.cleanup-interval:当启动反压数据采集后,需要等待页面并获取反压数据的时间长度,默认60s
- web.backpressure.delay-between-samples:Stack Trace抽样到确认反压状态之间的时延,默认为50ms
- web.backpressure.num-sample:设定Stack Trace抽样数以确定反压状态,默认为100
flink反压的监控的更多相关文章
- 如何分析及处理 Flink 反压?
反压(backpressure)是实时计算应用开发中,特别是流式计算中,十分常见的问题.反压意味着数据管道中某个节点成为瓶颈,处理速率跟不上上游发送数据的速率,而需要对上游进行限速.由于实时计算应用通 ...
- Flink 反压 浅入浅出
前言 微信搜[Java3y]关注这个朴实无华的男人,点赞关注是对我最大的支持! 文本已收录至我的GitHub:https://github.com/ZhongFuCheng3y/3y,有300多篇原创 ...
- flink - 反压
http://wuchong.me/blog/2016/04/26/flink-internals-how-to-handle-backpressure/ https://ci.apache.org/ ...
- 一文搞懂 Flink 网络流控与反压机制
https://www.jianshu.com/p/2779e73abcb8 看完本文,你能get到以下知识 Flink 流处理为什么需要网络流控? Flink V1.5 版之前网络流控介绍 Flin ...
- [转帖]实时流处理系统反压机制(BackPressure)综述
实时流处理系统反压机制(BackPressure)综述 https://blog.csdn.net/qq_21125183/article/details/80708142 2018-06-15 19 ...
- 1、flink介绍,反压原理
一.flink介绍 Apache Flink是一个分布式大数据处理引擎,可对有界数据流和无界数据流进行有状态计算. 可部署在各种集群环境,对各种大小的数据规模进行快速计算. 1.1.有界数据流和无界 ...
- Flink中接收端反压以及Credit机制 (源码分析)
先上一张图整体了解Flink中的反压 可以看到每个task都会有自己对应的IG(inputgate)对接上游发送过来的数据和RS(resultPatation)对接往下游发送数据, 整个反压机制通 ...
- Flink中发送端反压以及Credit机制(源码分析)
上一篇<Flink接收端反压机制>说到因为Flink每个Task的接收端和发送端是共享一个bufferPool的,形成了天然的反压机制,当Task接收数据的时候,接收端会根据积压的数据量以 ...
- 咱们从头到尾讲一次 Flink 网络流控和反压剖析
本文根据 Apache Flink 系列直播整理而成,由 Apache Flink Contributor.OPPO 大数据平台研发负责人张俊老师分享.主要内容如下: 网络流控的概念与背景 TCP的流 ...
随机推荐
- Effective Java 笔记
1. 静态工厂 静态工厂的第 5 个优点是,在编写包含该方法的类时,返回的对象的类不需要存在.他的意思是面向接口编程??就是说我们只需知道接口,具体实现类是否存在没有关系?? 只提供静态工厂方法的主要 ...
- IDEA 2021版新建Maven、TomCat工程
目录 2021版IDEA中Maven.TomCat配置 1.基于Webapp创建一个Maven项目 1.1 新建项目模板 1.2 指定名称 1.3 指定信息 1.4 指定Maven地址 1.5 构建成 ...
- Thinkphp5 -项目前序安装Composer命令工具具体步骤
一.Composer 进入官网, 选择download 往下拉,选择最新版本composer.phar下载: 二.创建composer.bat,内容为: @ECHO OFF php "%~d ...
- CSS3中Animation为同一个元素添加多个动画效果
CSS3 Animation 并未提供 给一个元素同时添加多个动画效果的方法,就是说一个元素,只能给它定义一个动画效果,不能同时定义. 需求说明比如说,我想实现一个这样的动画效果: 一颗星星从上往下滑 ...
- hdu2962 二分 + spfa
题意: 给你一个无向图,每条路径上都有自己的长度和最大承受高度,给你起点终点还有车的最大承装高度,问你高度最大的前提下路径最短是多少,求高度和路径. 思路: 这种类型题目太多了, ...
- DVWA之File Inclusion
File Inclusion File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),req ...
- Android持续优化 - 提高流畅度
http://www.cnblogs.com/purediy/archive/2013/12/26/3492865.html
- Listview滑动时不加载数据,停下来时加载数据,让App更优
http://blog.csdn.net/yy1300326388/article/details/45153813
- WPF之自定义委托命令
常用命令 WPF的命令实际上就是实现了ICommand接口的类,平时使用最多的是RoutedCommand类,还可以使用自定义命令. RoutedCommand只负责跑腿,并不对命名目标做任何操作,实 ...
- zTree增加树形菜单格式
result为json字符串 //展示树形菜单 function showMenuTree(result) { console.log("页面展示函数:"+result); //属 ...