hs_err_pid.log分析

  • hs_err_pid.log簡介

java程序崩潰以后,會(huì)在java程序的主目錄(如果配置了參數(shù)-XX:ErrorFile,則在對(duì)應(yīng)目錄下)生成一個(gè)hs_err_pid.log的日志,該文件記載了本次程序奔潰的可能原因及崩潰時(shí)刻jvm的相關(guān)信息.

  • log的內(nèi)容

一般hs_err_pid.log文件可以分為以下幾個(gè)部分:

  1. 崩潰事件簡要分析
  2. 崩潰時(shí)刻正在運(yùn)行的線程
  3. jvm里面的所有線程
  4. 內(nèi)存的使用情況
  5. GC日志
  6. JVM內(nèi)存映射
  7. jvm參數(shù)
  8. 服務(wù)器信息

下面以我之前的一個(gè)項(xiàng)目為例:

  • 崩潰事件簡要分析

崩潰事件簡要分析

# 出現(xiàn)奔潰的直接原因
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 12288 bytes for committing reserved memory.
# 出現(xiàn)奔潰的底層原因或者可能原因
# 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.
# 奔潰時(shí)候執(zhí)行到哪行Linux哪行代碼
# Out of Memory Error (os_linux.cpp:2726), pid=41, tid=140554500867840
# jvm的情況
# JRE version: Java(TM) SE Runtime Environment (7.0_55-b13) (build 1.7.0_55-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.55-b03 mixed mode linux-amd64 compressed oops)
# Core dump written. Default location: /opt/jetty/jetty/core or core.41
#

  • 崩潰時(shí)刻正在運(yùn)行的線程

崩潰時(shí)刻正在運(yùn)行的線程

Current thread (0x00007fd5cb683800): JavaThread "pool-97706-thread-1" [_thread_new, id=55726, stack(0x00007fd565148000,0x00007fd565189000)](從這里可以看出,此刻正在創(chuàng)建一個(gè)新線程,他的線程名為pool-97706-thread-1, id = 55726, 申請(qǐng)的棧地址為 0x00007fd565148000,0x00007fd565189000 )
Stack: [0x00007fd565148000,0x00007fd565189000], sp=0x00007fd565187780, free space=253k
(在我的jvm參數(shù)設(shè)置中,棧大小為256,但是這里剩余空間只有253,所以導(dǎo)致了OOM)

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) [J:程序java代碼 j:注釋 V:jvm代碼 C: 系統(tǒng)c代碼]
V [libjvm.so+0x99305a] VMError::report_and_die()+0x2ea
V [libjvm.so+0x4931fb] report_vm_out_of_memory(char const, int, unsigned long, char const)+0x9b
V [libjvm.so+0x8134be] os::Linux::commit_memory_impl(char, unsigned long, bool)+0xfe
V [libjvm.so+0x81357c] os::pd_commit_memory(char
, unsigned long, bool)+0xc
V [libjvm.so+0x80b76a] os::commit_memory(char, unsigned long, bool)+0x2a
V [libjvm.so+0x811a9d] os::pd_create_stack_guard_pages(char
, unsigned long)+0x6d
V [libjvm.so+0x946cbe] JavaThread::create_stack_guard_pages()+0x5e
V [libjvm.so+0x94d754] JavaThread::run()+0x34
V [libjvm.so+0x815668] java_start(Thread*)+0x108

  • jvm里面的所有線程

jvm中所有線程

Java Threads: ( => current thread )
=>0x00007fd5cb683800 JavaThread "pool-97706-thread-1" [_thread_new, id=55726, stack(0x00007fd565148000,0x00007fd565189000)]{剛剛上線分析的java線程}
0x00007fd5cb67f800 JavaThread "pool-97697-thread-1" [_thread_blocked, id=55724, stack(0x00007fd565391000,0x00007fd5653d2000)]{可以看出線程被鎖}
0x00007fd5cb67e800 JavaThread "pool-97696-thread-1" [_thread_blocked, id=55723, stack(0x00007fd56520b000,0x00007fd56524c000)]
0x00007fd5cb67d000 JavaThread "pool-97686-thread-1" [_thread_blocked, id=55722, stack(0x00007fd565189000,0x00007fd5651ca000)]
0x00007fd5cb67b000 JavaThread "pool-97685-thread-1" [_thread_blocked, id=55721, stack(0x00007fd5651ca000,0x00007fd56520b000)]
...
0x00007fda7c443800 JavaThread "qtp1800203021-12-selector-ServerConnectorManager@5d59a011/2" [_thread_in_native, id=65, stack(0x00007fda56ccd000,0x00007fda56d0e000)]{線程正在運(yùn)行}

  • 內(nèi)存的使用情況

內(nèi)存使用情況

