tomcat调优

闲去野鹤 2013-11-26 10:24:43
tomcat的outofmemery一直困扰到现在,我从数据库取的数据量也并不是很大,最多也就50万条左右,还不到2M的数据。怎么就会堆内存溢出呢?
问tomcat如何调配,才能不让他outofmemery?请各大仙指点。
...全文
528 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq342959202 2013-12-04
  • 打赏
  • 举报
回复
qq342959202 2013-12-04
  • 打赏
  • 举报
回复
建议你使用JDK自带的工具(C:\Program Files\Java\jdk1.6.0_10\bin\jvisualvm.exe),可以查看一下,你的内存中,具体是什么对象占用了大量的内存
qq342959202 2013-12-04
  • 打赏
  • 举报
回复
引用 8 楼 u010684923 的回复:
[quote=引用 5 楼 qq342959202 的回复:] 50 W条数据和50W个对象, 你看看两者的区别把。
我这里一条数据就是一个对象[/quote] 既然你一条数据就是一个对象,那么你50W个对象就不是简单的50W条数据那么简单了,(将数据实例成对象后,占用内存将急剧上升,而且还要在内存开一个足够大的连续空间给你。) 再给举一个例子,1000个对象和1000个对象组成的线性结构,你觉得哪个占用的空间大,会大多少!
dafengche2k8 2013-12-01
  • 打赏
  • 举报
回复
碰到jvm内存的问题,推荐大家仔细看一看http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html。
纳兰弦歌 2013-12-01
  • 打赏
  • 举报
回复
韦三少 2013-11-30
  • 打赏
  • 举报
回复
果然强悍啊,下载我再试试看
知之知 2013-11-30
  • 打赏
  • 举报
回复
引用 10 楼 baohuan_love 的回复:
如果确定是jvm内存异常,可以做如下调整: tomcat安装目录下的bin目录(如:f:\Program Files\Apache Software Foundation\Tomcat 6.0\bin)下有一个tomcat6w.exe,双击运行后,设置java选项卡中的三个参数(Initial memory pool、Maximum memory pool和Thread stack size)即可。
正好能解决我的问题,谢啦
  • 打赏
  • 举报
回复
楼主的问题还没解决吗
q44725546 2013-11-29
  • 打赏
  • 举报
回复
楼主 你用的是什么技术?我之前也遇到了 50W的数据才2M么 好小啊
闲去野鹤 2013-11-28
  • 打赏
  • 举报
回复
引用 2 楼 huxiweng 的回复:
你确定就是tomcat out of memory吗?
确定,还是堆内存溢出
闲去野鹤 2013-11-28
  • 打赏
  • 举报
回复
引用 5 楼 qq342959202 的回复:
50 W条数据和50W个对象, 你看看两者的区别把。
我这里一条数据就是一个对象
lkq_david 2013-11-28
  • 打赏
  • 举报
回复
用jvisualvm查看下具体占用内存的情况,具体是哪些对象占的内存大,导致溢出的
  • 打赏
  • 举报
回复
引用 11 楼 u010684923 的回复:
[quote=引用 10 楼 baohuan_love 的回复:] 如果确定是jvm内存异常,可以做如下调整: tomcat安装目录下的bin目录(如:f:\Program Files\Apache Software Foundation\Tomcat 6.0\bin)下有一个tomcat6w.exe,双击运行后,设置java选项卡中的三个参数(Initial memory pool、Maximum memory pool和Thread stack size)即可。
这个头一回看到,试下.[/quote] 我以前做一个项目,客户导出报表,偶尔就内存溢出,我就是用这个方法,把三个参数分别设置为原来的2倍,问题解决了。
闲去野鹤 2013-11-28
  • 打赏
  • 举报
回复
引用 10 楼 baohuan_love 的回复:
如果确定是jvm内存异常,可以做如下调整: tomcat安装目录下的bin目录(如:f:\Program Files\Apache Software Foundation\Tomcat 6.0\bin)下有一个tomcat6w.exe,双击运行后,设置java选项卡中的三个参数(Initial memory pool、Maximum memory pool和Thread stack size)即可。
这个头一回看到,试下.
  • 打赏
  • 举报
回复
如果确定是jvm内存异常,可以做如下调整:
tomcat安装目录下的bin目录(如:f:\Program Files\Apache Software Foundation\Tomcat 6.0\bin)下有一个tomcat6w.exe,双击运行后,设置java选项卡中的三个参数(Initial memory pool、Maximum memory pool和Thread stack size)即可。
无聊找乐 2013-11-27
  • 打赏
  • 举报
回复
用jvm的参数,设置内存就好了
临碣 2013-11-27
  • 打赏
  • 举报
回复
用了HashMap或者ArrayList? 那样可不止50万哦
qq342959202 2013-11-27
  • 打赏
  • 举报
回复
50 W条数据和50W个对象, 你看看两者的区别把。
oh_Maxy 2013-11-26
  • 打赏
  • 举报
回复
最好把catalina.out详细日志发出来看看。 另外,tomcat扩大初始化、最大内存,还是很好搜的。
teemai 2013-11-26
  • 打赏
  • 举报
回复
你确定就是tomcat out of memory吗?
加载更多回复(2)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