推荐设备MORE

小程序开发上线后—@考研学子

小程序开发上线后—@考研学子

公司新闻

服务器运用程序流程无缘无故被kill掉,应该怎么

日期:2021-02-22
我要分享

近3个月以来,企业的某些运用服务器(java)无缘无故的出現被kill掉状况,缘故各不相同,清查起来也较为痛楚。那哪些缘故会致使JAVA过程被kill呢?该怎样去清查难题呢?在这里做个总结,跟大伙儿共享下:

哪些缘故将会会致使JAVA过程被kill呢?

Java运用程序流程的难题:产生OOM致使过程Crash

JVM本身常见故障:JVM或JDK本身的Bug致使过程Crash

被实际操作系统软件OOM-Killer

该怎样去清查难题呢?

1.Java运用程序流程的难题:产生OOM致使过程Crash

这类状况关键取决于产品研发编码品质,我遇到过的大约有2次。1般状况下,出現OOM出现异常,JVM的GC会开展收购,是不容易立即致使JVM过程撤出的。假如出現撤出的状况,那便是运行内存泄露,因为运行内存占有愈来愈大,結果。。。。但是这类JVM的OOM致使的出现异常,很好清查。清查流程以下:

Step1: 查询JVM主要参数 -XX:+HeapDumpOnOutOfMemoryError 和 -XX:HeapDumpPath=*/java.hprof

Step2: 依据HeapDumpPath特定的相对路径查询是不是造成dump文档;

Step3: 若存在dump文档,应用VisualVM这类可视性化工厂具剖析就行等专用工具剖析便可;

2.JVM本身常见故障:JVM或JDK本身的Bug致使过程Crash

这类状况遇到1次,是由于JDK本身BUG致使的。当JVM出現严重错误时,会转化成1个hs_err_pid_xxx.log这样的文档,该文档包括了致使jvm crash的关键信息内容,能够根据剖析该文档精准定位到致使crash的根本原因,从而改进以确保系统软件平稳。当出現crash时,该文档默认设置会转化成到工作中文件目录下,但是能够根据jvm主要参数-XX:ErrorFile特定转化成相对路径,eg:

-XX:ErrorFile=/var/log/hs_err_pid<pid>.log

然依据不正确信息内容,能够进到Java BUG dataBase库中去搜索对应的BUG:

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8134389

被实际操作系统软件OOM-Killer

这类状况也遇到过1次。Linux 核心有个体制叫OOM killer(Out-Of-Memory killer),该体制会监管那些占有运行内存过大,特别是一瞬间很快耗费很多运行内存的过程,以便避免运行内存耗光而核心会把该过程杀掉。能够去/var/log/messages里翻系统软件出错系统日志,实行以下指令:

自然,你还可以去核心系统日志里头查寻。有时Linux系统软件或系统软件上运作的java或其它过程,会产生1些无缘无故的难题,例如忽然挂掉了,例如忽然重新启动这些。在手机软件上找不到难题所属,此时大家应当怀疑硬件配置或核心的难题,此时大家便可以实行 dmesg | grep java 指令来查询:

彻底是能够看到核心对过程做对实际操作。

总结

对以上出现异常出現清查的清查次序1般是:Java运用程序流程的难题 -> JVM本身常见故障 -> 被实际操作系统软件OOM-Killer。如有疑惑详询天地数据信息客服电話400⑹388⑻08。