gpt4 book ai didi

apache-flink - Flink 中插槽的资源过度分配

转载 作者:行者123 更新时间:2023-12-03 16:41:49 26 4
gpt4 key购买 nike

关于 Flink 上允许优化集群中资源使用的特性(+延迟、吞吐量...),即槽共享、任务链、异步 I/O 和动态扩展,我想问以下问题(全部在流处理上下文):

  • 在哪些情况下,有人会对任务管理器中的插槽数高于 cpu 内核数感兴趣?
  • 在哪种情况下,我们应该更喜欢在多个插槽上拆分任务管道(禁用插槽共享),而不是增加并行度,以便应用程序跟上传入的数据速率?
  • 有没有可能,即使使用了上述所有特性,为一个slot预留的资源也可能高于该slot中所有任务所需的资源量,从而导致我们有为一个slot预留的资源,但没有正在使用?当我们在具有不同延迟(或不同并行度)的应用程序中执行任务时,是否可能出现此类问题?或者甚至当我们在同一个窗口上执行多个聚合(不能使用折叠或减少进行优化)时?

  • 提前致谢。

    最佳答案

  • 通常,建议每个插槽至少保留一个 CPU 内核。您希望保留比内核更多的插槽的原因之一是您在操作符中执行阻塞操作。这样,您就可以让所有内核保持忙碌状态。
  • 如果您观察到您的应用程序无法跟上传入的数据速率,那么通常最好增加并行度(假设瓶颈不是并行度为 1 的运算符,并且您的数据具有足够的键值)。
    如果您在一个管道(甚至可能是链接的)中有多个计算密集型操作符,并且每个插槽的内核数少于这些操作符,那么拆分管道可能是有意义的。这样可以更好地同时完成这些运算符的计算。
  • 从理论上讲,您可能会为插槽分配比实际需要更多的资源。例如。每个插槽中只有一个运算符(operator),但分配了多个内核。同样在不同的操作符并行度的情况下,一些插槽可能会比其他插槽分配更多的子任务。您始终可以做的一件事是监控您的作业的执行情况,以检测配置不足和过度配置。
  • 关于apache-flink - Flink 中插槽的资源过度分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43551362/

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