开发者社区> 问答> 正文

Flink 并行度问题

使用Flink以来,一直有一个问题困扰着。 Flink 设置n个并行度后,是指占用n个CPU,而不是n个CPU核数。 比如Flink消费kafka topic时,并行度数量往往都建议设置topic分区的个数,意在让每个并行度消费一个分区,达到性能最优。那也就是说一个并行度代表一个消费线程,同时也表示一个slot,又由于在Flink中一个并行度表示一个CPU,那么是不是可以理解为一个CPU就是一个线程。 如果FLink 以standalone的模式部署在一台机器上,这台机器有4个CPU,每个CPU有6个核,那么该集群的最大并行度是不是就是 4 ? 在我的认识中,一个核表示一个线程,但在上面的理解中,好像是一个CPU就是一个线程,这是否矛盾呢? *来自志愿者整理的flink邮件归档

展开
收起
JACKJACK 2021-12-08 15:45:44 1375 0
1 条回答
写回答
取消 提交回答
  • 对的是我!

    hi, TaskManager 的一个 Slot 代表一个可用线程,该线程具有固定的内存,并且 Slot 只对内存隔离,没有对 CPU 隔离。 而slot 和并行度的关系是:Slot 是指 TaskManager 最大能并发执行的能力,parallelism 是指 TaskManager 实际使用的并发能力。 个人见解,并行度的设置一般无需考虑CPU。*来自志愿者整理的flink邮件归档

    2021-12-08 16:44:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载