0 0

重新整理一下关于Tomcat问题:java.lang.OutOfMemoryError: PermGen space 0

这几天一直在上网找相关问题解决方案..
但是到的答案, 大部分都是增加JVM 内存.
方法:
在 catalina.bat 中增加:
set JAVA_OPTS=-server -Xms1024m -Xmx1024m -XX:PermSize=256m

JAVA_OPTS = "-server -Xms1024m -Xmx1024m -XX:MaxNewSize=256m"

JAVA_OPTS="-server -XX:PermSize=512M -XX:MaxPermSize=768m
之类的解决方案.
但是我已经讲其参数设置为
set JAVA_OPTS =-Xms10240m -Xmx10240m -XX:MaxPermSize=2560m
PS:主机内存16G CUP 8核 是志强E5606CPU
但是内存溢出现象仍然存在!
下面是错误信息...
大家还有什么解决办法???
比如快速排查java应用的内存使用情况>>

2013-3-11 14:45:43 org.apache.catalina.connector.CoyoteAdapter service
严重: An exception or error occurred in the container during the request processing
java.lang.OutOfMemoryError: PermGen space
        at java.lang.Throwable.getStackTraceElement(Native Method)
        at java.lang.Throwable.getOurStackTrace(Throwable.java:591)
        at java.lang.Throwable.printStackTrace(Throwable.java:510)
        at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:72)
        at org.apache.juli.FileHandler.publish(FileHandler.java:158)
        at java.util.logging.Logger.log(Logger.java:509)
        at java.util.logging.Logger.doLog(Logger.java:531)
        at java.util.logging.Logger.logp(Logger.java:731)
        at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:167)
        at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:135)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:274)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
2013-3-11 14:45:46 org.apache.catalina.connector.CoyoteAdapter service
严重: An exception or error occurred in the container during the request processing
java.lang.OutOfMemoryError: PermGen space
2013-3-11 14:45:52 org.apache.coyote.http11.Http11Processor process
严重: Error finishing response
java.lang.OutOfMemoryError: PermGen space
2013-3-11 14:45:52 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler process
严重: Error reading request, ignored
java.lang.OutOfMemoryError: PermGen space
2013-3-11 14:45:52 org.apache.catalina.connector.CoyoteAdapter service
严重: An exception or error occurred in the container during the request processing
java.lang.OutOfMemoryError: PermGen space

 

 


问题补充:2013-3-12 9:15:14 org.apache.catalina.connector.CoyoteAdapter service
严重: An exception or error occurred in the container during the request processing
java.lang.OutOfMemoryError: PermGen space
2013-3-12 9:21:14 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.6.0_41\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;D:\Java\jdk1.6.0_41\bin;D:\Java\jdk1.6.0_41\jre\bin;.
2013-3-12 9:21:14 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-83
2013-3-12 9:21:14 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 472 ms
2013-3-12 9:21:14 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2013-3-12 9:21:14 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.26
2013-3-12 9:21:25 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-83
2013-3-12 9:21:25 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8010
2013-3-12 9:21:25 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/16  config=null
2013-3-12 9:21:25 org.apache.catalina.startup.Catalina start
信息: Server startup in 10552 ms
2013-3-12 10:43:18 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.6.0_41\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;D:\Java\jdk1.6.0_41\bin;D:\Java\jdk1.6.0_41\jre\bin;.
2013-3-12 10:43:19 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-83
2013-3-12 10:43:19 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 473 ms
2013-3-12 10:43:19 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2013-3-12 10:43:19 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.26
2013-3-12 10:43:29 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-83
2013-3-12 10:43:29 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8010
2013-3-12 10:43:29 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/16  config=null
2013-3-12 10:43:29 org.apache.catalina.startup.Catalina start
信息: Server startup in 10536 ms
2013-3-12 11:10:52 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 11:11:05 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 12:56:08 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.6.0_41\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;D:\Java\jdk1.6.0_41\bin;D:\Java\jdk1.6.0_41\jre\bin;.
2013-3-12 12:56:08 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-83
2013-3-12 12:56:08 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 504 ms
2013-3-12 12:56:09 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2013-3-12 12:56:09 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.26
2013-3-12 12:56:24 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-83
2013-3-12 12:56:24 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8010
2013-3-12 12:56:24 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/16  config=null
2013-3-12 12:56:24 org.apache.catalina.startup.Catalina start
信息: Server startup in 15338 ms
2013-3-12 13:19:23 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 13:19:26 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 13:19:36 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 14:04:19 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 14:04:23 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 14:04:26 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 14:04:31 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk '' ignored.
2013-3-12 14:26:07 org.apache.coyote.http11.Http11Processor process
严重: Error processing request
java.lang.OutOfMemoryError: PermGen space
2013-3-12 14:33:13 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.6.0_41\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;D:\Java\jdk1.6.0_41\bin;D:\Java\jdk1.6.0_41\jre\bin;.
2013-3-12 14:33:13 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-83
2013-3-12 14:33:13 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 471 ms
2013-3-12 14:33:13 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2013-3-12 14:33:13 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.26
2013-3-12 14:33:25 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-83
2013-3-12 14:33:25 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8010
2013-3-12 14:33:25 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/16  config=null
2013-3-12 14:33:25 org.apache.catalina.startup.Catalina start
信息: Server startup in 11462 ms

