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