【发布时间】:2010-12-14 08:09:11
【问题描述】:
我听说有几个人声称您无法扩大 JVM 堆大小。我听说实际限制是 4 GB(我听 IBM 顾问这么说)、10 GB、32 GB 等等……我简直不敢相信这些数字,一直想知道这个问题现在一段时间。
所以,我有三个部分的问题,希望有经验的人能回答:
- 鉴于以下情况,您将如何调整堆和 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 的数量,所以它们对我来说似乎很理智。我添加的其余部分是额外的,通常对性能可能有好有坏,它们可能应该进行测试。
- 一定。
【问题讨论】:
-
可以选择 Sun 1.6 JVM 吗?在这些条件下,它应该会表现得更好。
-
JRockit 对于 64 位机器也是一个不错的选择。
-
-EliminateZeroing与这里有什么关系?
标签: java performance garbage-collection jvm heap-memory