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

相关推荐

Global site tag (gtag.js) - Google Analytics