我试图在 .yaml 文档中理解 flink 的插槽和并行配置背后的逻辑。
官方 Flink 文档指出,对于 cpu 中的每个内核,您必须分配 1 个插槽并同时将并行度级别提高 1。
但我想这只是一个建议。例如,如果我有一个强大的核心(例如,最大 GHz 的最新 i7),它与拥有有限 GHz 的旧 cpu 不同。因此,运行比我系统的 cpu maxcores 更多的插槽和并行度并不是不合理的。
但是除了测试不同的配置之外,还有其他方法可以使用 flink 检查我的系统的最大能力吗?
郑重声明,我使用的是 Flink 的 Batch Python API。
最佳答案
建议每个插槽至少分配一个 CPU 核心,因为每个运算符至少由 1 个线程执行。鉴于您不在运算符(operator)中执行阻塞调用并且带宽足够高以不断向运算符(operator)提供新数据,每个 CPU 内核 1 个插槽应该可以让您的 CPU 保持忙碌。
另一方面,如果您的运算符(operator)发出阻塞调用(例如与外部数据库通信),有时配置比核心更多的插槽可能是有意义的。
关于python - Flink Slots/Parallelism 与最大 CPU 能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43969594/