scala - 无法设置 `sbt start`的内存设置

标签 scala amazon-ec2 out-of-memory sbt jvm-arguments

我正在尝试在以Scala编写的Play Framework应用程序中在AWS上的ec2 t2.micro实例的计算机上运行sbt start。但是我不能,因为没有足够的内存来继续Java Runtime Environment。

该机器具有1GB的内存,但实际上,在运行其余OS进程时,可以使用930MB的可用内存。它是Ubuntu Server 14.04 LTS。该应用程序小巧可爱。

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000d5550000, 715849728, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 715849728 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /app/incoming/hs_err_pid9709.log

Here is the link到日志文件以获取更多信息。

尽管我以多种方式将JVM args设置为其他方式,但在内部却看到jvm_args: -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m ...,但没有任何效果。

使用这些参数-Xss1m -Xms256m -Xmx512m -XX:+CMSClassUnloadingEnabled我尝试了一切:
  • 在/usr/share/sbt-launcher-packaging/conf/sbtopts中设置JVM args
  • /usr/share/sbt-launcher-packaging/conf/sbtconfig.txt中的
  • 相同
  • 在运行时直接提供args:sbt -J-Xss1m -J-Xms256m -J-Xmx512m -J-XX:+CMSClassUnloadingEnabled start
  • 已在build.sbt中设置fork in run := true
  • build.sbt中的
  • javaOptions in run += "-Xmx512m -XX:+CMSClassUnloadingEnabled"

  • 他们都没有帮助。每次我运行该应用程序时,日志中都会出现同样la脚的1024件事。请帮忙。

    最佳答案

    过去在Linux上为sbt设置jvm内存args也很费劲(在Windows上,您可以调整sbtconfig.txt,但是由于某些原因,在此以及您可以指定SBT_OPTS的所有其他地方,在Linux上它们不起作用)。

    上一次我通过使用-mem <amount>本身的sbt选项解决了此问题。

    因此,在您的情况下,您应该尝试这样的操作:

    $ sbt -mem 512 start
    

    关于scala - 无法设置 `sbt start`的内存设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25877206/

    相关文章:

    Java LinkedHashMap 到 scala Map 转换及递归转换

    scala - 我可以安排一个任务运行少于每 10 毫秒吗

    amazon-ec2 - !Ref 和 !Sub 可以在 aws cloudformation 中的任何用例上互换使用吗

    amazon-web-services - 无法在 AWS EC2 实例上模拟 100% 的 CPU 使用率

    java - 重新安装应用程序时内存消耗增加

    java - 大字节数组使用的堆比预期多

    linux - 如何在 Ubuntu 中更新 Scala 版本

    amazon-web-services - AWS Elastic Beanstalk、Dockerrun.aws.json 和 docker run 上的多个端口

    c# - 加载巨大的 DBpedia 转储时出现内存不足异常

    scala - 如何迭代 playframework 2 scala 应用程序中的路由?