Flink Job 子任务需要几分钟才能启动,而源立即启动
Flink Job subtasks taking minutes to start, while source starts instantly
所以我最近将我的 flink 作业的并行度从 10 增加到 50。目前的设置是 25 个任务管理器,每个任务管理器有 2 个任务槽,每个有 2 个 cpu。 5 cpus 的工作经理。但出于某种原因,当作业开始时,它能够立即启动两个源的所有子任务,但作业的其余部分需要一分钟或更长时间才能启动所有其他操作员的子任务。
我知道这不应该发生,但我不确定需要更改哪些内容才能解决此问题。这也是来自 ui 的任务管理器配置之一的屏幕截图。它还使用 rocksdb 检查点并使用 s3。
所以答案是它与基础设施设置有关。
tl;dr:RocksDB 在网络上的共享卷上。
因此,要详细说明到底出了什么问题(深入解释归功于项目的基础架构团队成员)是 RocksDB 在数据中心的共享卷上。在幕后,提供商将 NFS 用于共享卷,而 NFS 并不适合具有大量事务和 IO 的工作负载,例如 RocksDB。写入 NFS 卷需要锁,并且多次 pods 写入同一个 NFS 卷可能 运行 在请求锁的 pods 之间发生争用。
因此我们不再使用 PVC,而是使用具有大小限制的 emptyDir 卷切换到每个 pod 的临时存储,这样我们就不必担心 pod 会因填满底层节点而意外导致中断.
这也解决了我在这个问题中的另一个问题,因为它基本上是同一问题的不同症状 ()。
不确定这是否应该有 more/different 标签(或者那些会是什么),因为它不完全是一个 flink 问题。
所以我最近将我的 flink 作业的并行度从 10 增加到 50。目前的设置是 25 个任务管理器,每个任务管理器有 2 个任务槽,每个有 2 个 cpu。 5 cpus 的工作经理。但出于某种原因,当作业开始时,它能够立即启动两个源的所有子任务,但作业的其余部分需要一分钟或更长时间才能启动所有其他操作员的子任务。
我知道这不应该发生,但我不确定需要更改哪些内容才能解决此问题。这也是来自 ui 的任务管理器配置之一的屏幕截图。它还使用 rocksdb 检查点并使用 s3。
所以答案是它与基础设施设置有关。
tl;dr:RocksDB 在网络上的共享卷上。
因此,要详细说明到底出了什么问题(深入解释归功于项目的基础架构团队成员)是 RocksDB 在数据中心的共享卷上。在幕后,提供商将 NFS 用于共享卷,而 NFS 并不适合具有大量事务和 IO 的工作负载,例如 RocksDB。写入 NFS 卷需要锁,并且多次 pods 写入同一个 NFS 卷可能 运行 在请求锁的 pods 之间发生争用。
因此我们不再使用 PVC,而是使用具有大小限制的 emptyDir 卷切换到每个 pod 的临时存储,这样我们就不必担心 pod 会因填满底层节点而意外导致中断.
这也解决了我在这个问题中的另一个问题,因为它基本上是同一问题的不同症状 (
不确定这是否应该有 more/different 标签(或者那些会是什么),因为它不完全是一个 flink 问题。