`
hntjzln
  • 浏览: 8540 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

PermGen space内存溢出

 
阅读更多
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大小,如果是linux系统,修改TOMCAT_HOME/bin/catalina.sh,如果是windows系统,修改TOMCAT_HOME/bin/catalina.bat,
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m

建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的(tomcat6直接放到tomcat/lib下)

其他:JAVA_OPTS='-server -Xms1024m -Xmx1024m XX:PermSize=128M -XX:MaxPermSize=256M'
-server表示以server模式运行(运行效率比默认的client高很多,自己云去测试),-Xms256m是最小内存,-Xmx512m是最大内存,其中的256与512可根据你自己的内存做相应调整,PermSize/MaxPermSize最小/最大堆大小.一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置

目前使用
# $Id: catalina.sh 1146097 2011-07-13 15:25:05Z markt $
# -----------------------------------------------------------------------------
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m 
-Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m 
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"
# OS specific support.  $var _must_ be set to either true or false.
分享到:
评论

相关推荐

    解决OutOfMemoryError: PermGen space

    #### 二、PermGen space溢出的原因 PermGen space发生内存溢出的主要原因有: 1. **加载大量类**:如果应用程序或第三方库加载了大量类,那么PermGen space可能会很快被填满。 2. **动态代理**:使用诸如CGLIB或...

    Tomcat出现_PermGen_space解决方案

    《深入解析Tomcat PermGen Space问题及解决方案》 在Java应用程序的运行过程中,尤其是对于Web服务器如Tomcat来说,...同时,合理组织应用的类加载结构,减少不必要的类加载,也能有效防止 PermGen space 内存溢出。

    eclipse 内存溢出解决办法

    假设在使用Spring框架结合Hibernate持久层技术时遇到PermGen Space内存溢出的问题,通常是因为Spring AOP使用了CGLIB动态代理技术,这会动态生成大量类,进而消耗更多的PermGen Space资源。解决此类问题时,除了增大...

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案

    总之,"java.lang.OutOfMemoryError: PermGen space"错误是由于Java虚拟机的 PermGen 区域内存不足造成的,可以通过增大 PermGen 区域的大小、升级JVM版本、优化类加载和库的使用等方式来解决。对于任何内存管理问题...

    PermGen space

    #### 几个关键因素导致PermGen Space溢出: 1. **第三方库**:使用某些第三方库(如proxool、cglib等)可能由于其内部机制大量消耗PermGen Space。 2. **日志框架**:如log4j或其他日志系统,若不适当配置,也可能...

    jboss内存溢出原因

    1. **PermGen Space(永久代)内存溢出**:当JVM的永久代空间不足时,会抛出`java.lang.OutOfMemoryError: PermGen space`异常。 2. **Heap Space(堆空间)内存溢出**:当JVM的堆空间不足时,会抛出`java.lang....

    Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案

    解决 Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的关键是增加 JVM 的内存空间,通过添加合适的参数,可以避免 PermGen space 溢出,确保项目的稳定运行。

    java.lang.OutOfMemoryError: PermGen space

    《Java中的PermGen空间及其内存溢出问题》 在Java编程中,我们常常会遇到一个让人头疼的问题,那就是“java.lang.OutOfMemoryError: PermGen space”错误。这个错误提示表明,应用程序在运行过程中,内存的永久代...

    解决JVM中得PermGen spac问题

    GC(Garbage Collection)不会在主程序运行期对 PermGen space 进行清理,这意味着如果应用程序加载了很多 Class,那么 PermGen space 就可能会溢出,导致 OutOfMemoryError。 解决 PermGen space 问题的方法: 1....

    myeclipse内存溢出问题解决方案

    内存溢出问题在Java开发中是一个常见的问题,尤其是在使用集成开发环境如MyEclipse时,由于资源消耗较大,可能会频繁出现。本文主要讨论如何解决MyEclipse中的内存溢出问题以及相关的Java内存管理知识点。 首先,...

    TOMCAT内存大小调整

    OutOfMemoryError: PermGen space异常是由于 PermGen space 内存溢出引起的。解决方法是手动设置MaxPermSize大小。在Tomcat以bat方式启动时,需要修改TOMCAT_HOME/bin/catalina.sh文件,加入以下行:`JAVA_OPTS="-...

    解决OutOfMemoryError内存溢出

    1. **PermGen Space内存溢出**: - PermGen Space是用于存储类元数据的空间,当系统中加载了过多的类且未被卸载时容易出现此类问题。 - 解决方案是增加PermGen Space的大小,可以通过设置`-XX:PermSize`和`-XX:...

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat

    Java内存不足PermGen space错误探究.pdf

    Java内存不足PermGen space错误通常出现在Java程序运行过程中,尤其是当Java EE服务器(如Tomcat、JBoss等)加载WAR或EAR包时。这个错误的根本原因在于Java虚拟机(JVM)的永久代(Permanent Generation Space)内存...

    Tomcat JVM内存优化(Linux环境)

    这些问题通常表现为`java.lang.OutOfMemoryError`异常,具体又分为两类:`PermGen space`内存溢出和`Java heap space`内存溢出。本文将详细探讨这两种内存溢出的原因、解决方案以及如何进行JVM内存优化。 #### Perm...

    OutOfMemoryError-PermGen-space-的解决方案亲测有效

    针对上述问题,可以采取以下措施来解决PermGen space溢出的问题: 1. **调整JVM参数**: - 在`catalina.bat`文件中添加JVM参数来增加PermGen空间的大小。例如,可以在文件的适当位置加入: ```bat set JAVA_OPTS...

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

    本文将针对两种常见的Java内存溢出错误——`java.lang.OutOfMemoryError: PermGen space`和`java.lang.OutOfMemoryError: Java heap space`进行详细的分析和解决方案的探讨。 首先,我们来看`java.lang....

Global site tag (gtag.js) - Google Analytics