抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Flink 作业平时运行正常,一到流量高峰,checkpoint duration 突然从几十秒拉长到超时。第一反应通常是 RocksDB 或 HDFS 写得慢,于是继续调 checkpoint timeout。超时时间变长以后,失败次数可能少了,恢复点却越来越旧,背压也没有消失。

Checkpoint 的端到端时间不只是“状态写入存储”的时间。barrier 从 source 往下游传递,要先穿过已有的数据和网络缓冲;多输入算子还要等各个 channel 的同一轮 barrier 到齐。上游或下游已经背压时,barrier 本身就可能走不动,状态后端甚至还没开始做主要工作。

我排查这类问题时,会先把一次 checkpoint 拆成 start delay、alignment、同步快照和异步落盘四段。只有知道时间花在哪一段,参数调整才有意义。

Flink 背压下 checkpoint 的四段耗时