回复:Flink反压定位算子

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

回复:Flink反压定位算子

fanrui
可能是某一个 C算子的某一个 subtask 的inPoolUsage 打满了。建议查看 subtask级别的 Metric。从原理上分析,如果B反压严重,至少有某一个 C算子的一个 subtask 的inPoolUsage 打满了。希望对你有所帮助👏
祝好
fanrui



---原始邮件---
发件人: "赵一旦"<[hidden email]&gt;
发送时间: 2020年11月1日(周日) 晚上8:31
收件人: "user-zh"<[hidden email]&gt;;
主题: Re: Flink反压定位算子


没有人有这方面经验分享下嘛?

赵一旦 <[hidden email]&gt; 于2020年10月30日周五 下午5:59写道:

&gt;
&gt; 我看了下,inputQueueLength和outputQueueLength是有值的。xxxPoolUsage都是0(包括exclusive,floating)。numBuffersInLocal这种也有值。还有的指标本身有值,带个PerSecond没值,这都不合理呀,比如指标A的值在几千,但指标AperSecond却是0。
&gt; 明显存在很多指标固定为0,但是现在混淆在一起,不清楚是指标统计了,值为0,还是就没统计。
&gt;
&gt;
&gt; 赵一旦 <[hidden email]&gt; 于2020年10月30日周五 下午5:52写道:
&gt;
&gt;&gt;
&gt;&gt; 如我上一个email写的内容。inPool这种指标我懂,但是目前按照我的观察,这些指标默认都是0。不像是真实是0,而是貌似这些指标不生效就。flink是不是有什么开关,默认没做这个统计啊。
&gt;&gt;
&gt;&gt; 范瑞 <[hidden email]&gt; 于2020年10月30日周五 下午5:49写道:
&gt;&gt;
&gt;&gt;&gt; Hi
&gt;&gt;&gt; 可以查看所有 C 算子的 InPoolUsage 这个 Metric 来定位哪个 C有问题了。inPoolUsage高才会导致上游的 B反压
&gt;&gt;&gt; 祝好🤞
&gt;&gt;&gt; fanrui
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; ---原始邮件---
&gt;&gt;&gt; 发件人: "赵一旦"<[hidden email]&amp;gt;
&gt;&gt;&gt; 发送时间: 2020年10月30日(周五) 下午5:43
&gt;&gt;&gt; 收件人: "user-zh"<[hidden email]&amp;gt;;
&gt;&gt;&gt; 主题: Flink反压定位算子
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; 如题,当前Flink任务反压情况下,基于Flink WebUI可以定位到反压算子C1的前一个算子B1。
&gt;&gt;&gt;
&gt;&gt;&gt; 但是B1的后续如果有很多个算子,比如C1、C2、C3、......、Cn。如何在C1-Cn之间定位问题算子呢?总不能不断拆分任务,去除部分算子排除法吧。
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; 当前希望是通过metrics指标来看。但是,和buffer相关的指标,目前发现有很多指标恒定为0,感觉貌似是没统计,而不是实际值是0。
&gt;&gt;&gt; 比如 0.buffers.inPoolUsage这类指标一直都是0。
&gt;&gt;&gt;
&gt;&gt;&gt; 请问这种case怎么解,怎么进一步定位?以及什么metric有效呢?
&gt;&gt;
&gt;&gt;