【发布时间】:2014-08-21 20:05:41
【问题描述】:
我设置了一个 DigitalOcean “droplet”/服务器,并为它提供了 512mb 的 RAM。在尝试运行 ./sbt 脚本时,我立即遇到此故障:
使用 /root/.sbt/0.13.0 作为 sbt 目录,使用 -sbt-dir 覆盖。
OpenJDK 64 位服务器 VM 警告:INFO: os::commit_memory(0x00000000a0000000, 1073741824, 0) > 失败; error='无法分配内存' (errno=12)# 内存不足,Java 运行时环境无法继续。
# 本机内存分配 (malloc) 未能分配 1073741824 字节用于提交保留内存。
1073741824 字节 ~= 1.07GB。如果我将它增加到 1GB 的 RAM,它会失败,但是当我为服务器提供 2GB 时它会起作用。
我见过类似的问题,但所有的答案都是“提供更多空间”……但这正常吗?为什么 sbt 需要立即分配那么多内存?它在实际建造时似乎不需要那么多。改变 sbt 尝试分配多少内存是否可能/明智?
【问题讨论】: