无法为`sbt start`设置内存设置

Hun*_*ács 8 scala out-of-memory amazon-ec2 jvm-arguments sbt

我正在尝试sbt start在一台用Scala编写的Play Framework应用程序中运行,该应用程序在AWS上的ec2 t2.micro实例上运行.但我不能,因为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
Run Code Online (Sandbox Code Playgroud)

以下是日志文件的链接以获取更多信息.

在内部我看到jvm_args: -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m ...尽管我用许多不同的方式设置我的JVM args到其他东西但没有效果.

有了这些论点,-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
  • 已经fork in run := true在build.sbt中设置
  • javaOptions in run += "-Xmx512m -XX:+CMSClassUnloadingEnabled" 在build.sbt中

他们都没有帮助.每次运行应用程序时,日志中都会显示相同的1024条内容.请帮忙.

Eug*_*Loy 12

sbt在过去,在Linux上设置jvm内存args 也很困难(在Windows上你可以调整,sbtconfig.txt但是这个以及你可以指定SBT_OPTS我可以找到的所有其他地方因某些原因在Linux上不起作用).

上次我通过使用自己的-mem <amount>选项解决了这个问题sbt.

所以,在你的情况下,你应该尝试这样的事情:

$ sbt -mem 512 start
Run Code Online (Sandbox Code Playgroud)