`
peter196
  • 浏览: 18204 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

jboss内存溢出的解决

阅读更多

1、

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 "


三、相关资料

/show/3/7/20061112220131.htm

/show/3/7/20061112220054.htm

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


摘自: http://www.wujianrong.com/archives/2006/12/javalangoutofmemoryerror_permg.html

分享到:
评论

相关推荐

    jboss内存溢出原因

    ### JBoss内存溢出原因分析 #### 一、概述 JBoss是一款开源的应用服务器,它支持多种企业级应用,如EJB(Enterprise JavaBeans)、JMS(Java Messaging Service)、JPA(Java Persistence API)等。在运行过程中,...

    解决MyEclipse下启动项目时JBoss内存溢出的问题

    本文将详细介绍如何解决MyEclipse中启动JBoss项目时遇到的内存溢出问题。 首先,我们需要理解JVM内存模型。JVM内存主要分为几个区域:堆(Heap)、方法区(Method Area)、栈(Stack)、程序计数器(PC Register)...

    jboss的性能优化

    通过深入研究和实践,找到了一些有效的解决方案来缓解甚至解决JBoss内存紧张的问题。 ##### 1. 修改`report.war`部署文件 在`.jboss\server\default\deploy\report.war`目录下,对部署文件进行了调整,虽然文中...

    jboss4.3 起步指南

    - **内存管理**:合理设置JVM参数,如初始堆大小、最大堆大小等,以避免因内存溢出导致的服务中断。 - **线程池配置**:通过调整线程池大小,可以有效提升系统响应速度。 - **监控工具集成**:利用JConsole等工具对...

    Apache安装及JBOSS部署说明文档.rar

    本文档描述了apache web服务器安装以及常用的编译模式;描述了apache jboss3.2.6做负载均衡(load ...5.关于多工程后,JBOSS会有内存溢出时的解决方案 25 6.Java, jre ,jdk 的安装 25 7.JBOSS服务的启动脚本 26

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

    本文将介绍Tomcat内存溢出的原因、常见情况以及如何调整内存大小以预防和解决内存溢出问题。 ### Tomcat内存设置问题 在使用Java程序从数据库中查询大量数据或是在Web应用服务器(如Tomcat、JBoss、WebLogic等)...

    JBOSS 备忘录 TIPS 操作手册

    然而,PermGen space的垃圾回收效率较低,因此在高负载应用或大量类加载的情况下,容易出现内存溢出。 解决此问题的方法是调整JVM参数,增加PermGen space的大小。例如,在`run.bat`文件中添加以下参数: ``` -Xms...

    TOMCAT内存大小调整

    TOMCAT内存大小调整是指在使用Java程序从数据库中查询大量数据或应用服务器(如Tomcat、JBoss、WebLogic)加载jar包时,出现java.lang.OutOfMemoryError异常的解决方法。这种异常主要是由于应用服务器的内存不足引起...

    JBOSS常见问题.docx

    5. **Java内存溢出** 遇到`java.lang.OutOfMemoryError`时,需要调整JVM参数。在Run.conf中增加如下设置: ``` JAVA_OPTS="-Xms1536m -Xmx1536m -XX:PermSize=512m -XX:MaxPermSize=512m -Xss256k \ -Dsun.rmi....

    JBossCache_讲解说明

    JBoss Cache是一种高效的企业级缓存解决方案,专门设计用于提高Java应用程序的性能和可用性。它不仅提供了强大的数据缓存能力,还支持集群环境下的数据一致性,使得它可以作为应用服务前端和数据库之间的中间层,...

    JBOSS集群........

    - **优化内存使用**:合理设置最大会话数量和超时时间,以避免内存溢出。 - **网络带宽优化**:根据实际情况调整会话复制频率,以减少网络负载。 #### 八、农耕(Farming) - **定义**:农耕是一种将任务分散到...

    Memory leak test

    若服务器内存泄漏问题没有得到解决,最终会导致服务器内存耗尽,并抛出内存溢出错误。 为了验证同步服务器是否存在内存泄漏以及确保服务器不会出现内存溢出错误,我们需要进行压力测试来获取相关数据并分析服务器的...

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

    在Java 8之后,永久代被移除,其功能被元空间(Metaspace)取代,以减少内存溢出问题。 当出现PermGen space错误时,通常有以下几种情况: 1. 应用程序加载了大量的类,导致永久代内存不足。 2. 在单个Tomcat实例...

    Java性能监控工具

    在遇到内存溢出问题时,我们经常使用`jmap -dump`来捕获堆内存快照,以便后续分析。 `jstack`提供了线程堆栈的快照,帮助我们诊断线程死锁或其他线程相关的问题。在Linux环境下,`jstack -l`会提供更详尽的信息。 ...

    实战JAVA虚拟机随书源码

    1. 堆内存溢出:源码中可能包含模拟堆内存溢出的场景,帮助我们理解如何通过JVM参数调整堆大小,以及如何使用JConsole、VisualVM等工具识别和解决此类问题。 2. 线程死锁:学习如何通过`jstack`命令查看线程状态,...

    jconsole使用手册

    1. 监控Tomcat服务器的性能,例如监控内存溢出问题。 2. 监控JBoss服务器的性能,例如监控内存使用率、线程数等。 jconsole的使用步骤包括: 1. 配置JVM参数,在catalina.bat文件中添加-Dcom.sun.management....

    java大字段转换

    处理大字段时需要特别注意内存管理,因为它们可能导致内存溢出(Out Of Memory)问题,影响应用的性能和稳定性。这篇博客文章可能详细探讨了如何在Java中有效地处理大字段,以及可能遇到的相关挑战。 1. **大字段...

    elearning性能测试总结报告

    - **问题5**:Java内存溢出错误,PermGen空间不足。调整JVM参数,包括增加堆内存、栈大小,调整PermGen空间,优化了Java应用的内存管理。 - **问题6**:JBoss日志显示所有线程繁忙。通过调整JBoss AJP Connector的...

    帮助网友解决一个drools的问题

    - 工作内存管理:合理控制工作内存大小,避免过多的数据导致内存溢出。 - 编译模式:使用增量或全量编译,根据项目需求选择合适的策略。 总之,Drools提供了一种强大而灵活的方式来管理业务规则。通过理解其工作...

Global site tag (gtag.js) - Google Analytics