当前位置:编程学习 > JAVA >>

求救大神TOMCAT异常:java.lang.OutOfMemoryError: Java heap space

各位高手,小弟有一个jsp的web程序,放在单位的一台老服务器上面,服务器的内存是2G。

前几天网站突然登不上去,于是我检查了tomcat的日志,发现tomcat抛出了一个异常:java.lang.OutOfMemoryError: Java heap space 

于是我在网上搜了下,发现是jvm默认的堆内存大小是64MB。于是我按网上的方法,在tomcat6w.exe(我使用的是安装版的tomcat6),作了设置,设置如下图:



如图所示,我将initial memory pool设置成128M,Max memory pool设置成1G。

保存好后,但是今天网上又上不去了。查看日志,显示的还是java.lang.OutOfMemoryError: Java heap space 异常。

请教大神,这个该怎么解决?非常感谢! --------------------编程问答-------------------- 求回复,请各位大神帮忙 --------------------编程问答-------------------- 给你推荐几种方法:
1、换个大一点内存的服务器
2、initial和max都设置成1024M
3、如果还是经常的出现该问题,建议:检查一下你的代码,是不是那块有查询返回的list太大或者创建对象太多等其他编程问题(即创建的对象太多)
4、以上方法是通常方法,再不行,那你就需要真正的优化你的jre和tomcat --------------------编程问答-------------------- 谢谢楼上的回复,我等下试下设置成1024。这个WEB程序是一个同事东抄西抄来的,什么框架都没用,所以问题很多。 --------------------编程问答-------------------- java也存在内存溢出的, 用监控程序分析一下, 看看哪些对象占用了内存。 --------------------编程问答-------------------- 谢谢楼上的建议 --------------------编程问答-------------------- 继续求帮助 --------------------编程问答-------------------- 这个不是你的物理内存不够, 而是程序问题引起的。

实在找不到原因, 定期重启吧。 --------------------编程问答-------------------- --------------------编程问答-------------------- 感觉是 程序代码有不规范的地方 浪费了资源  --------------------编程问答-------------------- 可以看看程序中是不是无意中出现了死循环~~~~~ --------------------编程问答-------------------- 分配大内存不是解决问题的根本办法。通过LZ的描述,应该是某些地方出现了未释放的资源。赞同4L、9L的说法 --------------------编程问答-------------------- 重启服务器吧 --------------------编程问答-------------------- 如果调了还不行的话,估计是有的地方资源没有释放搞到越来越大,最好检测下代码 --------------------编程问答-------------------- 代码问题吧,1G还不够? 你让我内存1G的人情何以堪 --------------------编程问答-------------------- 可能是代码某个地方,无限循环 ,把内存耗光了吧 --------------------编程问答--------------------
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,