Better resource utilisation : Task manager with n slots means task-manager will dedicate 1/n of its memory to each slot. It means more subtasks share the same JVM and share TCP connections (via multiplexing) and heartbeat messages. They may also share data sets and data structures, thus reducing the per-task overhead. Also, a good default number of task slots would be the number of CPU cores.
2条答案
按热度按时间mlmc2os51#
另一个要考虑的因素是:具有多个槽的TM将使所有这些槽在同一JVM中运行。因此,如果您使用基于堆的状态后端,则所有这些槽的所有对象将由同一垃圾收集器处理--这将导致更长时间的GC暂停当Flink支持更现代的垃圾收集器时,这个问题就不那么重要了,而且RocksDB也没有问题。
rhfm7lfc2#
Better resource utilisation : Task manager with n slots means task-manager will dedicate 1/n of its memory to each slot. It means more subtasks share the same JVM and share TCP connections (via multiplexing) and heartbeat messages. They may also share data sets and data structures, thus reducing the per-task overhead. Also, a good default number of task slots would be the number of CPU cores.
没有定义的配置。它完全取决于应用程序和用例。
每个任务管理器1个插槽的配置提供了隔离,并且更易于管理。但这可能会留下一些未使用的内存。另一方面,如果运行多个插槽和多个管道/作业,diff作业的任务可能会在1个任务管理器上调度。由于特定作业的内存消耗很高,如果任务管理器关闭,它将重新启动在其上运行的所有作业。如果每个群集只运行一个作业,则每个TM运行多个插槽可能是合适的。
当任何任务管理器关闭或管道重新启动时,备用任务插槽都很有用。在这些情况下,作业管理器会将这些任务分配给这些备用插槽,应用程序将经历更少的停机时间。