- 前言
- 一、问题描述
- 二、排查步骤
- 1.先排查一下是不是代码的不规范导致JVM内存溢出
- 1.先用jstat -gc 命令查看下内存使用情况
- 2.使用jmap 查看下内存配置
- 通过以上发现内存使用率也不高,YGC和FGC的频率也不是很高 所以断定不是JVM的OOM导致的。
- 3.下载查看日志发现日志断片了!!!!!!!!
- 三、解决问题
- 这是我偶然跟一个技术牛人提起这个事情的时候得到的提示,他说会不会是Linux物理内存不足?这给了我提示
- 1.free 查看一下物理机内存剩余情况
- 发现空闲的内存只有163M了!!!!!!!基本排除了代码问题和JVM的问题,只能从Linux服务器上找原因吧
- Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程
- 执行命令journalctl -xb | egrep -i 'killed process'
- 执行命令dmesg | egrep -i -B100 'killed process'
- 找到原因哈哈!!
@[TOC] 解决生产环境一次tomcat无故宕机的诡异问题
前言
提示:这里可以添加本文要记录的大概内容
提示:以下是本篇文章正文内容,下面案例可供参考
一、问题描述示例:项目已经上线运行了两年多了一直很稳定,近期突然每下午天五点左右或者晚上三点左右tomcat没有任何征兆的情况下就崩溃了,太TMD诡异了,连续好几天都找不到原因。
二、排查步骤 1.先排查一下是不是代码的不规范导致JVM内存溢出1.先用jstat -gc 命令查看下内存使用情况 2.使用jmap 查看下内存配置



