python - Flink Slots/Parallelism 与最大 CPU 能力

标签 python parallel-processing apache-flink

我试图在 .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/

相关文章:

python - subprocess.Popen 使用相对路径

java - 为什么我的 ThreadPool 没有在 Java 中并行运行?

java - 在 flink 流处理中一次读取文件的两行

python - Theano:对稀疏矩阵的非零元素进行运算

python:如何将文件输出重定向到流

python - 是否有一行代码可以在矩阵中找到最大值?

c++ - 使用 OpenMP 优化双线性插值

python - n_jobs=-1 的 sklearn Logistic 回归实际上并不并行化

apache-flink - 使用带有大量 key 的 Flink keyby 是否正确?

java - 如何使用Java对Apache Flink中的DataStream进行平均操作