由于最近服务需要统一更新,部署tomcat的时候出现异常,虽然零零散散的东西挺多的,但是服务器内存32G,应该也不至于启动不成功
最后出现的异常信息
There is insufficient memory for the Java Runtime Environment to continue.
简单翻译就是内存不足,无法启动
那时候使用 free -m 查看内存,发现缓冲区特别大,可用的缺没多少,下图是清理过后的
然后使用,释放了一下无用内存
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
发现可用内存多了3G,尝试启动,发现还是报同一个异常,就考虑是不是JVM内存配置有问题
然后就修改tomcat启动参数
编辑catalina.sh脚本文件
vi bin/catalina.sh
在首行增加:
JAVA_OPTS="$JAVA_OPTS -server -Xms256m -Xmx512m -XX:MaxPermSize=512M -XX:PermSize=256M -Djava.awt.headless=true"
如果是JDK8+
JAVA_OPTS="$JAVA_OPTS -server -Xms256m -Xmx512m -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=256M -Djava.awt.headless=true"
然后重启Tomcat,启动成功