日期:2014-05-18  浏览次数:20742 次

tomcat内存不回收的问题
现在我的服务器配置是Linux+Tomcat5.5+apache2.0,然后跑一个Web应用,但是用Jmeter测试的时候发现Jmeter停止之后,Tomcat的内存占用率一直不下来,而且再开有会不断往上加,照理说GC应该会回收之前没用的对象,释放内存,但是为什么Tomcat没有释放?不可能我用的所有对象都存在内存漏洞吧.所以我想请教一下大家写代码的时候怎么控制代码没有内存漏洞,还有就是Tomcat或者JVM在多久后会回收内存,因为我的Server开了2天都没见内存下来.
还有奇怪的问题就是重起Tomcat之后,系统的内存总是清不干净,比如第一次启动Tomcat的时候,系统内存总共占用了280M,跑完一会儿Jmeter之后内存到了400M,然后停止JMeter,发现内存占用的还是400M,没有下来,然后关闭Tomcat,发现内存回到了320M,但是我就是不知道剩下的40M为什么没有回收,那些内存到哪里去了,而且试过很多次,发现每次Tomcat重起都会有残留的内存没有被回收,系统占用的内存就这样越来越多,有谁能帮忙解决下吗?谢谢大家了!

------解决方案--------------------
up
------解决方案--------------------
上次好像问过呃
------解决方案--------------------
帮你顶起
做个记号等看结果
------解决方案--------------------
你用Jmeter测试后,Tomcat不会立即释放内存,要等Session失效后(默认20分钟)才会回收;
还有,你那40M是不是被Apache吃了
------解决方案--------------------
up一下
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
是否session application等对象用的过多了