【发布时间】:2012-02-06 21:33:22
【问题描述】:
我正在寻找合适的设置来为 Web 应用程序配置 JVM。我已经阅读了关于 old/young/perm generation 的文章,但是我在使用这些参数时遇到了麻烦。
在 4 GB 中,大约 3 GB 用于缓存(使用 EhCache 的应用缓存),因此我正在寻找考虑到这一点的最佳设置。仅供参考,缓存在应用程序的生命周期内是静态的(从磁盘加载,永不过期),但被大量使用。
我已经分析了我的应用程序,并且我已经对数据库查询、应用程序的架构、缓存大小等进行了优化... 我只是在寻找 JVM 配置建议这里。我测量了垃圾收集器的 99% 吞吐量,并且在 Full GC 运行时 6-8 秒暂停(大约每 1/2 小时一次)。
这里是当前的 JVM 参数:
-XX:+UseParallelGC -XX:+AggressiveHeap -Xms2048m -Xmx4096m
-XX:NewSize=64m -XX:PermSize=64m -XX:MaxPermSize=512m
-verbose:gc -XX:+PrintGCDetails -Xloggc:gc.log
那些参数可能已经完全关闭了,因为它们是很久以前写的......在应用程序变得那么大之前。
我使用的是 Java 1.5 64 位。
您是否看到任何可能的改进?
编辑:机器有 4 个核心。
【问题讨论】:
标签: java optimization garbage-collection jvm jvm-arguments