GC args -XX:+ ExplicitGCInvokesConcurrent导致tomcat超时

时间:2012-06-19 12:35:25

标签: tomcat garbage-collection jvm java

现在,我们遇到了一个奇怪的问题,tomcat上的一些solr应用程序经常因大量连接而超时。

几天前,我们添加了gc arg -XX:+ ExplicitGCInvokesConcurrent,因此我们尝试删除此arg,连接数下降,超时时间也减少了。

但我们的一些使用此gc arg的应用程序没有遇到此问题,生病应用程序和健康应用程序之间的差异是jdk版本。生病应用程序的jdk版本是1.6.0_21,而健康应用程序是1.6.0_26。

更改jdk版本也可以解决问题。

有人可以说这是旧版本jdk的bug,还是gc args的bug?

2 个答案:

答案 0 :(得分:1)

如果您要删除-XX:+ExplicitGCInvokesConcurrent System.gc()Runtime.getRuntime().gc()拨打的所有来电将导致暂停时间过长。如果健康的应用程序没有这些调用,这可能是生病应用程序的问题,那么可能是您遇到了问题。

我不确定jdk bug但可能是问题在应用程序的某个地方。

答案 1 :(得分:1)

是的,-XX:+ExplicitGCInvokesConcurrent的使用似乎与较旧的JDK有关。您可以查看this bug,这是自6u22以来解决的(有趣的是你说6u21失败和6u26工作)。