浏览 1172 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-29
最后修改:2009-10-29
近段时间经常发生内存耗尽的错误,发生的时间不定,有的在操作过程中,有时候放着不动就报错: ------------------------------- 2009-10-27 5:23:02 org.apache.catalina.core.ApplicationDispatcher invoke 严重: Servlet.service() for servlet jsp threw exception java.lang.OutOfMemoryError: Java heap space ------------------------------ 这个问题相当奇怪也严重,这里分享下排查这个问题的经过: 1 jprofiler监控启动的tomcat 2 打开首页,首页正常显示 3 这时查看内存情况,发现一个list一直占用50M内存, 4 寻找此到此list调用的action,最终找到了原因 原来此调用时一个异步的调用,里面有个sql由于限定条件错误,执行会比较耗时,会取出相当大的记录,如果此记录来生成json格式返回则直接把堆内存耗尽,故出现OutOfMemoryError, 由于GridPanel异步调用数据当timeout后会不再加载,页面看起来似乎没有错误,其实后台仍然在执行中,这个时间差造成我们判断上的误区。 不过同时我也发现了jprofiler果然是大杀器,功能强!系统调优的好帮手 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |