springboot 启动的 java 进程,运行在 linux 下,不知不觉的默默终止
ps 的时候突然发现看不到了
日志用的 debug 等级,看不出问题在哪
如何排查?
|  |      1zhaohui318      2017-10-23 18:38:05 +08:00 springboot 那个版本?用的什么容器? tomcat ? | 
|      2jalja27      2017-10-23 18:43:34 +08:00 via Android 运行一段时间才中止的? jmx 能看出 jvm 的运行情况,也有可能 jdk 版本问题,很可能不是 java 层面的问题,要 linux 运维处理了 | 
|      3esolve OP | 
|  |      5sagaxu      2017-10-23 18:52:42 +08:00 先查一下 syslog,看看有没有诸如 OOM 这类蛛丝马迹,我记得你发过内存占用高的帖子 生成 core 文件也要打开,以防某些用了 JNI 的库写内存写飞掉了,gclog 也要打开 然后还要排查一下有没有什么定时脚本不留神 kill 掉了它 代码里面也要排查一下有没有主动 exit 的地方 启动之后也要测试一下功能,看看是不是没启动起来就挂了 排查不出来,部署到独立的 tomcat 里试试,那里 log 会更详细一些 | 
|      6esolve OP | 
|  |      7xmh51      2017-10-23 18:58:38 +08:00 查看是否是内存不足。 | 
|  |      9sagaxu      2017-10-23 19:03:06 +08:00 @esolve JVM 自己并不知道自己被 OOM Killer 杀掉了,因为 OOM 是强制性的,不带商量的 发生 OOM,可能是数据量真的很大,需要那么大内存,也有可能是代码里有内存泄露,具体业务具体分析 | 
|  |      12misaka19000      2017-10-23 19:09:01 +08:00 via Android @esolve 对进程做个监控就行了吧 | 
|  |      14ipeony      2017-10-23 20:10:05 +08:00 via Android 启动的时候加 oom dump 参数 | 
|      15jalja27      2017-10-23 21:17:54 +08:00 via Android @esolve 为什么会 kill 掉 java ?服务器上部署多个服务?还是 Vps 这种?正常来说 Jvm 参数可以设置内存大小,没必要通过操作系统或者母鸡策略 kill 掉 java 进程。如果是 Vps 这种但是正常的 | 
|      17timi      2017-10-24 10:41:58 +08:00 启动的时候加 HeapDumpOnOutOfMemoryError 参数,然后挂掉的时候会有 OOM 文件,至今遇到两次挂基本都是 OOM (还有一次被我们测试 kill 了,定位了好久) | 
|  |      18jack80342      2017-11-21 23:14:14 +08:00 这几天翻译了 Spring Boot 最新的官方文档,欢迎👏fork,https://www.gitbook.com/book/jack80342/spring-boot/details |