背压(backpressure)监控

本文翻译自Back Pressure Monitoring

---------------------------------------------------

Flink的web接口提供了监控运行job的背压行为的功能

一、背压(back pressure)

如果你看到了一个任务的back pressure警告(如过高),则意味着该任务产生数据的速度要高于下游Operator消化的速度。数据沿着job的数据流图向下游流动(如从source到sink),而背压则是沿着相反的方向传播,逆流而上。

以一个简单的Source -> Sink的job为例,如果看到了一个关于Source的警告,则意味着Sink消化数据的速度慢于Source产生数据的速度,而Sink向上游的Source产生背压。

二、取样线程(Sampling Threads)

背压的监控工作原理是从运行的任务重复地对堆栈轨迹(stack trace)取样。JobManager对运行Job的各任务重复触发Thread.getStackTrace()的调用。

图1 取样线程

如果取样显示一个任务线程卡在某个内部方法调用中(从网络栈中请求缓存空间),则意味着该任务面临着背压的影响。

默认地,对于每一个任务,JobManager会每隔50ms触发100次堆栈轨迹。我们在web接口中看到的比例说明了这些堆栈轨迹中有多少卡在了内部方法调用中,如0.01就表示100个堆栈轨迹中有一个卡在了方法调用中。背压的状态如下区分:

1.    OK0 <= Ratio <= 0.10

2.    LOW:0.10 < Ratio <= 0.5

3.    HIGH:0.50 < Ratio <= 1.0

为了使堆栈轨迹取样不对Task Manager产生太大负荷,web接口仅每60s才刷新一次样本。

三、配置

我们可以用如下配置关键字来设置Job Manager的样本数量:

1.    jobmanager.web.backpressure.refresh-interval:已有样本过期并需要刷新时间间隔(默认:60000,1min)

2.    jobmanager.web.backpressure.num-samples:确定背压所需取样的堆栈轨迹数量(默认:100)

3.    jobmanager.web.backpressure.delay-between-samples:确定背压取样的时间区间(默认:50,50ms)

四、示例

web接口中,我们可以在"Job overview"旁边看到"Back pressure"选项卡

4.1 Sampling in progress

该状态意味着JobManager出发了一个运行中的任务的堆栈轨迹取样,默认配置下,该操作需要约5秒。

在此界面,我们点击某行,则会触发对该Operator的所有子任务的取样操作。

图2 Sampling in progress

4.2 背压状态

如果我们看到某任务的状态是OK,则表示没有背压的迹象。反之,HIGH则表示该任务正受到背压的影响。

图3-1 背压状态OK

图3-2 背压状态HIGH

Flink资料(7) -- 背压监控的更多相关文章

  1. flink反压的监控

    反压在流式系统中是一种非常重要的机制,主要作用是当系统中下游算子的处理速度下降,导致数据处理速率低于数据接入的速率时,通过反向背压的方式让数据接入的速率下降,从而避免大量数据积压在flink系统中,最 ...

  2. Flink 中LatencyMarks延迟监控(源码分析)

    流式计算中处理延迟是一个非常重要的监控metric flink中通过开启配置   metrics.latency.interval  来开启latency后就可以在metric中看到askManage ...

  3. flink的checkpoint页面监控

    flink web页面中提供了针对Job Checkpoint相关的监控信息.Checkpoint监控页面共有overview.history.summary和configuration四个页签,分别 ...

  4. Flink资料(8) -- Flink代码贡献的指导及准则

    本文翻译自Contributing Code ----------------------------------------- Apache Flink是由自愿的代码贡献者维护.优化及扩展的.Apa ...

  5. Flink资料(5) -- Job和调度

    该文档翻译自Jobs and Scheduling ----------------------------------------------- 该文档简单描述了Flink是如何调度Job的,以及如 ...

  6. Flink资料(4) -- 类型抽取和序列化

    类型抽取和序列化 本文翻译自Type Extraction and Serialization Flink处理类型的方式比较特殊,包括它自己的类型描述,一般类型抽取和类型序列化框架.该文档描述这些概念 ...

  7. Flink资料(3)-- Flink一般架构和处理模型

    Flink一般架构和处理模型 本文翻译自General Architecture and Process Model ----------------------------------------- ...

  8. Flink资料(2)-- 数据流容错机制

    数据流容错机制 该文档翻译自Data Streaming Fault Tolerance,文档描述flink在流式数据流图上的容错机制. ------------------------------- ...

  9. Flink资料(1)-- Flink基础概念(Basic Concept)

    Flink基础概念 本文描述Flink的基础概念,翻译自https://ci.apache.org/projects/flink/flink-docs-release-1.0/concepts/con ...

随机推荐

  1. Zepto.js touch模块深入分析 解决手机点击事件

    源码: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely distributed under the MIT li ...

  2. erp crm oa

    erp是企业管理计划 crm是客户关系管理 oa是办公自动化erp管理的是企业的进销存.产供销.财务等crm主要是管理企业的客户,可以和erp的销售系统挂钩oa主要是管理一些内部的文档.公告,行政信息 ...

  3. js中添加事件 attachEvent 与 addEventListener

    给元素添加事件时,使用js进行实现时产生了疑惑,有关事件浏览器兼容的问题,在此记录如下. <!DOCTYPE html> <html> <head> <met ...

  4. 利用js闭包获取索引号

    以tab选项卡效果为例: 网页中的选项卡效果

  5. IIS7.0 部署wcf 404或者配置MIME(转)

    WCF部署在IIS下,报错如下: 应用程序“DEFAULT WEB SITE/IMF”中的服务器错误 Internet 信息服务 7.0 错误摘要 HTTP 错误 404.3 - Not Found由 ...

  6. html中的圆角边框

    border-radius:20px; radius:以某某为半径画圆. 如何制作一个圆形: div{height:150px;//像素的一半,再加上边框的像素 width:150px; border ...

  7. SQL Server 从数据库快照还原数据库

    语法: restore database db_name from database_snapshot  = 'db_snapshot_name'; ------------------------- ...

  8. Cortex-M3和Cortex-M4 Fault异常应用之二 ----- Fault处理函数的实现

    在项目处于调试期间,Fault处理程序可能只是一个断点指令,调试器遇到这个指令后停止程序的运行.默认情况下,由于非硬Fault被禁能,所有发生的非Fault都会上访成硬Fault,因此只要在硬Faul ...

  9. Fsu0413's Qt builds

    http://fsu0413.github.io/QtCompile/#!index.md

  10. WampServer下如何实现多域名配置

    原文:WampServer下如何实现多域名配置 之前在学习跨域的时候,我写过一篇叫做WampServer下使用多端口访问的文章,默认的 localhost 采用的是 80 端口,能使用多端口访问的核心 ...