From fb16f03e435f60eca5104e717a9968118f3cfdf7 Mon Sep 17 00:00:00 2001 From: zeekling Date: Fri, 6 Jan 2023 15:28:28 +0000 Subject: [PATCH] =?UTF-8?q?=E5=8F=8D=E5=8E=8B=E9=97=AE=E9=A2=98=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D=E4=BB=A5=E5=8F=8A=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 调优/backpress.md | 112 ++++++++++++++++++++++++++++++++++++++++++ 调优/backpress003.png | Bin 0 -> 38386 bytes 2 files changed, 112 insertions(+) create mode 100644 调优/backpress003.png diff --git a/调优/backpress.md b/调优/backpress.md index bc722d4..35484e4 100644 --- a/调优/backpress.md +++ b/调优/backpress.md @@ -68,3 +68,115 @@ checkpoint**超时失败**。而state大小同样可能拖慢checkpoint甚至OOM 使用超过容器资源(使用RocksDBStateBackend)的稳定性。 +# 反压定位 + +## Flink Web UI 自带的反压监控 + +Flink Web UI 的反压监控提供了 Subtask 级别的反压监控。监控的原理是通过Thread.getStackTrace() 采集在 +TaskManager 上正在运行的所有线程,收集在缓冲区请求中阻塞的线程数(意味着下游阻塞),并计算缓冲区阻塞线程数与 +总线程数的比值 rate。其中,rate < 0.1 为 OK,0.1 <= rate <= 0.5 为 LOW,rate > 0.5 为 HIGH。 + +![pic](./backpress003.png) + + +以下两种场景可能导致反压: + +- 该节点发送速率跟不上它的产生数据速率。该场景一般是单输入多输出的算子,例如FlatMap。定位手段是因为这是从 + Source Task 到 Sink Task 的第一个出现反压的节点,所以该节点是反压的根源节点。 +- 下游的节点处理数据的速率较慢,通过反压限制了该节点的发送速率。定位手段是从该节点开始继续排查下游节点。 + +注意事项: + +- 因为Flink Web UI 反压面板是监控发送端的,所以反压的根源节点并不一定会在反压面板体现出高反压。如果某个节点是 +性能瓶颈并不会导致它本身出现高反压,而是导致它的上游出现高反压。总体来看,如果找到第一个出现反压的节点,则反 +压根源是这个节点或者是它的下游节点。 +- 通过反压面板无法区分上述两种状态,需要结合 Metrics 等监控手段来定位。如果作业的节点数很多或者并行度很大,即 +需要采集所有 Task 的栈信息,反压面板的压力也会很大甚至不可用 。 + + +## Flink Task Metrics 监控反压 + +Network和 task I/Ometrics 是轻量级反压监视器,用于正在持续运行的作业,其中一下几个 metrics 是最有用的反压指标。 + +| Metrics | 描述 | +|----|----| +| outPoolUsage | 发送端Buffer的使用率 | +| inPoolUsage | 接受端Buffer的使用率 | +| floatinguffersUsage(1.9以上) | 接受端floating Buffer的使用率 | +| exclusiveBuffersUsage(1.9以上) | 接受端exclusive Buffer的使用率 | + + +采用 Metrics 分析反压的思路:如果一个 Subtask 的发送端 Buffer 占用率很高,则表明它被下游反压限速了;如果一个 +Subtask 的接受端 Buffer 占用很高,则表明它将反压传导至上游。 + +| / | outPoolUsage 低 | outPoolUsage 高 | +|--- |--- |---| +| inPoolUsage 低 | 正常 | 被下游反压,处于临时情况,没传递到上游;
可能时反压的根源,一条输入多条输出的场景 | +| inPoolUsage 高 | 如果时上游所有outPoolUsage 都是低,
有可能最终可能导致反压(还没传递到上游;
如果时上游所有的outPoolUsage 都是高,则为反压根源) | 被下游反压。 | + +inPoolUsage和outPoolUsage反压分析表 + +- outPoolUsage 和 inPoolUsage 同为低表明当前 Subtask 是正常的,同为高分别表明当前 Subtask 被下游反压。 +- 如果一个 Subtask 的 outPoolUsage 是高,通常是被下游 Task 所影响,所以可以排查它本身是反压根源的可能性。 +- 如果一个 Subtask 的 outPoolUsage 是低,但其 inPoolUsage 是高,则表明它有可能是反压的根源。因为通常反压会传 +导至其上游,导致上游某些 Subtask 的 outPoolUsage 为高。 + + +反压有时是短暂的且影响不大,比如来自某个 channel 的短暂网络延迟或者 TaskManager 的正常 GC,这种情况下可以不用处理。 + +outPoolUsage 与 floatingBuffersUsage 、 exclusiveBuffersUsage 的关系: + +- floatingBuffersUsage 为高则表明反压正在传导至上游。 +- exclusiveBuffersUsage 则表明了反压可能存在倾斜。如果floatingBuffersUsage 高、exclusiveBuffersUsage 低,则存 +在倾斜。因为少数 channel 占用了大部分的 floating Buffer(channel 有自己的 exclusive buffer,当 exclusive +buffer 消耗完,就会使用floating Buffer) + + +# 反压的原因及处理 + +注意:反压可能时暂时的,可能由于负载高峰,CheckPoint或者作业重启引起的数据积压而导致的反压。如果反压是暂时的, +应该忽略它。另外,请记住,断断续续的反压会影响我们的分析和解决问题。 + +定位到反压节点后,分析造成反压的原因的办法主要是观察Task Thread。按照下面顺序一步步排查。 + +## 使用火焰图分析 + +火焰图是跟踪堆栈线程然后重复多次采样而生成的。每个方法的调用都会有一个长方型表示,长方型的长度和它在采样中出 +现的次数成正比。是Flink 1.13 新特性。 + +开启方法: +```bash +rest.flamegraph.enabled : true +``` + +横向就是耗时时长,横向越长表示耗时越长。纵向表示调用栈。一般只需要看最上面函数。 + + +## 分析GC情况 + +TaskManager的内存以及GC问题也会导致反压,包括TaskManager JVM 各区内存不合理导致频繁Full GC甚至失联。通常建议 +使用默认的G1垃圾回收器。 + +打印 GC 日志的第一步,就是开启 GC 打印的参数了,也是最基本的参数。 + +```bash +-XX:+PrintGCDetails -XX:+PrintGCDateStamps +``` +-D参数配置方式: + +```bash +-Denv.java.opt="-XX:+PrintGCDetails -XX:+PrintGCDateStamps" +``` + +## 外部交互组件 + +如果我们发现我们的source端数据读取性能比较低或者Sink端写入性能较差,需要检查第三方组件是否遇到瓶颈,以及做维表 +join时的性能问题,也许要和外部组件交互。 + +关于第三方的性能问题,需要结合具体的组件来分析,最常用的思路: + +1、异步IO + 热缓存来优化读写性能,减少对外部组件的访问。 + +2、先攒批在进行读写操作。 + + diff --git a/调优/backpress003.png b/调优/backpress003.png new file mode 100644 index 0000000000000000000000000000000000000000..f25676a41dae4061fc314966e806ebcad053728c GIT binary patch literal 38386 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

ICvpc>YI4 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