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