java转储和核心_java – 来自JVM核心文件转储的查询

JVM崩溃并创建了一个JVM核心pid文件.

我对JMV核心文件缺乏经验,所以我可以使用以下帮助.

我得到的错误是:

#

# A fatal error has been detected by the Java Runtime Environment:

#

# java.lang.OutOfMemoryError: requested 32756 bytes for ChunkPool::allocate. Out of swap space?

#

# Internal Error (allocation.cpp:117), pid=20119, tid=797133728

# Error: ChunkPool::allocate

#

# JRE version: 6.0_21-b06

# Java VM: Java HotSpot(TM) Server VM (17.0-b16 mixed mode linux-x86 )

# If you would like to submit a bug report, please visit:

# http://java.sun.com/webapps/bugreport/crash.jsp

#

And Heap memeory statistics is,

Heap

PSYoungGen total 248832K, used 123509K [0x89850000, 0x9efa0000, 0xb42f0000)

eden space 238656K, 47% used [0x89850000,0x90701918,0x98160000)

from space 10176K, 99% used [0x98ab0000,0x9949bea0,0x994a0000)

to space 56448K, 0% used [0x9b880000,0x9b880000,0x9efa0000)

PSOldGen total 699072K, used 404738K [0x342f0000, 0x5eda0000, 0x89850000)

object space 699072K, 57% used [0x342f0000,0x4ce30870,0x5eda0000)

PSPermGen total 29056K, used 28878K [0x302f0000, 0x31f50000, 0x342f0000)

object space 29056K, 99% used [0x302f0000,0x31f23be8,0x31f50000)

JVM arguments,

VM Arguments:

jvm_args: -Xms1024M -Xmx2048M -verbose:gc -XX:+HeapDumpOnOutOfMemoryError -Xss128k -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintCommandLineFlags -XX:+HeapDumpOnOutOfMemoryError

--------------- S Y S T E M ---------------

OS:Red Hat Enterprise Linux AS release 4 (Nahant Update 6)

uname:Linux 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686

libc:glibc 2.3.4 NPTL 2.3.4

rlimit: STACK 10240k, CORE infinity, NPROC 274431, NOFILE 4096, AS infinity

load average:1.32 1.50 1.52

CPU:total 4 (2 cores per cpu, 1 threads per core) family 15 model 65 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, mmxext, 3dnow, 3dnowext

Memory: 4k page, physical 16631944k(115380k free), swap 18940592k(18614440k free)

vm_info: Java HotSpot(TM) Server VM (17.0-b16) for linux-x86 JRE (1.6.0_21-b06), built on Jun 22 2010 01:04:46 by "java_re" with gcc 3.2.1-7a (J2SE release)

time: Sat Dec 24 11:09:25 2011

elapsed time: 84994 seconds

基于核心文件的上述细节,

1)约18GB的交换空闲,任何想法为什么错误是“超出交换空间?”?情况应该不是这样.只有物理内存非常低,只有~115 MB的可用空间.

2)在16 GB的物理内存中,只有2 GB分配给JVM.但根据统计数据,几乎16 GB是完全使用的,只有115 MB是免费的.所以,其他过程也会占用内存.我应该检查这个方向吗?

3)理想情况下,JVM将创建和处理java对象,并且还必须创建自己的本机库对象.哪个内存将用于JVM自己的本机对象.它将在指定的堆限制内分配,还是将完全分配到堆外?

如果能够回答上述问题以便我理解和分析,那将会非常有用.

最佳答案 你只有2gb分配给你的应用程序,所以如果内存超过它,你会得到一个OOM异常

jvm_args:-Xms1024M -Xmx2048M – >这个很重要

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值