Java 使用Jetty 8的内存投入在不断增加,直到使用spring缓存的服务器出现故障

Java 使用Jetty 8的内存投入在不断增加,直到使用spring缓存的服务器出现故障,java,spring,memory-leaks,jetty,Java,Spring,Memory Leaks,Jetty,我使用的是jetty版本8.1.8.v20121106,部署了一个非常简单的spring mvc应用程序。在服务器正常运行期间,内存占用将不断增加,直到服务器出现故障 随着时间的推移,线程也在急剧增加 我有很多睡眠和等待事件线程,正如您在这里看到的 root 1568 2.9 12.4 14014884 4111368 ? Sl 10:03 0:07 /usr/bin/java -Djetty.home=/opt/jetty/jetty -Djava.io.tmpd

我使用的是jetty版本
8.1.8.v20121106
,部署了一个非常简单的spring mvc应用程序。在服务器正常运行期间,内存占用将不断增加,直到服务器出现故障

随着时间的推移,线程也在急剧增加

我有很多
睡眠
等待事件线程
,正如您在这里看到的

root      1568  2.9 12.4 14014884 4111368 ?    Sl   10:03   0:07 /usr/bin/java -Djetty.home=/opt/jetty/jetty -Djava.io.tmpdir=/tmp -javaagent:/home/ydadmin/newrelic/newrelic.jar -jar /opt/jetty/jetty/star
root      1568  0.7 12.4 14014884 4111368 ?    Sl   10:03   0:02 /usr/bin/java -Djetty.home=/opt/jetty/jetty -Djava.io.tmpdir=/tmp -javaagent:/home/ydadmin/newrelic/newrelic.jar -jar /opt/jetty/jetty/star
root      1568  0.0 12.4 14014884 4111368 ?    Sl   10:03   0:00 /usr/bin/java -Djetty.home=/opt/jetty/jetty -Djava.io.tmpdir=/tmp -javaagent:/home/ydadmin/newrelic/newrelic.jar -jar /opt/jetty/jetty/star
root      1568  0.0 12.4 14014884 4111368 ?    Sl   10:03   0:00 /usr/bin/java -Djetty.home=/opt/jetty/jetty -Djava.io.tmpdir=/tmp -javaagent:/home/ydadmin/newrelic/newrelic.jar -jar /opt/jetty/jetty/star
我假设这是因为缺乏码头池和不关闭旧连接,但为什么以及如何解决这个问题?我的配置当前如下所示:

我怎样才能发现,是什么导致了这个问题

更新:使用
jsstack
可以找到很多这样的线程,这些线程可能会有所帮助


在分析了我使用线程的所有部分后,我发现我没有关闭一个
执行器,这对垃圾收集是有害的

ExecutorService executor = Executors.newFixedThreadPool(2);
// ...
executor.shutdown()

请告诉我,如果需要任何其他信息…那不是jetty做的,对不起,看看你的应用程序,在像jprofiler或yourkit这样的东西中启动它,这应该可以帮助你找出什么是什么。我同意@Jessemconnell,用jprofiler或yourkit分析你的代码,并找出内存在使用什么。在解决此问题时,线程转储对您的用处和价值微乎其微。