【问题标题】:Can't set memory settings for `sbt start`无法为“sbt start”设置内存设置
【发布时间】:2014-09-16 19:47:03
【问题描述】:

我正在尝试在一个用 Scala 编写的 Play Framework 应用程序中运行 sbt start,该应用程序是 AWS 上的 ec2 t2.micro 实例。但我不能,因为 Java 运行时环境没有足够的内存来继续。

这台机器有 1GB 的内存,但实际上有 930MB 的空闲内存可以在运行剩余的操作系统进程时使用。它是 Ubuntu 服务器 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: -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m ... 尽管我以很多不同的方式将我的 JVM 参数设置为其他东西但没有效果。

有了这些论据-Xss1m -Xms256m -Xmx512m -XX:+CMSClassUnloadingEnabled我什么都试过了:

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

它们都没有帮助。每次我运行应用程序时,日志中都会出现相同的 1024 条内容。请帮忙。

【问题讨论】:

  • 凹凸。还是没有头绪。
  • 我误解了你的问题,并认为你想增加分配给 jvm 的内存,而实际上你想减少它。您仍然应该能够使用我的建议来执行此操作,但内存量不同。我已经更新了我的答案,让我知道它是否对你有用。

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


【解决方案1】:

过去在 Linux 上也为sbt 设置 jvm 内存参数而苦苦挣扎(在 Windows 上,您可以调整 sbtconfig.txt,但这个和所有其他可以指定 SBT_OPTS 的地方我可以找到在 Linux 上不起作用出于某种原因)。

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

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

$ sbt -mem 512 start

【讨论】:

    【解决方案2】:

    我今天在 EC2 纳米实例上遇到了同样的问题。这样解决了:

    cd /etc/sbt-launcher-packaging/ 
    sudo nano sbtopts
    

    然后取消注释 -mem 选项。我已将其设置为 256,之后我可以正常在 nano-instance 上运行 sbt。 此配置文件经过编辑后的示例:

    # Path to local Ivy repository (default: ~/.ivy2)
    #
    #-ivy ~/.ivy2
    
    # set memory options
    #
    -mem   256
    
    # Use local caches for projects, no sharing.
    #
    #-no-share
    

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多