tomcat的运行的时候,GC进行内存回收,回收后的内存是还给OS还是还给JVM

07-03-18 luolaluola
为什么用jprofilter监视器得到的堆使用情况呈现一定的频率,堆示图显示规则锯齿状。一开始任务管理器显示所有进程内存500多m,过了一会儿任务管理器显示的内存使用数一直在增加,而任务管理器显示tomcat的内存保持在380m,但是系统所有进程内存已经1000多m,5~6个小时后之后系统提示虚拟内存不足,tomcat档掉!

服务器硬件环境:内存:512m,cpu P42.8双核

os:window server2003, database:sqlserver2000 (sp4)

tomcat5.5(-Xms128m -Xmx392m)

服务器监视器:JPROFILTER

客户端测试工具:jemter2.2 开一个线程组 里面有个80个线程,每隔4秒启动80个线程,也就是每个线程之间的间隔是4/80,http请求数10个

    

1
luolaluola
2007-03-18 16:33
补充一下,在系统还有显示虚拟内存之前,一直很稳定~~~ 速度很快,我通过jmeter查看到 平均值:2300-3050之间,偏离:1700左右

[该贴被bingochen于2007年03月18日 16:49修改过]

[该贴被bingochen于2007年03月18日 16:51修改过]

banq
2007-03-19 10:26
>5~6个小时后之后系统提示虚拟内存不足,tomcat档掉!

这表示你的应用程序存在内存泄漏,就是JVM垃圾回收机制无法回收你的对象了,需要全面check你的程序,可以通过JPROFILTER定位哪个类占用内存最多,问题就可能出在那里。

相关理论讨论:

jsp+javabean能否满足同时100人使用?

http://www.jdon.com/article/30437.html

aa123456789
2007-03-19 11:13
测试

[该贴被aa123456789于2007年03月19日 11:14修改过]

Coolyu0916
2007-03-19 12:05
可以参考一下gc的收取规则

通常来说约晚分配的内存越早回收,也就是尽量减少引用的次数,引用了之后就没不能立即回收了。

猜你喜欢
6Go 1 2 3 4 ... 6 下一页