慎用java 6u25 6u26

本文讨论了服务器在启动不久后崩溃的问题,详细分析了日志中关于内存不足导致Java运行时环境无法继续运行的错误信息。文章进一步解释了这一问题背后的技术原理,并提供了两种解决方案:更新Java虚拟机版本或添加启动参数来避免内存泄露。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天,原来公司的一个同事的服务器遇到了一个问题。服务器在启动不久以后,突然的crash,并且在log中有如下的记录:

#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 1066656 bytes for Chunk::new
# Possible reasons:
#   The system is out of physical RAM or swap space
#   In 32 bit mode, the process size limit was hit
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Use 64 bit Java on a 64 bit OS
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
#  Out of Memory Error (allocation.cpp:317), pid=7684, tid=776207248
#
# JRE version: 6.0_26-b03
# Java VM: Java HotSpot(TM) Server VM (20.1-b02 mixed mode linux-x86 )

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

Current thread (0x2f3df800):  JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=7699, stack(0x2e3bf000,0x2e440000)]

Stack: [0x2e3bf000,0x2e440000],  sp=0x2e43cfb0,  free space=503k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x7248b0]

  这个问题原来还真没遇到过。查了一下资料,貌似是java 6u25以及6u26存在的一个bug。这个bug应该是涉及到逃逸分析方面的。具体描述请看http://stackoverflow.com/questions/6344546/java-6-update-25-vm-crash-insufficient-memory

解决的方案有两种,一种是换java虚拟机版本,另外一种是添加启动参数:-XX:-DoEscapeAnalysis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值