我有一个tomcat作为我的web服务器,它在给定的错误下自动停止 -
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f16a8405000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)
Run Code Online (Sandbox Code Playgroud)
我需要弄明白实际发生了什么?什么警告意味着什么?
Man*_*sha 38
Java Runtime Environment没有足够的内存来继续.
本机内存分配(malloc)无法为提交保留内存分配xxxxx字节.
可能的原因:
1.系统超出物理RAM或交换空间
2.在32位模式下,进程大小限制被命中
可能的解决方案:1
.减少系统上的内存负载
2.增加物理内存或交换空间3.
检查交换后备存储是否已满
4.在64位操作系统上使用64位Java
5.减少Java堆大小(-Xmx/ - Xms)
6.减少Java线程数量
7.减少Java线程堆栈大小(-Xss)
8.使用-XX设置更大的代码缓存:ReservedCodeCacheSize =
如果您使用的是JAVA-8,请参考:Java HotSpot(TM)64-位服务器VM警告:忽略选项MaxPermSize
小智 12
Java无法分配足够的内存,即它不是Java的堆限制,而是OS不再有可用于Java的内存.检查机器是否没有内存不足.首先清理ram或增加ram然后检查是否存在内存不足错误然后增加堆大小:
-Xms128m min(堆大小)
-Xmx512m 最大(堆大小)
-XX:MaxPermSize 最大(烫发尺寸)
| 归档时间: |
|
| 查看次数: |
68866 次 |
| 最近记录: |