java – 如何设置storm worker的JVM最大堆大小?

我是Storm编程的新手,我有一份工作要对自定义分组方法进行测试,看看它是否更好.

因此,我必须在几种不同的条件下测量风暴的吞吐量,例如不同的工人数量,不同的工人记忆等等

使用conf.setNumWorkers();设置工作人员编号很容易,但我发现很难设置每个工作人员的最大堆大小.

我尝试编辑storm.yaml并补充说

worker.childopts: "-Xmn128m-Xms128m-Xmx128m"

conf.put(Config.WORKER_CHILDOPTS, "-Xmn128m -Xms128m -Xmx128m");

添加到我的代码中.

但是当我在工作节点上使用jmap -heap [pid]时,我发现最大堆大小仍然是768m,这是默认的最大堆大小.

我怎样才能达到这个目的来限制JVM的最大内存使用量?

顺便说一句,我正在使用kafkaspout向暴风雨发送消息,欢迎对我的测试工作提出任何建议.

最佳答案
尝试编辑storm / default.yaml文件.查找工作器设置,您将在那里找到设置堆内存的条目.它应该默认看起来像这样!

worker.heap.memory.mb: 768

在同一个文件中,您还可以找到以下设置,您可以根据需要更改值.

topology.component.resources.onheap.memory.mb: 128.0
topology.component.resources.offheap.memory.mb: 0.0
topology.component.cpu.pcore.percent: 10.0
topology.worker.max.heap.size.mb: 768.0

希望有所帮助!

转载注明原文:java – 如何设置storm worker的JVM最大堆大小? - 代码日志