Linux 内核有个机制叫OOM killer(Out-Of-Memory killer),该机制会监控那些占用内存过大,尤其是瞬间很快消耗大量内存的进程,为了防止内存耗尽而内核会把该进程杀掉。

因此,你发现java进程突然没了,首先要怀疑是不是被linux的OOM killer给干掉了!

你可以去下面这个文件里翻系统报错日志:/var/log/messages

执行命令 egrep -i 'killed process' /var/log/messages

去日志里进行查询。

当然,你也可以去内核日志里头查询。有时Linux系统或者系统上运行的java或者其它进程,会发生一些莫名其妙的问题,比如突然挂掉了,比如突然重启等等。在软件上找不到问题所在,此时我们应该怀疑硬件或者内核的问题,此时我们就可以使用 dmesg来查看:

dmesg | grep java

输出如下

[5673702.665338] Out of memory: Kill process 29953 (java) score 431 or sacrifice child

[5673702.665338] Killed process 29953, UID 500, (java) total-vm:9805316kB, anon-rss:2344496kB, file-rss:128kB

完全是可以看到内核对进程做对操作。

此外,OnOutOfMemoryError参数允许用户指定当出现oom时,指定某个脚本来完成一些动作。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:OnOutOfMemoryError="sh ~/test.sh"

linux的OOM killer相关推荐

  1. Linux内核OOM killer机制

    程序运行了一段时间,有个进程挂掉了,正常情况下进程不会主动挂掉,简单分析后认为可能是运行时某段时间内存占用过大,系统内存不足导致触发了Linux操作系统OOM killer机制,将运行中的进程杀掉了. ...

  2. (转载)Linux Out-of-Memory(OOM) Killer

    Linux有一个特性:OOM Killer,一个保护机制,用于避免在内存不足的时候不至于出现严重问题,把一些无关的进程优先杀掉,即在内存严重不足时,系统为了继续运转,内核会挑选一个进程,将其杀掉,以释 ...

  3. linux内核killler,Linux 的 OOM Killer 机制分析

    按需分配物理页面 很多情况下,一个进程会申请一块很大的内存,但只是用到其中的一小部分.为了避免内存的浪费,在分配页面时,Linux 采用的是按需分配物理页面的方式.譬如说,某个进程调用malloc() ...

  4. linux内核oom,linux OOM killer分析

    基本概念 Linux 内核有个机制叫OOM killer(Out-Of-Memory killer),该机制会监控那些占用内存过大,尤其是瞬间很快消耗大量内存的进程,为了防止内存耗尽而内核会把该进程杀 ...

  5. linux进程莫名其妙被kill,Linux进程突然被杀掉(OOM killer),查看系统日志

    Linux进程被杀掉(OOM killer),查看系统日志 基本概念: Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是 ...

  6. 理解和配置 Linux 下的 OOM Killer

    原文:http://www.vpsee.com/2013/10/how-to-configure-the-linux-oom-killer/ 最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有 ...

  7. (转载)Linux OOM Killer个人总结

    Linux下面有个特性叫OOM killer(Out Of Memory killer),这个东西会在系统内存耗尽的情况下跳出来,选择性的干掉一些进程以求释放一些内存.典型的情况是:某天机器突然登不上 ...

  8. linux进程被杀掉日志,Linux进程突然被杀掉(OOM killer),查看系统日志

    Linux进程被杀掉(OOM killer),查看系统日志 基本概念: Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是 ...

  9. linux内核killler,Linux内核参数overcommit_memory和OOM killer介绍

    什么是Linux Overcommit和OOM overcommit_memory是一个内核对内存分配的一种策略,它有三个可选值:0.1.2. 0. 表示内核将检查是否有足够的可用内存供应用进程使用: ...

  10. Linux 的 Out-of-Memory (OOM) Killer

    同事在 Linux 服务器上遇到点小问题,我也上去折腾半天.这还是第一次注意到 Linux 这个多年来就存在的特性:OOM Killer .说白了 OOM Killer 就是一层保护机制,用于避免 L ...

最新文章

  1. Java数据结构和算法:位运算
  2. 使用ilmerge实现.net程序静态链接
  3. python写入文件中文乱码_记一次python写入txt文件正常,但是写入csv文件中文乱码问题...
  4. JPA 2.1:不同步的持久性上下文
  5. 开源 非开源_在开源中吃我们自己的狗粮
  6. screen 用法汇总
  7. Java中sleep()与wait()的区别
  8. python精度_通过Python可以达到的最高时间精度范围是多少?
  9. 游戏筑基开发之C语言打印(printf)中文时出现乱码的解决方案
  10. Android高德地图定位获取定位经纬度,高德地图,获取当前位置经纬度
  11. EDCF阅读笔记:Reinforced Representation Learning for High Performance Visual Tracking
  12. 仿蓝色理想的“运行代码”功能
  13. 龙果支付 mysql_龙果开源支付系统搭建与部署
  14. 饥荒无条件制作下载_饥荒巨人国无条件制造版
  15. 各台平台电商API接口吊桶,API接口分类
  16. css层叠性css层叠性
  17. 解决winnt.h(389): error C2059: 语法错误:“;”
  18. 2020年中国地理信息产业现状分析,发展前景广阔「图」
  19. C++ stack pop()返回值 error: cannot initialize a variable of type ‘int‘ with an rvalue of type ‘void‘
  20. 【路径规划】一文学懂五次多项式曲线 Quintic Polynomial

热门文章

  1. 夜神模拟器 Nox Player 雷电模拟器 掉线 连不上 运行不显示的解决方案
  2. linux中tac命令详解,一天一个shell命令 linux文本操作系列-tac,rev命令详解
  3. 数据库三范式简单理解
  4. 服务器 备案 文档,备案需要备案服务器
  5. 【3D建模制作技巧分享】Maya模型如何导入zbrush
  6. 跟小白学python网络爬虫实例2
  7. ecshop修改模板可输出php代码,修改ecshop模板体会
  8. 40.用创业思维复盘:写技术博客到出书
  9. 爱奇艺网络流量分析引擎 QNSM 及其应用
  10. CF-C. Dima and Salad