记一次Java进程突然消失问题
记一次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掉 复现确认 在启动应用之后,使用free命令查看机器内存占用情况, 发现total和used相差无几 查看J...