我有一台Tomcat作为我的Web服务器,它自动停机并显示以下错误 -
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f16a8405000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)
我需要弄清楚到底发生了什么?这个警告是什么意思?
我有一台Tomcat作为我的Web服务器,它自动停机并显示以下错误 -
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f16a8405000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)
我需要弄清楚到底发生了什么?这个警告是什么意思?
Java运行时环境可用内存不足,无法继续运行。
本地内存分配(malloc)无法为保留内存分配xxxxx字节。
可能的原因:
可能的解决方案:
如果您使用的是Java 8或更高版本,请参见此问题:Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize
Java无法分配足够的内存,即不是Java的堆限制造成的问题,而是操作系统没有更多内存可供Java使用。请检查机器是否没有耗尽内存。首先清理内存或增加内存,然后检查是否出现内存不足错误,然后增加堆大小:
-Xms128m
最小堆大小
-Xmx512m
最大堆大小
-XX:MaxPermSize
最大永久代大小
Java运行环境的内存不足。
我遇到了与下面所示的相同问题。
OpenJDK 64位服务器VM警告:INFO:os::commit_memory(0x00000000f80f7000, 20729856, 0) failed; error='Cannot allocate memory' (errno=12)
我通过以下步骤解决了这个问题。
有一些进程占用了它们在/tmp上访问的文件。
使用lsof检查:
lsof | grep deleted