我正在寻找适合配置 web应用的JVM设置。我已经了解了老年代/年轻代/永久代,但我在最佳配置中使用这些参数时遇到了麻烦。
在4 GB内,约有 3 GB用于缓存(使用EhCache的应用程序缓存),因此我正在考虑这种情况下的最佳设置。FYI,缓存在应用程序的生命周期内是静态的(从磁盘加载,永不过期),但被大量使用。 我已经对我的应用程序进行了分析,并针对数据库查询、应用程序架构、缓存大小等进行了优化...我只是在寻求JVM配置建议。我已经测量出垃圾收集器的99%吞吐量,以及全面GC运行时的6-8秒暂停(每半个小时左右一次)。
以下是当前的JVM参数:
在4 GB内,约有 3 GB用于缓存(使用EhCache的应用程序缓存),因此我正在考虑这种情况下的最佳设置。FYI,缓存在应用程序的生命周期内是静态的(从磁盘加载,永不过期),但被大量使用。 我已经对我的应用程序进行了分析,并针对数据库查询、应用程序架构、缓存大小等进行了优化...我只是在寻求JVM配置建议。我已经测量出垃圾收集器的99%吞吐量,以及全面GC运行时的6-8秒暂停(每半个小时左右一次)。
以下是当前的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个内核。