系统的环境是
tomcat5.5
jdk5.0
win2000
8g内存 
出现的问题:
tomcat启动之后,用户访问一段时间,一开始内存是稳定的,没有什么大的变化,之后(这段时间不固定)tomcat内存开始暴涨,直到长满tomcat的最大内存限制。暴涨的时间很快,大约在5分钟之内就会占满内存。存在数据库操作,数据库为Oracle不知道是什么原因,大家给分析分析?谢谢啦

解决方案 »

  1.   


    补充:
    String 应为BufferString的问题,数据库连接释放的问题 都已经检查过了,但还是出现内存暴涨现象。
      

  2.   

    应该是与服务器配置无关
    典型的java内存溢出问题
    请不要过于相信java的垃圾回收机制,还是多从代码查查
    请根据一下文章对照检查下你的代码
    http://www.jsprun.net/thread-13323-1-1.html<------------------------------------------->
    最棒的免费的开源Java社区软件系统http://www.jsprun.net
      

  3.   

    现在Tomcat内存暴涨有个很奇怪的现象,在没有任何用户访问的情况下,内存依然会持续增加,差不多一天出现一次。我昨天晚上,23点30,重启Tomcat,今天早上过来,通过日志发现,从昨天晚上23点30到今天早上8点,没有任何人访问,没有任何操作,但内存依然持续上涨,达到1.5G左右,正常情况下不超过200M。而在8点多钟,有用户开始进行了操作,内存却突然被回收,下降到500M左右这是怎么回事。。
      

  4.   

    先用jconsole检测一下在下定论。
      

  5.   

    你的应用里面应该有,类似定时处理的程序吧。比如定时读取配置文件,清理自身tmp文件等等。当你这类程序,在某一特定情况下执行出现死循环(方法循环调用也是),而且你又使用static的东西作为
    数据存放的话。
    呵呵 出现你这种情况很正常。
      

  6.   

    做两个heapdump比较看看是那些内存对象在增长在确定那块儿的代码有问题了
      

  7.   

    我之前就是出现过类似的问题,就是内存溢出问题,你肯定有某些语句导致垃圾内存不断积累
    如果我记得没错的话,java内存积累到jvm的xmx设置一定比例后会直接上涨至最高点
    还有种情况就是对某个数据格式的解析错误
    不知道你内存上涨的时候cpu的使用率如何<------------------------------------------->
    最棒的免费的开源Java社区软件系统http://www.jsprun.net