我是Storm编程的新手,我有一份工作要对自定义分组方法进行测试,看看它是否更好.
@H_404_8@
因此,我必须在几种不同的条件下测量风暴的吞吐量,例如不同的工人数量,不同的工人记忆等等@H_404_8@
使用conf.setNumWorkers();设置工作人员编号很容易,但我发现很难设置每个工作人员的最大堆大小.@H_404_8@
我尝试编辑storm.yaml并补充说@H_404_8@
@H_404_8@
worker.childopts: "-Xmn128m-Xms128m-Xmx128m"
同@H_404_8@
@H_404_8@
conf.put(Config.WORKER_CHILDOPTS,"-Xmn128m -Xms128m -Xmx128m");
但是当我在工作节点上使用jmap -heap [pid]时,我发现最大堆大小仍然是768m,这是默认的最大堆大小.@H_404_8@
我怎样才能达到这个目的来限制JVM的最大内存使用量?@H_404_8@
顺便说一句,我正在使用kafkaspout向暴风雨发送消息,欢迎对我的测试工作提出任何建议.@H_404_8@
解决方法
尝试编辑storm / default.yaml文件.查找工作器设置,您将在那里找到设置堆内存的条目.它应该默认看起来像这样!
@H_404_8@
@H_404_8@
worker.heap.memory.mb: 768
在同一个文件中,您还可以找到以下设置,您可以根据需要更改值.@H_404_8@
@H_404_8@
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
希望有所帮助!@H_404_8@