【发布时间】:2014-01-03 23:31:18
【问题描述】:
我有一个关于工作进程配置的问题。
我已经了解工作进程在工作节点(这是一台机器)内运行。我想知道的是所有工作进程是否共享同一个 JVM,或者每个工作进程是否都有自己的 JVM 实例?如果后者是真的,那么我想应该设置每个进程必须使用多少内存!那么这个配置应该在哪里进行呢?
【问题讨论】:
标签: apache-storm
我有一个关于工作进程配置的问题。
我已经了解工作进程在工作节点(这是一台机器)内运行。我想知道的是所有工作进程是否共享同一个 JVM,或者每个工作进程是否都有自己的 JVM 实例?如果后者是真的,那么我想应该设置每个进程必须使用多少内存!那么这个配置应该在哪里进行呢?
【问题讨论】:
标签: apache-storm
每个 Storm 工作进程都在自己的 JVM 中运行。 可以在 conf/storm.yaml 配置文件中为每个 worker 分配内存。 例如:添加/编辑以下参数,为每个工作进程分配 1GB RAM:
worker.childopts: "-Xmx1024m"
这会覆盖您在机器上通常所做的任何 JVM RAM 设置(例如使用 JAVA_TOOL_OPTIONS)
更多风暴配置请参考: Storm Configurations
【讨论】:
在storm.yaml中配置worker.childopts = "-Xmx4048m"。
每个工作进程都会从 RAM 中获得那么多内存(如果可用)。
【讨论】:
所以可以说所有的工作进程都将运行在同一个JVM上,只属于一个特定的工作节点。
【讨论】:
每个工作节点在自己的 JVM 上独立运行。但是他们可以为一种或多种拓扑运行一个或多个工作进程。
如果后者是真的,那么我想应该设置每个进程必须使用多少内存!那么这个配置应该在哪里进行呢?
如果您打算设置 JVM 参数,请关注讨论 here
【讨论】: