jvm的问题 java.lang.OutOfMemoryError: requested 1146632 bytes for Chunk::new. Out of swap space

最近服务器上出现了一个问题,跑一段时间,jvm就会挂掉,错误信息如下:

 java.lang.OutOfMemoryError: requested 1146632 bytes for Chunk::new. Out of swap space

#
# Internal Error (allocation.cpp:215), pid=26822, tid=174123920
# Error: Chunk::new
#
# JRE version: 6.0_22-b04
# Java VM: Java HotSpot(TM) Server VM (17.1-b03 mixed mode linux-x86 )
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#

这个是jvm挂掉生成的错误日志文件

上网查了几篇文章,对我帮助很大

https://confluence.atlassian.com/pages/viewpage.action?pageId=219023686

http://sind.iteye.com/blog/1132459

仔细查看jvm的错误日志,会看到

Current thread (0x0a19f000):  JavaThread "CompilerThread1" daemon [_thread_in_native, id=26833, stack(0x0a58e000,0x0a60f000)]

Current CompileTask:

C2:3897      com.*.dao.BaseDaoImpl.getDaoSupport()Lcom/*/dao/support/DAOSupport; (694 bytes)

jvm崩溃之前的当前线程是:CompilerThread1,用于编译优化的,在编译BaseDaoImpl的getDaoSupport方法的时候,出错了,所以导致崩溃。

这个是jdk的一个bug,在6.0_22或者更低版本会有这个问题

解决方案:

   1、更换jdk版本,换到jdk 1.6.0_26或以上版本

   2、屏蔽掉错误类的编译,让jdk不做编译优化,在tomcat服务的catalina.bat中加入JVM_OPTS加上

     JAVA_OPTS=%JAVA_OPTS%  -XX:CompileCommand=exclude,com/*/dao/BaseDaoImpl,getDaoSupport

 

 

转载于:https://www.cnblogs.com/getting-better/p/3172029.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值