线上服务器内存不足,无法启动tomcat,或JAVA服务

由于最近服务需要统一更新,部署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,启动成功

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。