我的 JVM 堆最大值在我的一个 hadoop 集群的名称节点上配置为 8GB。当我使用 JMX 监控 JVM 时,报告的最大值不断波动,如附图所示。
http://highlycaffeinated.com/assets/images/heapmax.png
我只在我的一个(最活跃的)hadoop 集群上看到这种行为。在其他集群上,报告的最大值固定在配置的值。任何想法为什么报告的最大值会改变?
更新:
java版本是“1.6.0_20”
堆最大值在 hadoop-env.sh 中使用以下行设置:
export HADOOP_NAMENODE_OPTS="-Xmx8G -Dcom.sun.management.jmxremote.port=8004 $JMX_SHARED_PROPS"
ps显示:
hadoop 27605 1 99 Jul30 ? 11-07:23:13 /usr/lib/jvm/jre/bin/java -Xmx1000m -Xmx8G
更新 2:
-Xms8G
昨晚在启动命令行中添加了开关:
export HADOOP_NAMENODE_OPTS="-Xms8G -Xmx8G -Dcom.sun.management.jmxremote.port=8004 $JMX_SHARED_PROPS"
如下图所示,尽管模式似乎发生了变化,但最大值仍然不同。
http://highlycaffeinated.com/assets/images/heapmax2.png
更新 3:
这是一个新图表,它还显示了非堆最大值,它保持不变: