sbt(构建Scalatra)立即失败并且<2GB的RAM

时间:2014-08-21 20:05:41

标签: scala sbt scalatra

我设置了一个DigitalOcean“droplet”/服务器并为其提供了512mb的RAM。在尝试运行./sbt脚本时,我立即得到了这个失败:

  

使用/root/.sbt/0.13.0作为sbt dir,-sbt-dir来覆盖。
  OpenJDK 64位服务器VM警告:INFO:os :: commit_memory(0x00000000a0000000,1073741824,0)&gt;失败; error ='无法分配内存'(errno = 12)

     

#Java Runtime Environment没有足够的内存来继续   #本机内存分配(malloc)无法为提交保留内存分配1073741824字节。

1073741824字节〜= 1.07GB。如果我将它提升到1GB的RAM,它会失败,但是当我向服务器提供2GB时,它就可以工作。

我见过类似的问题,但所有答案都是“提供更多空间”......但这是正常的吗?为什么sbt需要立即分配的内存?它的实际构建似乎并不需要那么多。是否可以/明智地改变sbt尝试分配的内存量?

2 个答案:

答案 0 :(得分:0)

您可以通过向JVM提供-Xmx选项来设置内存分配池的限制。要实现这一点,请编辑您在sbt docs中所述的sbt脚本。 另一种方法 - 设置交换或添加更多RAM。

答案 1 :(得分:0)

(Scalatra)项目目录中的sbt文件的设置为$default_sbt_mem,设置为1536.您可以根据服务器进行更改。