Hi
对于开启 Checkpoint
之后导致反压的情况,如果希望在现在的基础上进行优化的话,则需要找到反压的原因是什么,可以尝试从最后一个被反压的算子开始排查,到底什么原因导致的,排查过程中,或许
Arthas[1] 可以有一些帮助
另外比较好奇的是,为什么反压会导致你的作业挂掉呢?作业挂掉的原因是啥呢
[1] https://github.com/alibaba/arthas
Best,
Congxian
Yun Tang <[email protected]> 于2020年8月26日周三 上午11:25写道:
> Hi
>
> 对于已经改为at least once的checkpoint,其在checkpoint时对于作业吞吐的影响只有task
> 同步阶段的snapshot,这个时间段的snapshot由于与task的主线程的数据访问持有同一把锁,会影响主线程的数据处理。但是就算这样,我也很怀疑checkpoint本身并不是导致早上10点高峰期无法运行的罪魁祸首。
> 使用异步的,支持增量的state backend (例如RocksDBStateBackend)会大大缓解该问题。
> 建议排查思路:
>
> 1. 检查使用的state backend类型
> 2. 检查是否存在sync阶段checkpoint用时久的问题(可以观察WEB UI上的checkpoint部分,看sync阶段的耗时)
> 3. 借助jstack等工具,检查执行checkpoint时,TM上的task执行逻辑,判断是哪里消耗CPU
>
> 祝好
> 唐云
> ________________________________
> From: LakeShen <[email protected]>
> Sent: Wednesday, August 26, 2020 10:00
> To: user-zh <[email protected]>
> Subject: Re: flink checkpoint导致反压严重
>
> Hi zhanglachun,
>
> 你们使用 checkpoint 的方式是什么?是否有 full gc 的情况呢
>
> Best,
> LakeShen
>
> 徐骁 <[email protected]> 于2020年8月26日周三 上午2:10写道:
>
> > input
> > .keyBy(<key selector>)
> > .timeWindow(<duration>)
> > .reduce(new MyReduceFunction(), new MyProcessWindowFunction());
> >
> > 可以看一下官网的 reduce 用法, 可以在数据进入窗口的时候进行处理(排序), 而没必要等到 window 结束后再进行 这样可以把时间分散到
> > window 里面
> >
>