【问题标题】:sbt (building Scalatra) immediately fails with <2GB of RAMsbt(构建 Scalatra)立即失败,内存小于 2GB
【发布时间】: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 尝试分配多少内存是否可能/明智?

【问题讨论】:

    标签: scala sbt scalatra


    【解决方案1】:

    您可以通过向 JVM 提供 -Xmx 选项来设置内存分配池的限制。为此,请按照sbt docs 中的说明编辑您的 sbt 脚本。 另一种方法 - 设置交换或添加更多 RAM。

    【讨论】:

      【解决方案2】:

      (Scalatra)项目目录中的sbt 文件有一个设置$default_sbt_mem 设置为1536。您可以根据您的服务器更改它。

      【讨论】:

        猜你喜欢
        • 2022-08-05
        • 1970-01-01
        • 2018-11-16
        • 1970-01-01
        • 2015-01-16
        • 2016-05-12
        • 2018-12-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多