Heap
par new generation total 655360K, used 250307K [0x00000006b0000000, 0x00000006e0000000, 0x00000006e0000000)[新生代]
eden space 524288K, 36% used [0x00000006b0000000, 0x00000006bba212c0, 0x00000006d0000000)[Eden區(qū)]
from space 131072K, 45% used [0x00000006d8000000, 0x00000006dba4fa68, 0x00000006e0000000)
to space 131072K, 0% used [0x00000006d0000000, 0x00000006d0000000, 0x00000006d8000000)[兩個(gè)survivor區(qū)]
concurrent mark-sweep generation total 4456448K, used 271797K [0x00000006e0000000, 0x00000007f0000000, 0x00000007f0000000)[老年代]
concurrent-mark-sweep perm gen total 262144K, used 47058K [0x00000007f0000000, 0x0000000800000000, 0x0000000800000000)[永久代]
Card table byte_map: [0x00007fda7857f000,0x00007fda79000000] byte_map_base: 0x00007fda74fff000
[card table是jvm維護(hù)的一種數(shù)據(jù)結(jié)構(gòu)笙各,用于記錄更改對(duì)象時(shí)的引用戴甩,以便gc時(shí)遍歷更少的table和root科盛。]
Code Cache [0x00007fda79000000, 0x00007fda79730000, 0x00007fda7c000000)
total_blobs=2413 nmethods=1929 adapters=436 free_code_cache=41943Kb largest_free_block=42851776
[存放本地代碼緩存]

  • gc日志

gc日志分析

GC Heap History (10 events):[最近10次gc事件]
Event: 93727.171 GC heap before [gc日志前]
{Heap before GC invocations=66 (full 0):
par new generation total 655360K, used 587162K [0x00000006b0000000, 0x00000006e0000000, 0x00000006e0000000)
eden space 524288K, 100% used [0x00000006b0000000, 0x00000006d0000000, 0x00000006d0000000)
from space 131072K, 47% used [0x00000006d0000000, 0x00000006d3d66b70, 0x00000006d8000000)
to space 131072K, 0% used [0x00000006d8000000, 0x00000006d8000000, 0x00000006e0000000)
concurrent mark-sweep generation total 4456448K, used 264278K [0x00000006e0000000, 0x00000007f0000000, 0x00000007f0000000)
concurrent-mark-sweep perm gen total 262144K, used 47008K [0x00000007f0000000, 0x0000000800000000, 0x0000000800000000)
Event: 93727.266 GC heap after [gc日志后]
Heap after GC invocations=67 (full 0):[程序啟動(dòng)以來第67次調(diào)用gc]
par new generation total 655360K, used 62286K [0x00000006b0000000, 0x00000006e0000000, 0x00000006e0000000)
eden space 524288K, 0% used [0x00000006b0000000, 0x00000006b0000000, 0x00000006d0000000)
from space 131072K, 47% used [0x00000006d8000000, 0x00000006dbcd3b10, 0x00000006e0000000)
to space 131072K, 0% used [0x00000006d0000000, 0x00000006d0000000, 0x00000006d8000000)
concurrent mark-sweep generation total 4456448K, used 265714K [0x00000006e0000000, 0x00000007f0000000, 0x00000007f0000000)
concurrent-mark-sweep perm gen total 262144K, used 47008K [0x00000007f0000000, 0x0000000800000000, 0x0000000800000000)
}

  • JVM內(nèi)存映射

內(nèi)存映射

7fda82fdc000-7fda82ffc000[內(nèi)存區(qū)域] r-xp[權(quán)限 r/w/x/p/s 讀/寫/執(zhí)行/私有/共享] 00000000[文件內(nèi)的偏移量] fd:0d[文件位置的majorID和minorID
] 5243254[索引節(jié)點(diǎn)號(hào)] /lib64/ld-2.12.so[文件位置]
7fda82ffc000-7fda82ffe000 r--s 00008000 fd:0d 5768906 /opt/jetty/jetty/lib/apache-jstl/org.apache.taglibs.taglibs-standard-spec-1.2.1.jar
7fda82ffe000-7fda8300d000 r--s 001a0000 fd:0d 5768901 /opt/jetty/jetty/lib/apache-jsp/org.eclipse.jetty.orbit.org.eclipse.jdt.core-3.8.2.v20130121.jar
7fda8300d000-7fda83016000 r--s 00251000 fd:0d 5506936 /opt/jdk/jre/lib/resources.jar
7fda83016000-7fda83018000 r--s 00019000 fd:0d 5375143 /opt/jetty/jetty/start.jar
7fda83018000-7fda83107000 rw-p 00000000 00:00 0
7fda83107000-7fda831aa000 rw-p 00000000 00:00 0
7fda831aa000-7fda831b2000 rw-s 00000000 fd:0d 5247511 /tmp/hsperfdata_root/41
7fda831b2000-7fda831b5000 ---p 00000000 00:00 0
7fda831b5000-7fda831f7000 rw-p 00000000 00:00 0
7fda831f7000-7fda831f8000 r--s 00002000 fd:0d 5768900 /opt/jetty/jetty/lib/apache-jsp/org.eclipse.jetty.apache-jsp-9.2.13.v20150730.jar
7fda831f8000-7fda831f9000 rw-p 00000000 00:00 0
7fda831f9000-7fda831fa000 r--p 00000000 00:00 0
7fda831fa000-7fda831fb000 rw-p 00000000 00:00 0
7fda831fb000-7fda831fc000 r--p 0001f000 fd:0d 5243254 /lib64/ld-2.12.so
7fda831fc000-7fda831fd000 rw-p 00020000 fd:0d 5243254 /lib64/ld-2.12.so

  • vm參數(shù)

