- 问题现象,服务器上的Java进程莫名奇妙没有了,没有留下任何日志信息,jvm异常崩溃日志也没有。
- 设置异常日志打印也没有打出来
nohup java -jar -Dserver.port=8080 $discovery$ip:$port $config$ip:$port -Dfile.encoding=UTF-8 -Xms2048m -Xmx2048m -XX:ErrorFile=/opt/xx/java_error_%p.log application.jar > /dev/null 2>&1 &
- 每次重启之后 半小时就会死掉
- 由于是产品验收环境,没有服务器配置信息 也进不去服务器 产品也一直催着解决问题,真的是崩溃 要啥没啥,就告诉你系统崩了 赶紧定位问题,解决问题
- 一开始是因为调度的问题引起的(其实不是),当时调度问题是因为没有做事务 导致表的数据不一致,造成 调度杀不掉的问题
- 第一天解决完调度问题以为没事了,没想到第二天 系统又莫名奇妙死掉了,由于在开发环境和测试环境都没有问题,就怀疑是产品环境的问题
- 这个时候运维同学来了一句,这个环境 配置不高,这个时候突然想到 忘了查看服务器内存了,一查 真是内存导致的 内存满了之后,自动把Java进程给杀了。
查看 /var/log/message 出现如下日志,标明,Linux 系统自身把 Java 进程杀掉了
egrep -i -r 'killed process' /var/log
- 问题解决