`
dxh031
  • 浏览: 20729 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jboss OutOfMemoryError : PermGen space

阅读更多

最近在把在 tomcat 5.5 上开发的项目 deploy 到 JBoss 4.2 上时,在操作一段时间就会出现 java.lang.OutOfMemoryError: PermGen space,开始以为是代码中存在死循环的地方造成这样的问题,但是后来发现,出问题的地方都是随机的,并不是某一处造成这样的问题出现,怀疑是内存泄露,通过增大 heap 内存的方法来尝试,依然不行,但是同样的问题却并没有在 tomcat 中出现过,难道是 JBoss 的问题?

在网上做了一番搜索得到一些相关的内容。

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的时候。

改正方法,在 run.bat 中加入:-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

因为项目中引用了很多的 jar 包,而这些 jar 包中的 class 信息会被 JBoss 的 class loader 加载到 PermGen space 区域,在 JVM 默认的情况下,该部分空间的大小只有 4M,在 jar 包非常多的情况下,显然是不够用的,所以通过 -XX:MaxPermSize=256m 指定最大值后即可解决问题。

另外,如果 heap 内存不足出现 java.lang.OutOfMemoryError: Java heap space 时,可以通过 -Xmx512m 指定最大 heap 内存来解决这样的问题。

分享到:
评论

相关推荐

    TOMCAT内存大小调整

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

    jboss内存溢出原因

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

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

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

    JBoss实战:服务器配置指南(JBoss in action)

    ### JBoss实战:服务器配置指南(JBoss in action) #### JBoss 5 应用服务器简介 JBoss 5 应用服务器是一款基于Java企业版(Java EE 5)的应用服务器,提供了大多数企业应用程序所需的服务,例如安全性、事务处理...

    JBOSS 备忘录 TIPS 操作手册

    在JBoss部署过程中,可能会遇到`OutOfMemoryError: PermGen space`的错误。这主要是由于永久代(Permanent Generation space)内存不足导致的。在Java虚拟机(JVM)中,PermGen space用于存储类元数据信息,例如类的...

    JBoss篇:安装与配置

    JBoss篇:安装与配置 一、安装与配置 在本文中,我们将下载和安装 JBoss 4.2.1.GA 版本。下载地址为 http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=16942&release_id=523619。下载完成...

    jboss-logging-3.4.1.Final-API文档-中文版.zip

    赠送jar包:jboss-logging-3.4.1.Final.jar; 赠送原API文档:jboss-logging-3.4.1.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.1.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.1.Final....

    JBoss实战:服务器配置指南

    ### JBoss实战:服务器配置指南 #### JBoss服务器概述 JBoss AS(Application Server)是一款开源的Java EE应用服务器,提供了全面的企业级服务,包括EJB容器、Web容器、JMS服务、集群与负载均衡等功能。它支持...

    JBoss Seam: Simplicity and Power Beyond Java EE

    ### JBoss Seam: Simplicity and Power Beyond Java EE #### 一、Seam简介与特点 **JBoss Seam** 是一款强大的开源框架,它在**Java EE** 的基础上提供了更为简单且功能强大的开发方式,旨在简化企业级应用的开发...

    jboss-logging-3.4.3.Final-API文档-中文版.zip

    赠送jar包:jboss-logging-3.4.3.Final.jar; 赠送原API文档:jboss-logging-3.4.3.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.3.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.3.Final....

    TOMCAT内存溢出及大小调整的实现方法

    尤其是在Web服务器进行JSP预编译时,若WEBAPP下使用的第三方jar包数量超过了JVM默认大小(默认是4MB),则会产生OutOfMemoryError: PermGen space错误。解决此问题的方法是通过设置MaxPermSize参数,来手动增加Perm...

    jboss-logging-3.4.2.Final-API文档-中文版.zip

    赠送jar包:jboss-logging-3.4.2.Final.jar; 赠送原API文档:jboss-logging-3.4.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.2.Final....

    jboss-logging-3.3.2.Final-API文档-中文版.zip

    赠送jar包:jboss-logging-3.3.2.Final.jar; 赠送原API文档:jboss-logging-3.3.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.3.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.3.2.Final....

    JBoss 3.0 Quick Start Guide

    ### JBoss 3.0 快速入门指南 #### 概述 《JBoss 3.0 快速入门指南》是一本专为希望快速掌握 JBoss 3.0 应用服务器安装、配置及基本使用的开发人员编写的实用手册。本书由 JBoss Group 的成员 Andreas Schaefer ...

    java抓取网页部分源码-jbosstools-vpe:JBoss工具::可视化页面编辑器{vpe}

    java网页抓取部分源码JBoss 工具可视化页面编辑项目 概括 Visual Page Editing 提供了一个编辑器,它具有基于 XML 的文档的源代码和可视化预览,它还包含 BrowserSimulator,用于像移动浏览器一样编辑/查看您的项目...

    jboss7:JBoss 7 手册

    默认['jboss']['home'] jboss 的默认位置 default['jboss']['version'] 默认下载版本 默认['jboss']['url'] 下载地址 默认['jboss']['user'] 默认jboss 用户 = 用法: 接受 作者:Sascha Moellering 版权所有:...

    jbosstools:一些与JBoss AS配合使用的工具

    JBoss安装脚本jbosstools是脚本和示例的集合,以及如何配置JBoss AS和JBoss EAP的示例。先决条件JBoss版本必须为7或更高版本。 Unix风格的操作系统。 在Linux(Fedora,RHEL,Ubuntu),Solaris上测试快速开始将...

    jboss配置内存大小[定义].pdf

    另外,JVM还有其他内存区域,如栈内存(`-Xss`)和持久代(PermGen space)。栈内存用于存储每个线程的局部变量,可以通过`-Xss`参数调整其大小,例如设置为`-Xss128k`,表示每个线程的栈大小为128KB。持久代是JVM...

Global site tag (gtag.js) - Google Analytics