我正在寻找适当的设置来为Web 应用程序配置 JVM 。我已经阅读了有关旧/新/烫发一代的信息,但我无法在最好的情况下使用这些参数来进行此配置。
在 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个核心。