|
|
|
令人郁闷的Memory Leak!请进来讨论
|
2004年09月24日 10:08
|
|
|
标签列表
内存泄漏(26)
|
|
我现在有一个这样的应用: 一个新闻网站(稿件数目前约为4万,是Jsp页面),网站的服务器使用了Tomcat4.1.30,JDK使用1.4.2-b05
先前部署在Linux EAS 3.0下,不到一个小时Tomcat就会挂掉,看错误日志是OutOfMemory,把JVM的内存加到512M(-Xmx512m)也不管用, 增加 LD_ASSUME_KERNEL=2.2.5(或2.4.19) export LD_ASSUME_KERNEL 也不行,Java进程使用内存大概到170M左右肯定就死掉了
因此怀疑是Tomcat在Linux下有问题,于是就把系统放到放到了Window Server family下,倒是可以支持很长时间,但是很是会撑死,这时候Java进程大概使用了250M左右的内存
应用的特殊性:Web容器放是的Jsp页面,更新比较频繁,而且量也比较大,整个网站的访问量大概在3万/天
现在怀疑是不是Tomcat在编译Jsp或处理并发请求上有问题,请各位多多指教,谢谢!
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月24日 10:49
|
|
|
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月24日 11:03
|
|
|
|
java代码写的不好,肯定会造成内存的泄漏,可惜啊,我只能看你的代码才能确定你的问题
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月24日 11:08
|
|
|
banq老大:
程序问题是最先被怀疑的,我做过测试: 稿件JSP中不做任何业务逻辑,就把这些Jsp当作Html来对待, 结果还是老是撑死...才会怀疑是Tomcat的问题的
谢谢
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月24日 13:15
|
|
|
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月24日 13:29
|
|
|
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月24日 23:01
|
|
|
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月27日 10:04
|
|
|
我对单独的Tomcat Server,不太放心 毕竟只是一个Web服务器
很多动作,不仅仅是在Web上做的, 所以,我一直不单独使用Tomcat,而是使用JBoss+tomcat
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月28日 08:44
|
|
|
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月28日 10:07
|
|
|
又看了一下 你的问题
感觉程序的问题的可能性比较大。 为什么一到170M左右就死?
我想,如果单是java的内存的问题的话不会在170M/250M死掉, 直到达到java内存上限
也就是说,可能是数据库(如果使用了) 或者并发问题。 更新频繁?是什么更新频繁? 页面?还是数据? 还是其他的? 如果是更新频繁,那么说明Tomcat cache满足不了要求。 如果是数据,那么就是取数据的程序的问题了。
这个问题你要向banq请教吧。 jdon这么快
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月28日 10:13
|
|
|
谢谢SportsBaby1980 兄的关注!!
我说的页面频繁更新,因为这是个新闻网站, 每天都有大量新闻页面发布出来,每个新闻页面是一个JSP, 其中JSP中两处包含了业务逻辑: include了一个Check.jsp进行用户校验 放了一个href去连一个Servlet来进行点击量统计,
现在的问题是:我把Check.jsp换成了空页面,Servlet中也不坐任何业务逻辑, 若稿件页面不停更新,Tomcat会挂掉, 若没有新的稿件页面,则Tomcat正常.....
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月28日 10:41
|
|
|
呵呵
是这个样子啊?
那么多JSP, 要知道JSP从发布到,运行起来,中间有很多过程: 首先要编译 这一个最麻烦的了,因为编译很慢。 你稿件是40K左右个, 那么,一天要新增几个?
为什么不换一下实现的形式呢? 把新闻放到数据库中,这不更好吗?
|
|
|
|
|
|
Re: 令人郁闷的Memory Leak!请进来讨论
|
2004年09月28日 11:00
|
|
|
每天新增的稿件可能有300左右吧, 因为系统是一个CMS,从稿件的采集、编辑、管理到发布,是一个比较庞大的系统,因此改变已有的实现方式是不大现实的, Jsp本身是根据数据库中的内容生成的,
生成的Jsp独立的组成了新闻Web站点,与我们的CMS系统再无联系了。
现在想这样来做,不知是否可行: 放一个Servlet,这个Servlet接收参数,该参数表明想看的Jsp页面的路径,然后Servlet根据该路径取得Jsp文件的内容,在把内容写倒Response的Out中去,
这样做的假设是:Tomcat在编译Jsp时会有MemoryLeak,而使用这样的方式来绕过Jsp的编译。
请各位指教!
|
|
|
|