Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache storm Apache Storm 2.1.0内存相关配置_Apache Storm_Topology_Apache Storm Topology_Storm Topology_Apache Storm Configs - Fatal编程技术网

Apache storm Apache Storm 2.1.0内存相关配置

Apache storm Apache Storm 2.1.0内存相关配置,apache-storm,topology,apache-storm-topology,storm-topology,apache-storm-configs,Apache Storm,Topology,Apache Storm Topology,Storm Topology,Apache Storm Configs,我们正在从1.1.x迁移到2.1.0 在我们当前的设置中,storm.yaml中有以下内存配置 nimbus.childopts: -Xmx2048m supervisor.childopts: -Xmx2048m worker.childopts: -Xmx16384m 我在中看到许多其他与内存相关的配置,并对它们提出以下问题 worker.childopts和topology.worker.childopts之间有什么区别?如果我们在storm.yaml中设置worker.childopt

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

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

nimbus.childopts: -Xmx2048m
supervisor.childopts: -Xmx2048m
worker.childopts: -Xmx16384m
我在中看到许多其他与内存相关的配置,并对它们提出以下问题

  • worker.childoptstopology.worker.childopts之间有什么区别?如果我们在storm.yaml中设置worker.childopts,我们是否仍然必须覆盖拓扑.worker.childopts
  • 如果我们在storm.yaml中设置了worker.childopts,我们还需要覆盖worker.heap.memory.mb?这两个配置之间有关系吗
  • 应该拓扑.组件.资源.onheap.内存.mb工作者.childopts?我们应该如何确定topology.component.resources.onheap.memory.mb的值

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

    我最近自己也处理了一些配置,因此我在这里分享我的见解:

  • worker.childopts
    vs
    topology.worker.childopts
    -第一个参数为所有worker设置childopts。第二个参数可用于覆盖各个拓扑的参数,例如通过使用
    conf.put(Config.TOPOLOGY\u WORKER\u CHILDOPTS,“someJvmArgsHere”)

  • worker.childopts
    的默认值是
    “-Xmx%HEAP-MEM%m-XX:+PrintGCDetails-Xloggc:artifacts/gc.log-XX:+PrintGCDateStamps-XX:+PrintGCTimeStamps-XX:+usegcFileRotation-XX:NumberOfGCLogFiles=10-XX:GCLogFileSize=1M-XX:+heapdumponAutofmemoryError-XX:HeapDumpPath=artifacts/heapdump”
    。请注意第一个参数,它包括一个替换模式
    %HEAP-MEM%
    。此模式将替换为您为
    worker.heap.memory.mb
    配置的任何模式。您可以从Java中的拓扑配置中重写后一个参数,因此我猜他们以这种方式构建它,以便能够快速修改各个拓扑的Java堆。我注意到的一件事是,在重写时,只有在至少一个喷口或螺栓配置了
    .setMemoryLoad(int-heapSize)
    时,storm才会使用重写值

  • 这在很大程度上取决于单个拓扑的需要,但一般来说,最好将
    拓扑.component.resources.onheap.memory.mb
    小于
    worker.childopts
    中为-Xmx配置的值。如何找到拓扑.component.resources.onheap.memory.mb的好值取决于对拓扑组件内存消耗的测试和了解。例如,我有一个从redis接收元组并发出它们的拓扑。如果螺栓很忙,元组可能会堆积在管口中,因此我在内存方面为它配置了一些空间。但是,我通常不会修改拓扑.component.resources.onheap.memory.mb
    ,而是使用拓扑组件的
    setMemoryLoad(int-heapSize)
    方法,因为这允许为拓扑的各个组件设置不同的值。此主题和相关主题的Storm文档如下所示


  • 我最近亲自处理了其中一些配置,因此我在这里分享我的见解:

  • worker.childopts
    vs
    topology.worker.childopts
    -第一个参数为所有worker设置childopts。第二个参数可用于覆盖各个拓扑的参数,例如通过使用
    conf.put(Config.TOPOLOGY\u WORKER\u CHILDOPTS,“someJvmArgsHere”)

  • worker.childopts
    的默认值是
    “-Xmx%HEAP-MEM%m-XX:+PrintGCDetails-Xloggc:artifacts/gc.log-XX:+PrintGCDateStamps-XX:+PrintGCTimeStamps-XX:+usegcFileRotation-XX:NumberOfGCLogFiles=10-XX:GCLogFileSize=1M-XX:+heapdumponAutofmemoryError-XX:HeapDumpPath=artifacts/heapdump”
    。请注意第一个参数,它包括一个替换模式
    %HEAP-MEM%
    。此模式将替换为您为
    worker.heap.memory.mb
    配置的任何模式。您可以从Java中的拓扑配置中重写后一个参数,因此我猜他们以这种方式构建它,以便能够快速修改各个拓扑的Java堆。我注意到的一件事是,在重写时,只有在至少一个喷口或螺栓配置了
    .setMemoryLoad(int-heapSize)
    时,storm才会使用重写值

  • 这在很大程度上取决于单个拓扑的需要,但一般来说,最好将
    拓扑.component.resources.onheap.memory.mb
    小于
    worker.childopts
    中为-Xmx配置的值。如何找到拓扑.component.resources.onheap.memory.mb的好值取决于对拓扑组件内存消耗的测试和了解。例如,我有一个从redis接收元组并发出它们的拓扑。如果螺栓很忙,元组可能会堆积在管口中,因此我在内存方面为它配置了一些空间。但是,我通常不会修改拓扑.component.resources.onheap.memory.mb
    ,而是使用拓扑组件的
    setMemoryLoad(int-heapSize)
    方法,因为这允许为拓扑的各个组件设置不同的值。此主题和相关主题的Storm文档如下所示