`

Apusic下java.lang.OutOfMemoryError:PermGen space

阅读更多

应用部署在apusic下连续出现java.lang.OutOfMemoryError:PermGen space的问题,系统运行几个小时就会挂掉。google了了一下,发现该问题主要是由于内存使用引起的。正常的解决方法是设置web服务器如:tomcat,apusic等的启动参数,进行内存分配。最主要的是设置好-XX:MaxPermSize=256m这个参数。
打开bin下的startapusic,
[root@localhost bin]# vi startapusic
STATUS_MODE="HELP"
elif [ "$1" = "--help" ] ; then
STATUS_MODE="HELP"
elif [ "$1" = "help" ] ; then
STATUS_MODE="HELP"
fi

if [ "$STATUS_MODE" = "HELP" ] ; then

echo "Usage: startapusic [options]"
echo "where startapusic options include:"
echo " startapusic start apusic in normal mode."
echo " startapusic -d[ebug] start apusic in debug mode."
echo " startapusic -d[ebug]s start apusic in debug suspending mode."
echo " startapusic -p[roduct] start apusic in product mode."
echo " startapusic -v[erbose] show environment variables for apusic server startup."

exit
fi

#Change the value of JVM_OPTS variable when starting apusic in product mode.
JVM_OPTS="-server -Xms512m -Xmx1024m -XX:MaxPermSize=512m"

最下面一行,调整
-XX:MaxPermSize到合适的值

附:

1.PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。这部分主要用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用同时加载很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。

2. -Xms设置java虚拟机初始化时使用的堆内存大小,
-Xmx设置java虚拟机可以使用的最大堆内存.
-XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4.

一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/3的-Xmx值


3. 对于非堆内存的解释,按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。

分享到:
评论

相关推荐

    Apusic服务器解决数据源的资源引用

    在Apusic服务器中,数据源的资源引用通常采用JNDI(Java Naming and Directory Interface)技术实现,常见的命名格式为`java:comp/env/`加上自定义的资源名称。 例如: ``` ds = (DataSource) ctx.lookup("java:...

    金蝶中间件Apusic-plugins.zip

    Apusic中间件是金蝶公司推出的一款企业级应用服务器,它提供了高效、稳定且可扩展的运行平台,支持Java EE标准,广泛应用于企业级应用的开发和部署。 在压缩包中,我们可以看到以下几个主要的文件: 1. **AASv9-...

    EAS_Apusic_2021.7z

    Apusic是领先的中间件提供商,其EAS产品是为企业级应用提供运行环境的重要软件平台,它支持Java EE规范,能够运行基于Java技术的应用程序。 Java EE,全称为Java Platform, Enterprise Edition,是Oracle公司主导的...

    金蝶中间件Apusic MyEclipse10.x、MyEclipse9.x和Eclipse all-plugins

    金蝶中间件Apusic MyEclipse10.x、MyEclipse9.x以及Eclipse all-plugins是一组专门设计用于提升Java开发效率的工具集合。这些工具主要用于集成到MyEclipse和Eclipse开发环境中,以支持更高效、便捷的Java应用程序...

    Apusic SQLServer的调优记录

    <SERVICE CLASS="com.apusic.util.ThreadPoolService" NAME="Apusic:service=ThreadPool,name=MuxHandler"> <SERVICE CLASS="com.apusic.util.ThreadPoolService" NAME="Apusic:service=ThreadPool,name=...

    管理Apusic Web服务器

    管理 Apusic Web 服务器的配置文件 apusic.conf 位于安装目录下的 config 目录中,该配置文件包含了 Web 服务器的配置段。通过修改配置段中的可配置属性,可以对 Web 服务器进行管理。 Web 服务器的属性包括: 1. ...

    使用Jprofiler监控Apusic应用服务器.pdf

    具体而言,这涉及修改`APUSIC_HOME/bin`目录下的`startapusic.cmd`文件,引入必要的JProfiler连接指令。同时,应将JProfiler的bin目录路径添加至系统环境变量Path中,确保工具的可执行性。 #### 监控Apusic应用...

    金蝶ESB企业服务总线7.0用户手册

    - **com.apusic.esb.bpm.schedule.ErrorProcessScannerLifeCycleListener**: 错误处理扫描器生命周期监听器。 综上所述,金蝶ESB企业服务总线7.0是一套全面的企业级服务集成解决方案,提供了丰富的功能特性和配置...

    spring-hr.zip_hr_hr java_spring_spring jsf

    【标题】"spring-hr.zip" 是一个包含与人力资源(HR)系统开发相关的项目压缩包,其中使用了Java Spring框架以及JSF(JavaServer Faces)技术。这个项目的重点在于整合Spring框架的灵活性和JSF的用户界面处理能力,...

    jocky(org.apusic.jocky_1.0.3.jar)

    org.apusic.jocky_1.0.3.jar是一个专为Java应用程序设计的混淆工具,旨在保护源代码不被轻易反编译和理解,从而提升软件的安全性。本文将详细阐述Jocky的基本概念、功能以及使用方法。 首先,让我们了解什么是混淆...

    2021年通用apusic license——5用户数

    2021年通用apusic license,适用于apusic9.0以上EAS(EAS8.0以上版本一般都可用),有效期到2021年12月31日。此apusic为5个连接数

    AOM 初体验(一)

    标题"AOM初体验(一)"以及描述中提到的工程打包下载,暗示了这是一个关于应用开发和集成环境的讨论,特别是涉及到AOM(可能是Apusic Application Object Model,一种中间件平台)的使用。标签"源码"和"工具"进一步...

    金蝶容器重新部署war包过程详细阐述

    金蝶容器Apusic,是中国金蝶集团开发的一种企业级中间件容器,它支持Java应用的运行和管理。在金蝶容器中重新部署war包,往往是为了更新应用或者修复bug。 接下来,根据文档的描述,我们来详细探讨重新部署war包的...

    Apusic密码修改指引

    3. **登录Apusic控制台检查部署的应用,除EAS、EASWeb、fileserver、jportal等已知应用外,是否有其他未知应用部署。** **注意事项:** - 对于发现的可疑文件或应用,应及时进行隔离或删除,并进一步调查来源。 ##...

    Linux环境下使用Apache搭建Apusic应用服务器集群

    1. **修改AAS配置**:编辑`DOMAIN_HOME/config/apusic.conf`文件,调整相应的端口和服务属性。 2. **配置Apache**:在Apache的配置文件中,如`httpd.conf`,添加适当的代理和负载均衡规则,以指向AAS集群的不同节点...

    金蝶中间件Apusic Eclipse/MyEclipse插件 all-plugins

    金蝶中间件Apusic Eclipse/MyEclipse插件是一组专为开发者设计的工具,用于在Eclipse和MyEclipse集成开发环境中进行便捷的调试和开发工作。这些插件极大地扩展了Eclipse和MyEclipse的功能,使得在金蝶中间件上进行...

    Apusicforeclipse.zip

    【标题】"Apusic for Eclipse.zip" 是一个专门为Eclipse集成开发环境设计的插件,旨在帮助开发者在Eclipse平台上无缝地使用金蝶天碟Web中间件(Apusic)进行应用开发。金蝶天碟Web中间件是一款企业级的、高性能的、...

    2024年临时apusic许可

    APUSIC的临时许可对于那些希望在不长期投入的情况下测试或短期使用其EAS产品的组织非常有用。它可能特别适合于项目团队,他们需要在一定期限内快速部署和运行应用程序,而无需购买完整的永久许可证。这种许可模式有...

Global site tag (gtag.js) - Google Analytics