最近部署一个springboot的前后端分离项目,前端打成war包部署到tomcat上,后端直接java -jar启,刚部署上验证功能没问题,但隔一天或半天后频繁死掉,前端服务访问不了,访问eureka注册中心
该web服务实例不见了,因为用了18080这个比较常见的端口,刚开始以为是客户有失误操作把我们进程杀了,于是我还往/etc/profile加了段代码监控,
PS1="[`whoami`@`hostname` "'$PWD]''# '
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP}-dbasky.$DT"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null
但进服务器查看ps -ef|grep tomcat
进程还在,于是怀疑JVM内存不足导致的,果然在/tmp
下发现一些奇怪的文件,然后调整了tomcat/bin/catalina.sh
的JAVA_OPTS="-server -Xms1800m -Xmx1800m"
,增大堆内存大小
最终问题解决