我有一个 10 节点的集群,每台机器的 RAM 为 8 GB,当我运行拓扑时,分配的内存始终与工作线程数量成正比。每个工作线程大约占用 1 GB 内存。我想为我尝试在 storm.yaworker.childopts: "-Xmx6g -Xms6g"
ml 中设置的每个工作线程分配 2 GB,因为我在每个节点中运行三个工作线程。但分配的内存减少到 1 GB 以下。
如何更好地调整我的拓扑?
我的一个螺栓中出现以下错误
java.lang.OutOfMemoryError: java.nio.HeapByteBuffer.(HeapByteBuffer.java:57( at java.nio.ByteBuffer.allocate(ByteBuffer.java:335( at org.apache.kafka.common.memory.MemoryPo
您可以参考此链接 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( 这是主管的能力
我认为您的配置略有错误。worker.childopts
设置将传递给每个工作线程 JVM,因此当您设置-Xmx6g -Xms6g
时,您将为三个工作线程中的每个工作线程提供 6 GB 内存(节点总共 18 个(