【问题标题】:Apache Storm 2.1.0 memory related configurationsApache Storm 2.1.0 内存相关配置
【发布时间】:2020-10-10 03:39:02
【问题描述】:

我们正在从 1.1.x 迁移到 2.1.0。

在我们当前的设置中,storm.yaml 中有以下内存配置

nimbus.childopts: -Xmx2048m
supervisor.childopts: -Xmx2048m
worker.childopts: -Xmx16384m

我在https://github.com/apache/storm/blob/master/conf/defaults.yaml 中看到了许多其他与内存相关的配置,并且对它们有以下疑问。

  1. worker.childoptstopology.worker.childopts 有什么区别?如果我们在storm.yaml中设置worker.childopts,我们还需要覆盖topology.worker.childopts吗?
  2. 如果我们在storm.yaml中设置worker.childopts,我们还需要覆盖worker.heap.memory.mb吗?这两个配置之间有关系吗?
  3. 应该topology.component.resources.onheap.memory.mb worker.childopts?我们应该如何确定 topology.component.resources.onheap.memory.mb 的值?

如果有人能解释这些观点,不胜感激。

【问题讨论】:

    标签: apache-storm topology apache-storm-topology storm-topology apache-storm-configs


    【解决方案1】:

    我最近自己修改了其中一些配置,所以我在这里分享我的见解:

    1. worker.childopts vs topology.worker.childopts - 第一个参数为所有工作人员设置 childopts。第二个参数可用于覆盖单个拓扑的参数,例如通过使用conf.put(Config.TOPOLOGY_WORKER_CHILDOPTS, "someJvmArgsHere");

    2. 根据storm gitworker.childopts 的默认值为"-Xmx%HEAP-MEM%m -XX:+PrintGCDetails -Xloggc:artifacts/gc.log -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=artifacts/heapdump"。注意第一个参数,它包含一个替换模式%HEAP-MEM%。此模式将替换为您为worker.heap.memory.mb 配置的任何内容。您可以从 Java 的拓扑配置中覆盖后一个参数,因此我猜他们以这种方式构建它以便能够快速修改各个拓扑的 Java 堆。我注意到的一件事是,在覆盖时,storm 似乎只有在至少一个 spout 或 bolt 配置了 .setMemoryLoad(int heapSize) 时才使用覆盖值。

    3. 这在很大程度上取决于各个拓扑的需求,但总的来说,让topology.component.resources.onheap.memory.mb 小于您在worker.childopts 中为 -Xmx 配置的任何值很可能是一个非常好的主意。如何为topology.component.resources.onheap.memory.mb 找到合适的值取决于测试和了解拓扑组件的内存消耗。例如,我有一个从 redis 接收元组并发出它们的拓扑。如果 bolts 很忙,元组可能会堆积在 spout 中,因此我在内存方面配置了一些空间。但是,我通常不会修改topology.component.resources.onheap.memory.mb,而是使用拓扑组件的setMemoryLoad(int heapSize) 方法,因为这允许为拓扑的各个组件设置不同的值。此主题和相关主题的 Storm 文档是 here

    【讨论】:

      猜你喜欢
      • 2022-06-17
      • 2018-10-17
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 2019-01-28
      • 1970-01-01
      相关资源
      最近更新 更多