Java HotSpot(TM) 64位服务器虚拟机警告: 失败; 错误='空间不足' (errno=12)

3

遇到以下错误 - 在安装和运行我的一个应用程序时。

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000008a660000, 1973026816, 0) failed; error='Not enough space' (errno=12)

KiB Mem :  3852964 total,   358468 free,  3011660 used,   482836 buff/cache

KiB Swap:        0 total,        0 free,        0 used.   515060 avail Mem 

以下是空间分配情况 我的系统正在消耗如下细节的空间

Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           377M   42M  335M  12% /run
/dev/xvda1       97G   47G   51G  48% /
tmpfs           1.9G  188K  1.9G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/loop1       18M   18M     0 100% /snap/amazon-ssm-agent/1566
/dev/loop2       92M   92M     0 100% /snap/core/8689
/dev/loop0       90M   90M     0 100% /snap/core/8268
/dev/loop3       18M   18M     0 100% /snap/amazon-ssm-agent/1480
tmpfs           377M     0  377M   0% /run/user/1001
tmpfs           377M   32K  377M   1% /run/user/119
tmpfs           377M     0  377M   0% /run/user/1000

需要帮忙吗?


4
358468 KiB约为350 MiB。你不能用只有350 MiB可用空间的情况下提交1881 MiB。请提供关于正在使用RAM的进程的信息(参考https://www.networkworld.com/article/3516319/showing-memory-usage-in-linux-by-process-and-user.html获取指导),而不是发布磁盘使用情况(因为没有交换)。如果一个Java进程使用了过多的RAM,请提供堆快照。你可能还需要支付更大的服务器/分配空间的费用。编辑 - 我发现这个问题很旧了 - 为什么会被加上赏金? - nanofarad
1个回答

1

Java HotSpot(TM) 64-Bit Server VM警告

Java运行时环境内存不足,无法继续执行。

本地内存分配(malloc)未能为提交保留的内存分配xxxxx字节。

可能原因:

  • 系统物理RAM或交换空间不足
  • 在32位模式下,进程大小限制已达到上限

可能解决方案:

  • 减少系统的内存负载
  • 增加物理内存或交换空间
  • 检查swap后备存储是否已满
  • 在64位操作系统上使用64位Java
  • 减小Java堆大小(-Xmx / -Xms)
  • 减少Java线程数
  • 减小Java线程堆栈大小(-Xss)
  • 使用-XX:ReservedCodeCacheSize =设置更大的代码缓存

如果您使用的是Java 8或更高版本,请参阅此问题:Java HotSpot(TM) 64-Bit Server VM警告:忽略选项MaxPermSize

有关问题和解决方法的更多信息,请参见:

内存问题:“error = 12,空间不足”

分叉JVM:error = 12,无法分配内存或error = 12,空间不足

错误:“Java HotSpot(TM) 64-Bit Server VM警告:INFO:os :: commit_memory(0x00000000aaaa0000,178978816,0)失败;错误=无法分配内存”

当然,Java HotSpot VM选项也会很有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接