1. 程式人生 > >Java進程突然掛掉排查分析手記(jvm bug)

Java進程突然掛掉排查分析手記(jvm bug)

情況 html lan https tid 重要 images osc 參數

故障:11.56 Zabbix收到告警,系統業務一個java進程掛了,今日正好值班遇到,做個分析手記,可以供大家參考。

排查1:查看系統資源情況

技術分享圖片
主要發現此刻CPU均突然增長,swap內存也有所增長但是並非資源耗盡的情況。此刻想到了Linux進行OOM-killer機制。

排查2:查核系統內核是否觸發oom機制。
日誌:/var/log/message --一般oom信息這裏會找到,但是排查沒有相關kill和內存信息。參考命令dmesg
了解:https://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html

排查3:java應用程序觸發的oom
這個找了應用本身的log,發現並沒有“java.lang.OutOfMemoryError: Java heap space”等信息
可查看JVM參數 -XX:+HeapDumpOnOutOfMemoryError 和 -XX:HeapDumpPath及是否產生相關dump,如果有則可
http://blog.51cto.com/renzhiyuan/2288355 之前分享的工具分析。 --本次查核沒有,則繼續分析。

排查4:JVM的bug導致
當jvm出現致命錯誤時,會生成一個錯誤文件 hs_err_pid.log。
參考:https://my.oschina.net/xionghui/blog/498785

重要信息:“SIGSEGV(0xb)”表示jvm crash時正在執行jni代碼,而不是在執行java或者jvm的代碼,如果沒有在應用程序裏手動調用jni代碼,那麽很可能是JIT動態編譯時導致的該錯誤。其中SIGSEGV是信號名稱,0xb是信號碼,pc=0x00007fb8b18fdc6c指的是程序計數器的值,pid=191899是進程號,tid=140417770411776是線程號。
技術分享圖片
技術分享圖片

於是~基本確認是bug問題~~

Java進程突然掛掉排查分析手記(jvm bug)