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的流 ...
随机推荐
- buuctf pwn wp---part1
pwn难啊 1.test_your_nc 测试你nc,不用说,连上就有. 2.rip ida中已经包含了system函数: 溢出,覆盖rip为fun函数,peda计算偏移为23: from pwn i ...
- CppCon 2019 | Back to Basics: RAII and The Rule of Zero
本文整理了Arthur O'Dwyer在CppCon 2019上关于RAII的演讲,演讲的slides可以在此链接进行下载. 在C++程序中,我们往往需要管理各种各样的资源.资源通常包括以下几种: A ...
- python工业互联网应用实战13—基于selenium的功能测试
本章节我们再来说说测试,单元测试和功能测试.单元测试我们在数据验证章节简单提过了,本章我们进一步如何用单元测试来测试view的功能代码:同时,也涉及一下基于selenium的功能测试做法.笔者过去的项 ...
- k8s endpoints k8s未配置选择器的service
service 其实是一个TCP/UDP 代理 不仅可以代理Pod也可以代理其他的非Pod资源,例如外网的数据库,或者其他的资源 创建未配置选择器的service, service 的对外端口是500 ...
- kubernetes的Deployment, DaemonSet, Job 和 CronJob事例
k8s kubernetes给node节点添加标签和删除node节点标签 Deployment配置文件exampledeploymentv1.yaml apiVersion: apps/v1 kind ...
- Kafka2.8安装
1.概述 最近Kafka官网发布了2.8版本,在该版本中引入了KRaft模式.鉴于新版本和新特性的引入,相关使用资料较少,那边本篇博客笔者将为大家介绍Kafka2.8的安装和使用. 2.内容 2.1 ...
- 学就完事了!万星项目带你做 3D 游戏——GitHub 热点速览 v.21.18
本文首发于「HelloGitHub」微信公众号,搜索「HelloGitHub」点击关注解锁更多宝藏! 作者:HelloGitHub-小鱼干 新手开始学习的时候,都会遇到一个问题:如何开始学 xx?Se ...
- CPF 入门教程 - 属性和事件(七)
CPF C#跨平台桌面UI框架 系列教程 CPF 入门教程(一) CPF 入门教程 - 数据绑定和命令绑定(二) CPF 入门教程 - 样式和动画(三) CPF 入门教程 - 绘图(四) CPF 入门 ...
- MVC之实现基于token的认证
安装Nuget包 项目中添加包:dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer 添加认证配置 Startup类中添加如 ...
- pyqt5 菜单栏+信息提示框
前言 使用pyqt5 添加菜单栏 单击菜单栏 弹出信息框(MessageBox用法) 菜单栏 功能 Action是Qt中单独引入的一个对象,对应QAction类.Action表示一个独立的操作,是将界 ...