其他分享
首页 > 其他分享> > JVM :Native memory allocation 导致JVM Crash

JVM :Native memory allocation 导致JVM Crash

作者:互联网

原因: 主机进程开的太多了,占用太多的运行内存,导致jvm在运行时没有充足的内存可以占用

解决方法:关闭程序运行时其他无关的软件或者扩充主机的内存

当然,还有引起异常的其他原因,jvm会生成一个日志文件,里面会有可能的原因,大家根据自己的实际情况进行排查。

我这个程序是没有问题的,突然产生以下错误,所以很容易排查到是运行内存不够的原因。


#Java Runtime Environment没有足够的内存来继续。
#本机内存分配(malloc)无法为Chunk :: new分配1754384字节
#可能的原因:
#系统超出物理RAM或交换空间
#在32位模式下,进程大小限制被命中
# 可能的解决方案:
#减少系统上的内存负载
#增加物理内存或交换空间
#检查交换后备存储是否已满
#在64位操作系统上使用64位Java
#减少Java堆大小(-Xmx / -Xms)
#减少Java线程的数量
#减少Java线程堆栈大小(-Xss)
#使用-XX设置更大的代码缓存:ReservedCodeCacheSize =
#此输出文件可能被截断或不完整。

#Out of Memory Error(allocation.cpp:390),pid = 11664,tid = 0x0000000000004bec

#JRE版本:Java(TM)SE运行时环境(8.0_191-b12)(版本1.8.0_191-b12)
#Java VM:Java HotSpot(TM)64位服务器VM(25.191-b12混合模式windows-amd64压缩oops)
#无法编写核心转储。默认情况下,在客户端版本的Windows上未启用小型转储

--------------- T H R E A D ---------------

当前线程(0x000000001b510800):JavaThread“C2 CompilerThread0”守护程序[_thread_in_native,id = 19436,stack(0x000000001b6d0000,0x000000001b7d0000)]

堆栈:[0x000000001b6d0000,0x000000001b7d0000]
[错误报告期间发生错误(打印堆栈边界),id 0xc0000005]

本机帧:(J =已编译的Java代码,j =已解释,Vv = VM代码,C =本机代码)


当前CompileTask:
C2:12111 3505 4 org.springframework.asm.ClassReader :: accept(1164字节)


--------------- P R O C E S S ---------------

Java线程:( =>当前线程)
  0x000000001aa92800 JavaThread“Druid-ConnectionPool-Destroy-1489322191”守护进程[_thread_blocked,id = 20436,stack(0x000000001ff10000,0x0000000020010000)]
  0x000000001bab8800 JavaThread“Druid-ConnectionPool-Create-1489322191”守护进程[_thread_blocked,id = 13984,stack(0x000000001fb50000,0x000000001fc50000)]
  0x000000001bab8000 JavaThread“Abandoned connection cleanup thread”守护进程[_thread_blocked,id = 20024,stack(0x000000001ea00000,0x000000001eb00000)]
  0x000000001bab7000 JavaThread“Keep-Alive-Timer”守护程序[_thread_blocked,id = 9824,stack(0x000000001e4f0000,0x000000001e5f0000)]
  0x000000001bab9800 JavaThread“Timer-0”守护程序[_thread_blocked,id = 10960,stack(0x000000001e3f0000,0x000000001e4f0000)]
  0x000000001bab5800 JavaThread“2056418216 @ qtp-1805013491-1”[_thread_blocked,id = 18468,stack(0x000000001d320000,0x000000001d420000)]
  0x000000001baba000 JavaThread“601008104 @ qtp-1805013491-0”[_thread_blocked,id = 13380,stack(0x000000001d220000,0x000000001d320000)]
  0x000000001b5ce800 JavaThread“服务线程”守护程序[_thread_blocked,id = 2968,stack(0x000000001c9a0000,

 

标签:Java,thread,JavaThread,stack,allocation,JVM,Crash,id,blocked
来源: https://blog.csdn.net/IBLiplus/article/details/88022348