Java Tomcat 7内存使用-是什么让它不断增长?

Java Tomcat 7内存使用-是什么让它不断增长?,java,tomcat,jakarta-ee,tomcat7,Java,Tomcat,Jakarta Ee,Tomcat7,晚上好, 我已经运行了一个ApacheTomcat7,带有一个用于测试的小jsp。基本上,它只打印几行。 然后,我得到了一个包含一些文本的纯html文件 我的问题是: 如果我用ab围攻我的雄猫,它会在记忆中成长,这里没有什么特别的。 但是内存使用量不断增长,而且没有停止。而且,它不会在一段时间后释放它。这在jsp和html中发生 这种行为的原因是什么 向@Bozho表示最诚挚的问候,因为@Bozho说很可能是代码泄漏。 使用jmap查看谁占用了这么多空间 jmap -histo:live <

晚上好,

我已经运行了一个ApacheTomcat7,带有一个用于测试的小jsp。基本上,它只打印几行。 然后,我得到了一个包含一些文本的纯html文件

我的问题是: 如果我用ab围攻我的雄猫,它会在记忆中成长,这里没有什么特别的。 但是内存使用量不断增长,而且没有停止。而且,它不会在一段时间后释放它。这在jsp和html中发生

这种行为的原因是什么


向@Bozho表示最诚挚的问候,

因为@Bozho说很可能是代码泄漏。 使用jmap查看谁占用了这么多空间

jmap -histo:live <tomcat java process id>
jmap-histo:live

这将告诉您哪些类型的对象占用了堆中多少内存,这将让您知道应该查看哪些代码。

您为Tomcat java进程设置了什么内存限制?@Robert:Standard 64 MB,我尝试过调整它,但没有成功。什么工具表明内存使用量增加了?你在什么操作系统上运行Tomcat?您使用的是Tomcat本机库吗?增加PermGen的大小也是值得的。@Codo:我使用top、free和ps,运行在Debian 5上。使用APR。这个问题看起来确实是本地的,因为我没有发现任何内存外异常,jmap也报告java内存使用率低。如果它继续增长,它就不可能是java堆,因为堆是有限的(例如64MB)。因此,如果它不断增长,并且您没有得到内存不足异常,那么它必须是本机库。