gpt4 book ai didi

apache-flink - 更喜欢增加任务管理器的数量而不是每个任务管理器的任务槽的原因是什么?

转载 作者:行者123 更新时间:2023-12-04 05:09:36 24 4
gpt4 key购买 nike

根据 the Flink documentation ,有两个维度会影响任务可用的资源量:

  • 任务管理器数量
  • 任务管理器可用的任务槽数。

  • Having one slot per TaskManager means each task group runs in a separate JVM (which can be started in a separate container, for example). Having multiple slots means more subtasks share the same JVM. Tasks in the same JVM share TCP connections (via multiplexing) and heartbeat messages. They may also share data sets and data structures, thus reducing the per-task overhead.



    使用文档中的这一行,似乎您总是倾向于增加每个任务管理器的任务槽数量而不是增加任务管理器的数量。

    一个具体的场景:如果我在 Kubernetes 中部署了一个作业集群(假设有 16 个 CPU 内核可用)和一个由一个源 + 一个映射函数 + 一个接收器组成的管道,那么我将默认拥有一个具有 16 个可用插槽的 TaskManager到那个任务管理器。

    这是最佳配置吗?是否有一种情况我更喜欢 16 个 TaskManager,每个都有一个插槽,或者 TaskManager 和可以利用所有 16 个 CPU 内核的插槽的组合?

    最佳答案

    没有最佳配置,因为一般无法定义“最佳”。每个 TM 具有一个插槽的配置提供了良好的隔离,并且通常更易于管理和推理。

    如果您运行多个作业,多槽配置可能会将不同作业的任务调度到一个 TM。如果 TM 宕机,例如,因为两个任务中的任何一个消耗了太多内存,两个作业都将重新启动。另一方面,每个 TM 运行一个插槽可能会留下更多未使用的内存。如果每个集群只运行一个作业,每个 TM 多个插槽可能没问题。

    关于apache-flink - 更喜欢增加任务管理器的数量而不是每个任务管理器的任务槽的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53549629/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com