性能问答>关于jvm 超过32G的特别说明>
5回复
2年前

关于jvm 超过32G的特别说明



待优化的参数

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=10001
-Xms31744m
-Xmx31744m
-XX:ParallelGCThreads=8
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+PrintGCDetails
-XX:ErrorFile=/data1/log/hadoop/hs_err_pid%p.log
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/data1/log/hadoop/namenode-heapdump.log-`date
+'%Y%m%d%H%M'`
-XX:CMSInitiatingOccupancyFraction=84
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+CMSScavengeBeforeRemark
-verbose:gc
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
$HADOOP_NAMENODE_OPTS
核数32
物理内存64G
操作系统Linux
位数64
JDK版本JDK8
查看详情

这其实是个建议
个人认知为在jvm有32G的临界,使用指针压缩的问题存在。那么32G前后应该有个特别的说明,比如-Xmx31744m的时候是小于32G使用时会将指针压缩,但是超过32G会使用64bit的指针使用方式,类比**++可以给出个分析文章++**建议比如heap>=38G 的时候 heap 这里能存下的对象与heap=32G 能存下的大小接近

4012 阅读
请先登录,再评论

嗯,其实有几个临界值,4G,32G,大于 32G 就会关闭指针压缩

2年前
回复 你假笨:

那么有没有实测或者经验建议比如heap>=38G 的时候 heap 这里能存下的对象与heap=32G 能存下的大小接近,这种类型的建议值?
BTW: 这边实际的jvm使用在接近32G所以会更关心这里的临界值,但是实测又不是很准,希望有个更详细更准确的建议值或者讨论

2年前回复

觉得把该问题移步讨论区可能更合适

2年前
回复 fcb的鱼:

Hadoop的NameNode呀~我想用了Hadoop的公司都可能会碰到(PS. 外部优化不算,联邦NN,分集群啥的,只算单个NN-JVM的优化场景)

2年前回复
回复 here。:

问下,你们是个什么样的服务,需要的堆内存这样大。另外你们什么场景下会关心jvm堆的临界值

2年前回复