爱妮不变

为了小妮的梦想而努力奋斗!

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  3 随笔 :: 14 文章 :: 13 评论 :: 0 Trackbacks

       昨天客户的系统又down了,打开log文件查看是由于OutOfMemory PermGen引起的。
回想前段时间也发生过同样的情况,当时已经在catalina.bat文件中java_opts项中设置了-XX:MaxPermSize=256m;选项。将原来的64M调整为256M,为什么还会因为Perm区过小导致OutOfMemory呢?是不是我的设置没有生效。由于我的tomcat是安装在windows平台上,而且是已service的方式启动,所有修改了catalina文件并不会生效。google搜索一把,发现service方式的参数需要在tomcat5W.exe文件中设置。
      于是,我打开此文件,在java_opts选项中增加了-XX:MaxPermSize=256m;选项。启动tomcat,window提示服务不能正常启动,faint!将刚才增加的选项去掉。启动正常,晕。
      再次google,发现需要将选项-XX:MaxPermSize=256m改为-DXX:MaxPermSize=256m,为什么?我也不清楚。照做先,再次启动服务,Ok。启动正常。
      接下来需要做的就是验证perm区是否是256M。
      另外,在java_opts选项中增加了-XX:+PrintGCDetails选项。希望打印gc的信息。
      由于web服务器是2CPU,而默认的回收策略比较适合单CPU的服务器,因此,接下来还要做的一件事就是改变回收策略。在java_opts选项中增加-XX:+UseConcMarkSweepGC参数即可。
      

posted on 2007-06-22 14:52 李志洋 阅读(745) 评论(1)  编辑  收藏

评论

# re: Java OutOfMemory PermGen 2007-07-12 17:00
懒鬼,你也更新一下撒.  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问