频繁发生FULL GC

在我们的系统中频繁发生FULL GC。 我们正在使用在Tomcat服务器上运行的Java应用程序。 我们的应用程序使用内部负载平衡器设置运行。 我们在服务器日志中看到很多Full GC,因此挂起了应用程序,并且发生了代理错误。

我们使用的Java参数值是:Webapp wrapper:wrapper.java.additional.4 = -Xms382M wrapper.java.additional.5 = -Xmx1024M Backapp wrapper:wrapper.java.additional.4 = -Xms382M wrapper.java.additional 0.5 = -Xmx1024M

在webapp包装器日志中发现错误:INFO | jvm 1 | 2010/11/26 09:33:19 | [PSYoungGen:1398460K-> 140291K(1514624K)] 4623364K-> 3491394K(5009920K),0.7285303秒] [Times:user = 1.42 sys = 0.00,real = 0.72 secs] INFO | jvm 1 | 2010/11/26 09:33:19 | 68539.126:[Full GC DEBUG | wrapperp | 2010/11/26 09:33:19 | 发送一个数据包PING:ping

试图改变JVM值来增加堆大小。 但没用。 我怀疑除了这些引起问题的参数之外,还有其他一些原因。

任何人都可以帮助我吗?

在你的setDomainEnv.sh中添加这个参数:-XX:+ DisableExplicitGC

重新启动您的服务器。 这将避免任何可能由应用程序调用的显式GC,并允许JVM在内部进行决定,并在真正需要的地方触发Full GC。

将此添加到您的java_opts:“-XX:+ UseConcMarkSweepGC”这是一个multithreadingGC,在高负载下运行得更好。