Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fb400000, 71303168, 0)

部署项目到服务器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

大意:就是服务器的物理内存不足。

解决

  1. 扩大服务器内存
  2. 关闭服务器上不必要或不重要的程序/服务
  3. 降低tomcat对JVM内存的需求:重新分配(分低点,具体多少根据实际情况来定)

采用上面的方法3

这种方法不用变更服务器的物理配置,也不用停止服务器上其他的程序或服务,只关注tomcat及部署在tomcat上项目

  1. 调整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配置

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年12月7日
下一篇 2023年12月7日

相关推荐