VM Arguments:
jvm_args: -Djetty.home= -Djetty.base= -Dsun.rmi.transport.tcp.responseTimeout=1000 -Djava.io.tmpdir=/opt/jetty/jetty/webapps/tmp.d -Xloggc:/gc.log -Dfile.encoding=UTF-8 -Xms5120m -Xmx5120m -Xmn768m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:SurvivorRatio=4 -Xss256k -Djava.net.preferIPv4Stack=true -XX:+UseParNewGC -XX:+UseAdaptiveSizePolicy -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+CMSParallelRemarkEnabled -Djava.awt.headless=true -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:ParallelGCThreads=6 -XX:+DisableExplicitGC -Djetty.state=/opt/jetty/jetty/jetty.state -Djetty.logs=/opt/jetty/jetty/logs -Djetty.home=/opt/jetty/jetty -Djetty.base=/opt/jetty/jetty -Djava.io.tmpdir=/opt/jetty/jetty/webapps/tmp.d
java_command: /opt/jetty/jetty/start.jar jetty-logging.xml jetty-started.xml
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/opt/jdk
CLASSPATH=.:/opt/jdk/lib/dt.jar:/opt/jdk/lib/tools.jar
PATH=/opt/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
此處不細(xì)述

  • 系統(tǒng)信息

--------------- S Y S T E M ---------------
OS:CentOS release 6.7 (Final)[系統(tǒng)信息]
uname:Linux 4.9.39 #1 SMP Mon Mar 19 10:58:26 CST 2018 x86_64
libc:glibc 2.12 NPTL 2.12
rlimit: STACK 8192k, CORE infinity, NPROC 1048576, NOFILE 1048576, AS infinity
load average:0.72 0.90 1.07

/proc/meminfo:[內(nèi)存信息]
MemTotal: 264033112 kB
MemFree: 188255128 kB
MemAvailable: 215839472 kB
Buffers: 2158028 kB
Cached: 26534044 kB
SwapCached: 0 kB
Active: 46946620 kB
Inactive: 25130056 kB
Active(anon): 42320448 kB
Inactive(anon): 1288664 kB
Active(file): 4626172 kB
Inactive(file): 23841392 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194300 kB
SwapFree: 4194300 kB
Dirty: 8024 kB
Writeback: 0 kB
AnonPages: 43350948 kB
Mapped: 530880 kB
Shmem: 225328 kB
Slab: 1693536 kB
SReclaimable: 966800 kB
SUnreclaim: 726736 kB
KernelStack: 574464 kB
PageTables: 125512 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 136210856 kB
Committed_AS: 91928692 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 38322176 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
Hugepagesize: 2048 kB
DirectMap4k: 206916 kB
DirectMap2M: 18544640 kB
DirectMap1G: 251658240 kB

[cpu信息]
CPU:total 24 (6 cores per cpu, 2 threads per core) family 6 model 63 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, erms, ht, tsc, tscinvbit

/proc/cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
stepping : 2
microcode : 0x36
cpu MHz : 2294.238
cache size : 15360 KB
physical id : 0
siblings : 12
core id : 0
cpu cores : 6
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 15
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln pts
bugs :
bogomips : 4788.85
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妇多,一起剝皮案震驚了整個(gè)濱河市贤惯,隨后出現(xiàn)的幾起案子洼专,更是在濱河造成了極大的恐慌,老刑警劉巖孵构,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屁商,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡颈墅,警方通過查閱死者的電腦和手機(jī)蜡镶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恤筛,“玉大人官还,你說我怎么就攤上這事《咎常” “怎么了望伦?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長煎殷。 經(jīng)常有香客問我屯伞,道長,這世上最難降的妖魔是什么豪直? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任劣摇,我火速辦了婚禮,結(jié)果婚禮上弓乙,老公的妹妹穿的比我還像新娘末融。我一直安慰自己钧惧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布勾习。 她就那樣靜靜地躺著垢乙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪语卤。 梳的紋絲不亂的頭發(fā)上追逮,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音粹舵,去河邊找鬼钮孵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛眼滤,可吹牛的內(nèi)容都是我干的巴席。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼诅需,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼漾唉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起堰塌,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤赵刑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后场刑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體般此,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年牵现,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了铐懊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞎疼,死狀恐怖科乎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贼急,我是刑警寧澤茅茂,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站竿裂,受9級(jí)特大地震影響玉吁,放射性物質(zhì)發(fā)生泄漏照弥。R本人自食惡果不足惜腻异,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望这揣。 院中可真熱鬧悔常,春花似錦影斑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至残邀,卻和暖如春皆辽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芥挣。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來泰國打工驱闷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人空免。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓空另,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹋砚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扼菠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容