背景
部署项目到服务器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内存分配情况
-
验证,可正常启动,无报错。完成!文章来源:https://www.toymoban.com/news/detail-759609.html
-
附:以war包方式部署的时候可能会涉及启动两次项目的情况Tomcat server.xml Host Context配置文章来源地址https://www.toymoban.com/news/detail-759609.html
到了这里,关于Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fb400000, 71303168, 0)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!