极长的垃圾回收时间
2022-09-03 15:58:19
我们有一个运行Java 6,Tomcat 6,Spring Framework 3,Hibernate 4,EhCache的Web应用程序。我们遇到了一个问题,垃圾回收时间非常长,可能需要30秒或更长时间,使应用程序无响应。
我们目前正在测试中,但除了显而易见的:添加更多内存之外,我想知道我们是否可以调整一些方面来减少垃圾回收时间。
内存使用的主要贡献者是EHCache,因为我们正在积极地缓存。但我总是发现很难调整 EHCache 存储的大小(新的 EhCache 字节大小存储会导致我们出现各种问题,因为缓存的对象图可能非常大)。
这些是我对JVM的设置
JAVA_OPTS="$JAVA_OPTS -server -Xms256m -Xmx704m XX:OnOutOfMemoryError=/usr/share/scripts/on_server_crash.sh -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tomcat6 -XX:MaxPermSize=192m -XX:+UseConcMarkSweepGC