免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3206 | 回复: 6
打印 上一主题 下一主题

Tomcat 内存溢出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-09 09:13 |只看该作者 |倒序浏览
服务器运行一段时间后就报这个

java.heap.space



服务器上运行的是个网站 JSF写的网站..


只能重新启动TOMCAT 才行...



谁遇到过相似的问题? 帮忙分析分析

论坛徽章:
0
2 [报告]
发表于 2007-10-09 11:31 |只看该作者
java -gc /pathToGCFile.log

论坛徽章:
0
3 [报告]
发表于 2007-10-09 16:31 |只看该作者
Use java -Xmx to increase the smallest default JVM heap size

论坛徽章:
0
4 [报告]
发表于 2007-10-11 17:17 |只看该作者

达内技术论坛 www.tarena.com.cn

可能是你的某个程序运行时一次执行大容量的数据,而这些数据一次性被写到了内存。
比如从数据库中读取10w条记录,或者上传了一个几十M大小的文件,这个时候往往会导致内存溢出。

解决:
一、增加JVM堆设置

JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。在JVM中如果Heap size 不足2%的时候将抛出此异常信息。

JVM在启动的时候会自动设置Heap size的值,Heap Size 最大不要超过可用物理内存的80%。

参数:-Xms64M   -Xmx256M   

  tomcat   
     
    catalina.bat         
     
  中:     set   JAVA_OPTS=%JAVA_OPTS%   -Xms256M   -Xmx800M   -XX:MaxPermSize=256M         
实际数值根据的机器内存性能配置


二、程序优化
1、检测你的代码中是否存在一次性从数据库中读取10w条记录,优化数据的读取,如分批分页读
2、如果有上传文件功能,则控制文件的大小。

论坛徽章:
0
5 [报告]
发表于 2007-10-11 17:18 |只看该作者
本人认为是这样,呵呵

论坛徽章:
0
6 [报告]
发表于 2007-10-12 17:00 |只看该作者
没有意件了

论坛徽章:
0
7 [报告]
发表于 2007-10-15 09:32 |只看该作者
谢谢 我们现在也是在努力优化我们的程序

还在解决中 最近还没出现情况

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP