Sun JVM 能否毫无问题地处理巨大的堆大小,以及如何处理?
我听说过几个人声称你不能扩展JVM堆大小。我听说过实际限制是4千兆字节(我听到IBM顾问这么说),10千兆字节,32千兆字节,依此类推......我简直不敢相信这些数字中的任何一个,并且已经对这个问题有一段时间了。
所以,我有三部分问题,我希望有经验的人可以回答:
- 在以下情况下,您将如何调整堆和 GC 设置?
- 最终用户是否会注意到明显的小动作(JVM的暂停等)?
- 这真的应该仍然有效吗?我认为应该这样做。
具体案例:
- 64 位平台
- 64 核
- 64 GB 内存
- 应用程序服务器面向客户端(即。Jboss/tomcat Web 应用程序服务器) - 最终用户可能会注意到 JVM 的完全暂停
- Sun JVM,可能是 1.5
为了证明我不是要求你们做我的功课,这就是我想到的:
-XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:-EliminateZeroing -Xmn768m -Xmx55000m
- CMS应该减少暂停量,尽管它会带来开销。CMS的其他设置似乎自动默认为CPU的数量,因此它们对我来说似乎是理智的。我添加的其余部分是额外的功能,这些附加功能通常对性能有好处或坏处,它们可能应该进行测试。
- 绝对。