【发布时间】:2018-01-24 03:07:54
【问题描述】:
我正在尝试在具有 800MB RAM (docker run -m=800m mindlevel) 的 docker 容器中运行我的 scala 应用程序,但它在编译完成之前就被杀死了。
[info] Compiling 10 Scala sources to /root/mindlevel-backend/target/scala-2.12/classes...
[info] 'compiler-interface' not yet compiled for Scala 2.12.1. Compiling...
[info] Compilation completed in 8.631 s
/usr/local/sbt/bin/sbt-launch-lib.bash: line 58: 57 Killed "$@"
我尝试通过以下方式限制 SBT 堆:
CMD ["sbt", "-mem", "700", "run"]
但它仍然在同一个地方被杀死。 对 docker 容器没有任何限制,它运行良好。 在 EC2 微型实例(1GB RAM)中运行它时,它也会崩溃,无论 SBT 和 Docker 是否受到限制。
我缺少一些限制吗?
【问题讨论】:
-
scala 编译器使用大量内存,仅 JVM 至少需要 1G。整个实例只有 1GB 的 EC2 实例也不够用。
-
@engineerC 它确实可以在不到 1GB 的情况下运行它,但只是没有在实例上进行编译。