部署项目到服务器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及部署在tomcat上项目
-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配置