记一次Java进程突然消失问题

@Date 2017.05.22

现象: 线上同一个应用部署了多台服务器,有的机器运行过程中突然告警,发现服务进程消失.

  • 看程序本身的日志,没有异常输出
  • 查询磁盘空间是否不足,没有此问题
  • 增加如下启动参数,查看GC日志,发现程序无GC出现
   -Xloggc:/home/admin/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/java.hprof
  • 在上述重启服务时,发现一个现象,程序重启没有多久就消失掉. 此时使用dmesg
    查看Linux系统日志, dmesg只能查看到最近的系统缓存日志,所以在现场能还原时查看最合适.

重点:

  • 会发现dmesg的日志中出现oom kill的字样,由此可以判断应该是机器内存被占满,系统自动选择一个占用内存最大的进行kill掉
  • 复现确认
    1. 在启动应用之后,使用free命令查看机器内存占用情况, 发现total和used相差无几
    2. 查看JVM启动参数以及机器内存配置,发现-Xmx配置和机器内存相等,由此可以断定是应用启动堆内存沾满机器内存,造成系统KILL

解决: 修改JVM启动参数,最好改成系统内存大小的1/2或者2/3左右即可

总结: 需要区分heap与 non-heap,堆内存不足会有OOM异常,进程无缘无故消失一般就是堆外内存导致

注意: 引起系统OOM-KILL的其他情况还有比如使用VIM编辑大文件, 如果文件过大也会造成撑满机器内存

记一次Java进程突然消失问题相关推荐

  1. linux java进程消失_Linux系统下的Java进程无故消失怎么办?

    Linux系统步骤的一些Java项目总是无故的消失,原来是Java进程被关闭掉了.为什么会出现这种情况呢?有可能是被系统自动清除多余进程,或是其他程序关掉了Java项目,这个时候该怎么办呢? 解决方法 ...

  2. Linux服务器Java进程突然消失排查办法

    问题描述 在实际生产环境下,如果我们遇见Java进程突然消失,该如何去排查问题? 思路 可能有几种原因: ①.Java应用程序的问题:发生OOM导致进程Crash 最常见的是发生堆内存异常" ...

  3. java进程消失_Linux系统下的Java进程无故消失的解决方法

    很多用户表示,Linux系统下的一些Java项目总是会无缘无故的消失,这是为什么呢?小编认为这极有可能是被系统自动清除多余进程,或是其他程序关掉了Java项目.针对此问题,下面,U大侠小编就给大家介绍 ...

  4. 记一次 Java 进程里面获取 Mysql 连接超时的问题排查(OOM)

    文章目录 一. 问题现象 二. 原因分析 1. 查询 Mysql 状态 2. 排查连接池问题 3.进程内存&栈分析 一. 问题现象    页面前端频繁出现 500 的报错,查看后端报错日志,发 ...

  5. linux java进程消失_Linux服务器Java进程消失问题解决

    Linux服务器Java进程消失问题解决 发布时间:2020-08-20 15:17:37 来源:脚本之家 阅读:65 作者:myseries 这篇文章主要介绍了Linux服务器Java进程消失问题解 ...

  6. Linux下tomcat进程莫名消失

    参考Linux进程被杀掉(OOM killer)查看系统日志   JAVA进程诡异消失oom killer干的 查看/var/log/messages文件可以看到如下信息,发现java进程被操作系统k ...

  7. java 进程消失_Java进程诡异消失问题

    最新在Centos 7.6上起了一个新的Jboss,并在其中起了我们的server,但是在使用arthas的过程中发现一个问题. [root@tmsprod4 ~]# java -jar arthas ...

  8. 为什么Java进程使用的RAM比Heap Size大?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 阿杜的世界 来源 | 公众号「javaadu」 Java进程使用的虚拟内存确实比J ...

  9. xmx java_为什么我的Java进程比Xmx消耗更多的内存?

    xmx java 你们有些人去过那里. 您已经在启动脚本中添加了-Xmx选项,并放松了下来,因为您知道Java进程将不会消耗比经过微调的选项所允许的更多的内存. 然后,您感到非常讨厌. 要么自己检查开 ...

最新文章

  1. linux怎样自动检查link文件_自动共享和上传文件到兼容的托管站点 | Linux 中国
  2. BZOJ 1022 [SHOI2008]小约翰的游戏John AntiNim游戏
  3. 关于在本地idea当中提交spark代码到远程的错误总结(第二篇)
  4. c语言调用oracle函数返回值吗,C语言通过值和引用函数
  5. Cnblogs美化总结
  6. 点击回退按钮刷新页面
  7. Java文件类boolean setExecutable(boolean exec_file,boolean owner_access)方法,带示例
  8. 为什么要在WebAssembly中使用Rust?
  9. python数组如果余弦_numpy :: 计算特征之间的余弦距离
  10. CSDN 蒋涛对话英特尔中国区董事长王锐:我愿是当代的一个开发者
  11. python 反爬策略_如何应对网站反爬虫策略?如何高效地爬大量数据?
  12. 微信公众号,微信授权进不去
  13. latex生成pdf中文标签乱码pdf复制乱码
  14. 怎么使用虚拟机装服务器系统,如果使用VMware虚拟机创建系统,超详细安装图文教程...
  15. 实时数据库历史数据容量的计算方法
  16. Vue通过nginx转发后dist文件页面样式丢失
  17. java中处理换行符
  18. MyEclipse 注册码分享
  19. 【知识图谱】——8种Trans模型
  20. 流程控制语句break continu return 及方法(函数)

热门文章

  1. 安全自动化在于信任,而非技术
  2. CentOS7服务器Docker构建ubuntu镜像出错invalid argument
  3. html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
  4. explicit关键字
  5. linux 下的lamp的简单安装
  6. 不要相信修改注册表EnablePrefetcher文件达到加速开机速度的说法
  7. 大开源时代,“仁慈的独裁者”管理模式还走得通吗?
  8. vue 内打开一个新窗口,带传参!
  9. break 和continue在循环中起到的作用
  10. jQuery easyui刷新当前tabs