4

我从崩溃日志中得到了这个..看起来当时可用内存超低(1020k),是不是内存太少造成的?

我有 10g RAM,我的 GC 设置是: -Xmx5g -XX:NewRatio=3 -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseAdaptiveSizePolicy -XX:MaxGCPauseMillis=700.

有人可以给我一些提示吗?谢谢!

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f220198ce10, pid=26470, tid=1154627904
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# J  com.twitter.typeahead.server.topic.TopicTypeAheadController$2.onSuccess(Lcom/twitter/typeahead/common/MetastoreResult;)V
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

Current thread (0x00007f21f2ce0800):  JavaThread "New I/O client worker #1-18" [_thread_in_Java, id=26628, stack(0x0000000044c23000,0x0000000044d24000)]


siginfo:si_signo=SIGSEGV: si_errno=0, si_code=2 (SEGV_ACCERR), si_addr=0x00007f2200e4616a

Registers:
RAX=0x00000006bae61950, RBX=0x00000007fafe2be0, RCX=0x0000000000000000, RDX=0x00000006bbe2d580
RSP=0x0000000044d22180, RBP=0x00000006bae61950, RSI=0x00000006bae61950, RDI=0x00007f220198ccf0
R8 =0x00000000d77c5ab0, R9 =0x00000006bbd0a190, R10=0x00000000035df16a, R11=0x00007f21fd867000
R12=0x0000000000000000, R13=0x0000000044d22180, R14=0x0000000000000001, R15=0x00007f21f2ce0800
RIP=0x00007f220198ce10, EFL=0x0000000000010207, CSGSFS=0x0000000000000033, ERR=0x0000000000000006
  TRAPNO=0x000000000000000e

Register to memory mapping:

RAX=0x00000006bae61950

[error occurred during error reporting (printing registers, top of stack, instructions near pc), id 0xb]

Stack: [0x0000000044c23000,0x0000000044d24000],  sp=0x0000000044d22180,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
4

1 回答 1

0

I don't think you are running out of memory. This is an error for a segfault in the JVM.

Try reading these stackoverflow posts. They should point you in the right direction:

Java VM: reproducable SIGSEGV on both 1.6.0_17 and 1.6.0_18, how to report?

how to debug SIGSEGV in jvm GCTaskThread

Well unless the JVM has a bug where it is hitting a segfault or a buffer overrun without first crashing on not enough stack memory remaining, try setting -Xss (the per thread stack size) to a higher value.

于 2013-03-09T00:10:24.620 回答