增加Storm中拓扑的已分配内存

时间:2018-05-21 07:15:06

标签: performance memory apache-storm worker apache-storm-topology

我有一个10节点集群,每台机器都有8 GB RAM,当我运行拓扑时,分配的内存总是与工作人员数量成比例。每个工人大约占用1 GB的内存。我想为我试图在storm.yaml中设置的每个worker分配2 GB作为worker.childopts: "-Xmx6g -Xms6g",因为我在每个节点中运行了三个worker。但是分配的内存减少到1 GB以下。

如何更好地调整拓扑?

我的一个螺栓中出现以下错误

  

java.lang.OutOfMemoryError:位于org.apache.kafka.common的java.nio.ByteBuffer.allocate(ByteBuffer.java:335)的java.nio.HeapByteBuffer。(HeapByteBuffer.java:57)中的Java堆空间。 memory.MemoryPo

2 个答案:

答案 0 :(得分:1)

我认为你的配置有点不对劲。 worker.childopts设置被传递给每个工作者JVM,所以当你设置-Xmx6g -Xms6g时,你给你的三个工人中的每一个6 gig的内存(节点共18个)

答案 1 :(得分:1)

您可以参考此链接 https://github.com/apache/storm/blob/master/conf/defaults.yaml

我配置2个参数:

worker.heap.memory.mb: 768
supervisor.memory.capacity.mb: 4096.0

如果你有10名工人,你必须配置supervisor.memory.capacity.mb =(768 x 10)这是主管的能力