部署项目到服务器tomcat报错:服务器内存不足
- 背景
- 解决
- 采用上面的方法3
背景
部署项目到服务器tomcat报错如下:
16-May-2023 11:46:21.789 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.74]
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fb400000, 71303168, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 71303168 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /opt/xlsofts/apache-tomcat-9.0.74/bin/hs_err_pid25828.log
大意:就是服务器的物理内存不足。
解决
- 扩大服务器内存
- 关闭服务器上不必要或不重要的程序/服务
- 降低tomcat对JVM内存的需求:重新分配(分低点,具体多少根据实际情况来定)
采用上面的方法3
这种方法不用变更服务器的物理配置,也不用停止服务器上其他的程序或服务,只关注tomcat及部署在tomcat上项目
- 调整tomca中对jvm内存的配置:
-Xms128m表示JVM最小内存。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。这里配置的是128m,数值可根据具体情况改变
-Xmx128m设置JVM最大可用内存。这里配置的是128m,数值可根据具体情况改变
编辑 tomcat的bin目录下的catalina.sh文件,增加-Xms128m 及 -Xmx128m
如何查看tomcat的JVM内存分配情况??
如何登录tomcat控制台并查看tomcat的JVM内存分配情况
-
验证,可正常启动,无报错。完成!
-
附:以war包方式部署的时候可能会涉及启动两次项目的情况Tomcat server.xml Host Context配置
文章出处登录后可见!
已经登录?立即刷新