ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

服务莫名被kill问题

2022-06-28 11:04:48  阅读:240  来源: 互联网

标签:服务 oom Arthas 莫名 kill 内存 JVM linux 日志


一:背景

  环境经常发生服务无故挂掉的现象。针对这个现象对服务程序进行分析排查。

二:性能问题排查

 1、通过Arthas分析程序

  首先通过阿里开源的JVM性能分析工具Arthas检查服务相关的性能指标。通过一段时间的观察,服务内堆内存和GC都正常,其中堆内存大小在一定范围内波动发生溢出。故排除因内存溢出导致的程序异常终止情况。

 

 2、分析hs_err_pid文件

  在服务程序挂掉后,后续启动的java进程也相继失败并在/tmp目录下生成hs_err_pid_xxx.log文件。

  当JVM发生致命错误导致崩溃时,会生成一个hs_err_pid_xxx.log这样的文件,该文件包含了导致JVM crash的重要信息,我们可以通过分析该文件定位到导致JVM crash的原因,从而修复保证系统稳定。

 

 通过分析该文件可以看出没有足够的内存运行JVM导致。

3、分析linux系统日志

通过linux系统命令dmesg查看系统命令。

 

 从日志可以看出由于OOM导致Linux杀死了74856进程,该进程就是我们的服务。

 

 仔细查看日志可以发现是由于swap分区为空了导致了linux系统启动OOMkill 机制。

  Linux下有个特性叫做OOM killer(Out of memory),从字面的意思可以看出和内存溢出相关,当内存耗尽时,该问题就会出现。在Linux2.6.内核中,当该功能打开后,在内存耗尽时,会根据一定的值计算出一个合适的用户空间的进程给kill掉,以便释放更多的内存,保证整个系统的稳定运行。在系统的日志中通常会有下面的打印日志:Out of memory: kill process 959 (sshd) score 55 or a child。

4、优化配置

  对于重要程序,不能随意被linux系统杀掉,可以修改oom_adj的值,这里的默认值为0,当我们设置为-17时,对于该进程来说,就不会触发OOM机制,被杀掉。

  echo -17 > /proc/$(pidof sshd)/oom_adjecho -17 > /proc/$(pidof sshd)/oom_adj

三、Arthas使用

  Arthas是一个功能强大的Java诊断工具,可以帮助解决如下的问题:
  1)这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  2)我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  3)遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  4)线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  5)是否有一个全局视角来查看系统的运行状况?
  6)有什么办法可以监控到JVM的实时运行状态?
  7)怎么快速定位应用的热点,生成火焰图?
  8)怎样直接从JVM内查找某个类的实例?

参考:

https://arthas.aliyun.com/doc/

https://blog.csdn.net/chenssy/article/details/78271744

http://blog.chinaunix.net/uid-20788636-id-4308527.html

http://www.wowotech.net/memory_management/oom.html

标签:服务,oom,Arthas,莫名,kill,内存,JVM,linux,日志
来源: https://www.cnblogs.com/zsrecord/p/16418703.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有