我有一个10节点的集群,每台机器有8gbram,当我运行我的拓扑时,分配的内存总是与工作者的数量成比例的。每个工人大约占用1 gb的内存。我想为我试图在storm.yaml中设置为的每个工人分配2GB worker.childopts: "-Xmx6g -Xms6g"
因为我在每个节点上运行三个worker。但是分配的内存减少到1GB以下。
如何更好地调整拓扑?
我的一个螺栓出现以下错误
java.lang.outofmemoryerror:java.nio.heapbytebuffer处的java堆空间。java:57)在java.nio.bytebuffer.allocate(bytebuffer。java:335)访问org.apache.kafka.common.memory.memorypo
2条答案
按热度按时间qaxu7uf21#
我认为你的配置有点错误。这个
worker.childopts
设置被传递给每个worker jvm,所以当您设置-Xmx6g -Xms6g
您将为三个worker中的每一个提供6 Gig的内存(节点总共18 Gig)djmepvbi2#
您可以引用此链接https://github.com/apache/storm/blob/master/conf/defaults.yaml
i配置2参数:
如果你有10个工人,你必须配置
supervisor.memory.capacity.mb
=(768 x 10)它是主管的能力