记一次排查进程意外挂掉思路

2020-11-09  本文已影响0人  新月爱文宇

查看系统日志

  1. grep -rn 进程名
    [xxxx@xxxx log]# grep -rn  "java"  /var/log
    /var/log/messages-20201108:3309:Nov  6 15:50:28 localhost kernel: [17860]     0 17860  1612477   209728     579        0             0 java
    /var/log/messages-20201108:3407:Nov  6 15:50:28 localhost kernel: Out of memory: Kill process 17860 (java) score 101 or sacrifice child
    /var/log/messages-20201108:3408:Nov  6 15:50:28 localhost kernel: Killed process 17860 (java) total-vm:6449908kB, anon-rss:838912kB, file-rss:0kB, shmem-rss:0kB
    [xxxx@xxxx log]# 
    
  2. 或者 dmesg | grep java

找到关键词: Out of memory

  1. 通过搜索关键词知道,所有的现代Linux内核中都会有一个内存不足终结者(Out of memory Killer, OOM Killer)的内建机制,在内存过低的情况下,它会杀掉你的进程。当探测到这一情况时,这个终结者会被激活,然后挑选出一个进程去终结掉。选择目标进程使用的是一套启发式算法,它会计算所有进程的分数,然后选出那个分数最高的进程
  2. Linux OOM killer机制介绍
  3. 相关java内存 OutOfMemoryError系列

查看内存

[xxxx@xxxx ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        4.9G        218M         16M        2.5G        2.3G
Swap:            0B          0B          0B
[xxxx@xxxx ~]# 

总结

  1. 目前内存还算正常,应该是某些程序运行是特别占内存,导致触发 OOM Killer
  2. 由于导致内存升高的程序,间隔开启关闭,所占内存是必须需要
  3. 所以是系统内存不足,需要提升内存
上一篇下一篇

猜你喜欢

热点阅读