问题补充:昨天换了一个JDK  ..换之前是:1.6.0_41 x64 的. 换成了. :1.6.0_21 x86 今天一天也没出现内存移除的情况>>> 觉得还是无法理解.
2013年3月11日 17:33

7个答案 按时间排序 按投票排序

0 0

   修改JVM的参数这个思路是正确的,就是要把-XX:PermSize=64M -XX:MaxPermSize=128m设大点,但问题是这个数字不能无限乱设定,设置很大却不起作用的原因可能是jvm认为这个参数值不合理,然后就用了默认值,默认值-XX:MaxPermSize=64m,所以仍然可能会出错。
   所以最保险的办法是用设置重启tomcat后,用jmap来观察是否起作用了,当前jvm到底是用什么数值。

2013年3月13日 15:12
0 0

你都设置这么大了内存还爆掉,当然要看是哪里耗了这么大内存了。

2013年3月13日 12:21
0 0

1.建议把启动比较全的日志贴出来,看看内存设置有没有起作用
2.如果已经起作用的话,这个溢出一般是在什么时候抛出?启动抛出还是运行一段时间抛出,简要介绍下项目中的结构和背景,然后我们在分析

2013年3月12日 09:48
0 0

我记得Xms和-Xmx这个是配置堆的大小
他和perm空间是反比的,内存像块蛋糕,堆空间多了方法区空间就少了,反之亦然。。

建议使用jconsole看看,是不是线程数一直彪上去,没有下来过?

2013年3月11日 22:57
0 0

你这异常报的是永久保存区域PermGen溢出,应该在catalina.bat 中将
-XX:PermSize=64M -XX:MaxPermSize=128m设大点

2013年3月11日 21:18
0 0

用JDK自带的那个jvisualvm.exe工具查看一下当前是什么地方占用的内存

2013年3月11日 20:54
0 0

相关推荐

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

    在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...

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

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

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

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

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

    ### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...

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

    Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的解决方案 在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于...

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    ### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...

    java.lang.OutOfMemoryError解决办法

    当应用程序加载大量类或者使用了大量的静态变量和常量时,PermGen space可能会耗尽,从而引发`java.lang.OutOfMemoryError: PermGen space`错误。对于频繁部署或重载JSP的Web应用,如Tomcat,这个问题尤为常见。 ...

    Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException)

    5. **增大PermGen或Metaspace大小**:如果你看到 `OutOfMemoryError: PermGen space` 或 `Metaspace`,这是方法区溢出,可以通过 `-XX:MaxPermSize` (对于老版本JVM) 或 `-XX:MaxMetaspaceSize` (对于Java 8及以后...

    java解决nested exception is java.lang.OutOfMemoryError Java heap space

    4. **调整PermGen空间**:在Java 8之前, PermGen 区域用于存储类的元数据,如果这个区域耗尽,会出现`java.lang.OutOfMemoryError: PermGen space`错误。在Java 8中,这部分被MetaSpace取代,可通过`-XX:...

    java.lang.OutOfMemoryError处理错误

    在Tomcat中java.lang.OutOfMemoryError: PermGen space异常处理: 1. PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的。 2. Class在被Loader...

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

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

    完美解决java.lang.OutOfMemoryError处理错误的问题

    - **解决方法**:Java 8之后,PermGen被Metaspace取代,处理方式类似。可以增加 Metaspace 的大小(`-XX:MaxMetaspaceSize`),或者限制加载的类数量,避免频繁加载新类。 在针对`OutofMemoryError`进行故障排查时...

    Tomcat–Java.Lang.OutOfMemoryE

    标题 "Tomcat–Java.Lang.OutOfMemoryError" 指的是在使用Apache Tomcat服务器运行Java应用程序时出现的一种常见错误,即“Java.lang.OutOfMemoryError”,特别是涉及到“PermGen Space”区域的问题。 PermGen...

    java.lang.OutOfMemoryError 错误整理及解决办法

    Java中的`java.lang.OutOfMemoryError`是一个严重的问题,它表示Java虚拟机(JVM)在尝试分配新的对象时没有足够的内存。这个错误通常会导致应用程序崩溃。本文将深入探讨这种错误的原因、常见类型以及解决策略。 *...

    关于java堆内存溢出的几种情况

    【情况三】:`java.lang.OutOfMemoryError: PermGen space` 此错误是因为持久代(PermGen)内存不足。在Java 8之前,PermGen用于存储类元数据和静态变量,当类加载过多或存在内存泄漏时可能发生溢出。解决方案是通过...

    解决Java_heap_space问题

    - 调整永久代(PermGen space,JDK 7及以前版本使用)或元空间(Metaspace,JDK 8及以上版本使用)大小。对于永久代,可以使用`-XX:PermSize`和`-XX:MaxPermSize`参数进行配置;对于元空间,则通过`-XX:...

    PermGen space

    特别是在Web应用环境下,如部署Web应用、使用JSP预编译等场景下,若配置不当,很容易触发`java.lang.OutOfMemoryError: PermGen space`异常。 #### 几个关键因素导致PermGen Space溢出: 1. **第三方库**:使用...

Global site tag (gtag.js) - Google Analytics