我试图理解.yaml文档中flink的插槽和并行配置背后的逻辑。
官方Flink文档声明,对于cpu中的每个核心,您必须分配1个插槽并同时将并行级别提高一个。
但我认为这只是一个建议。例如,如果我有一个强大的核心(例如最新的i7和最高GHz),它与拥有有限GHz的旧cpu不同。因此,运行比我系统的cpu maxcores更多的插槽和并行性并不合理。
但除了测试不同的配置之外还有其他方法,用flink检查我的系统的最大功能吗?
仅供记录,我正在使用Flink的Batch Python API。
答案 0 :(得分:3)
建议为每个插槽分配至少一个CPU内核,因为每个操作符至少由一个线程执行。鉴于您没有在运营商中执行阻塞呼叫,并且带宽足够高,可以不断向运营商提供新数据,每CPU核心1个插槽应该可以让CPU保持忙碌状态。
另一方面,如果您的运营商发出阻止呼叫(例如与外部数据库通信),有时可能配置比您拥有核心更多的插槽。
答案 1 :(得分:2)
你的问题中有几点有趣。