宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒
« »
2010-01-06Java

1,731 Views

java.lang.OutOfMemoryError: PermGen space及其解决方法

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误这种错误常见在web服务器对JSP进行pre compile的时候
改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
2
在tomcat中redeploy时出现outofmemory的错误.
可以有以下几个方面的原因:
1,使用了proxool,因为proxool内部包含了一个老版本的cglib.
2, log4j,最好不用,只用common-logging
3, 老版本的cglib,快点更新到最新版
4,更新到最新的hibernate3.2

3

这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理
一java.lang.OutOfMemoryError: PermGen space
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对
PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候如果你的WEB APP下都用了大量的第三方jar, 其大小
超过了jvm默认的大小(4M)那么就会产生此错误信息了
解决方法: 手动设置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在echo “Using CATALINA_BASE: $CATALINA_BASE”上面加入以下行:
JAVA_OPTS=”-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的
二java.lang.OutOfMemoryError: Java heap space
Heap size 设置
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,
其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4可以利用JVM提供的-Xmn -Xms -Xmx等选项可
进行设置Heap size 的大小是Young Generation 和Tenured Generaion 之和
提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值
解决方法:手动设置Heap size
修改TOMCAT_HOME/bin/catalina.sh
在echo “Using CATALINA_BASE: $CATALINA_BASE”上面加入以下行:
JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:MaxNewSize=256m”
三实例,以下给出1G内存环境下java jvm 的参数设置参考:
JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true ”

三相关资料
题外话:经常看到网友抱怨tomcat的性能不如…,不稳定等,其实根据笔者几年的经验,从”互联星空到现在的房产门户网,我们
均使用tomcat作为WEB服务器,每天访问量百万多,tomcat仍然运行良好建议大家有问题多从自己程序入手,多看看java的DOC文档
并详细了解JVM的知识这样开发的程序才会健壮

随机日志

  • 2009年中国IT行业大事记
    2009年就要结束了,该是总结的时候了 一、手机类: 1 android已经升级很多版了,中国移动也出了ophone了,但这两者问题都不少。 2 大家都模仿iphone硬件和iphone应用商店 3 iphone上的应用大部分都是游戏。大量的手机淘金者也都感叹iphone上比较难出人头地了。不过大家还是期望着做国外软件。国内的不付费市场让人遗憾,大家都建议做外国软件比较好赚钱 4 手机扫黄,不仅扫了黄,还断了其他正规SP的收费。错杀一千不漏一人 5 移动支付,仍然不温不火。移动自...
  • 如何成为优秀的产品经理?
      产品经理是网站的核心人员,是把产品的构想变为实施蓝图的设计师。产品经理一直是互联网中最稀缺的人才。   表面上,似乎谁都可以做产品经理,因为谁对网站的功能和界面都可以提一点意见,但是这些需求可能往往是个人的偏好,并不代表绝大多数用户的核心需求。表面上很容易的事情,实际上却需要很多综合素质,产品经理不是偏才,真正好的产品经理一直稀有的。   那么,产品经理需要哪些能力?如何打造成为一个好的产品经理呢?产品经理首先需要一些基础的能力。   第一种能力,强大的逻辑分析能力。逻辑分析能力对事情的分类、...
  • putty:Linux远程管理的最佳利器
    对linux进行远程管理,我个人喜欢用putty。因为它是个短小精悍的工具,完全可以满足你的使用需求。SecureCRT不止一次听说过, 也不止一次试用过:发现它有标签功能的时候用过;发现它不用借助其它工具可以直接上传下载文件的时候用过;发现别人用它来管理cisco的时候也再次用过。不知道是不是先入为主的原因,就是一直没有喜欢上它,相反却觉得特别不顺手,还特别生气这么难使的东东还要收费!直到两个月前使用多台虚拟机进行实验的时候,终于忍受不了putty要开N个窗口,再次下载了SecureCRT。不经意间竟发现原来她是...
  • 大项目、小项目都是程序员成熟之道
    一下子就跨到了新年,时间真快呀!言归正传,今天谈谈项目问题。 我们常听到同行说自己做过什么项目,说某某做过什么项目。一谈到项目就会眉飞色舞,兴高采烈。而不少新进单位的新大学生、一些编程新手,往往不知道什么项目,不知道项目与自己成长的关系,有的甚至声称编程好几年了,还都没有做过项目的经历。情况确实如此,只有参加过项目的程序员才是真正的程序员。那些没有做过项目的虽然自己编制了不少程序,虽然得意过自己的程序,但是,毕竟和做过项目的程序员有很大的差别,这些差别主要在于: 1、 程序的价值 没有做过项目的程...
  • [转]10件安装WordPress后需要做的事
    这又是一篇介绍安装WordPress之后需要做的事情,这是一个系列教程,Wopus系统能通过这个教程让各位菜鸟能学到东西,各位在看教程的过程中有任何疑问,欢迎留言。...

日志信息 »

该日志于2010-01-06 21:00由 Alpha 发表在Java分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

相关日志 »

随机日志

  • EA与Rose UML建模工具比较
              EA与Rose UML建模工具比较  自从1997年正式发布UML以后,大量商用UML建模CASE工具粉墨登场。这样为我们提供了许多的选择,同时也要求我们在选择正确的UML建模工具以更好地适应我们业务和软件应用程序开发需求,达到最好的投资回报率(ROI)方面做大量的调查。在这篇文章中,我们将比较两款CASE工具的UML建模能力、双向工程特性和项目生命周期支持:Sparx Systems的Enterprise Architect(EA)专业版V.3.51和IBM Rational的Rational...
  • 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
    现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。 ...
  • linux下搭建SVN服务器完全手册–很强大的牛人写的
    很详细,很好,很强大,好喜欢,绝对不是我原创,转载自:http://blog.chinaunix.net/u3/94705/showart_2260521.html 系统环境 RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum 一,安装必须的软件包. yum install subversion (SVN服务器) mysql-server (用于codestriker) httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务...
  • MYSQL 字符集问题
    前一段时间,一直被mysql的字符集困扰,今天就这方面的知识总结一下. MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation)。 对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。 1.MySQL默认字符集 MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。...
  • 2010年IT十大人物猜想
    王建宙 我们今年的用户数字是百万级的,到10月份是400万,到年底是500万,明年是千万级的数字,在2009年12月中移动TD终端产品发布会上,中移动总裁王建宙满怀自信,表示将通过加大在TD终端的销售上的激励和补贴,让TD走向普及。已经59岁的王建宙能否让这家网络规模、用户数量全球第一的电信企业,在3G时代完整创造出一条国标产业链并创造新的第一? 朱骏 尽管公司的收入亏损还无法在短时期内得到恢复,但公司在研发上的投资继续加强,研发能力仍在持续提高,自主研发的游戏已经取得了实质性的进展。丧失《魔兽世...

没有评论

发表评论 »

返回顶部