Amazon web services 玩AWS上的部署问题“;“无法分配内存”;

Amazon web services 玩AWS上的部署问题“;“无法分配内存”;,amazon-web-services,playframework,web-deployment,Amazon Web Services,Playframework,Web Deployment,我按照play部署说明,使用“play clean stage”打包应用程序。将包上载到aws EC2实例后,我尝试使用以下命令启动它: target/universal/stage/bin/myapp -Dconfig.file=target/universal/stage/conf/application.conf 但失败的消息是: OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5550000, 7

我按照play部署说明,使用“play clean stage”打包应用程序。将包上载到aws EC2实例后,我尝试使用以下命令启动它:

target/universal/stage/bin/myapp -Dconfig.file=target/universal/stage/conf/application.conf
但失败的消息是:

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5550000, 715849728, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 715849728 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/jvm-14940/hs_error.log

我尝试添加如下参数:
-mem=512
-Xms256m-Xmx512m
。但到目前为止,一切都不起作用。有人能帮我运行play应用程序吗?

是的,一个微实例占用了太多内存,我认为它们的上限是615mb

您的应用程序捆绑了什么?玩它本身不应该使用那么多内存


或者,您可以直接进入AWS仪表板,在仪表板上列出您的实例,右键单击您想要的实例,并将其更改为“小型”或“中型”,但最终您将为此付费。

在AWS上运行play app时,我也遇到了同样的问题。但是,我打包了这个应用程序,并试图通过自动生成的shell脚本从bin运行它

所以,基本上我做到了

  • 游戏区
  • 将zip文件复制到EC2
  • 解压
  • 转到bin目录并运行以下命令
  • /我的应用程序名
  • 这给了我与你所面临的完全相同的错误。我只是使用下面的命令行参数运行了它,它成功了

    /我的应用程序名称-mem 512


    希望这会有所帮助。

    错误消息表示系统正在尝试分配715MB内存。运行此操作的实例是否有那么多可用内存?没有。这就是为什么我试图设置-Xmx512m,但它仍然抛出相同的错误消息。我想您也可以打开交换,但这会影响性能。如果你想沿着这条路走下去,请告诉我,我将发布一个带有必要步骤的答案。我认为这可能会提供一些信息,即SBT正试图分配精确的内存量。仍然找不到解决方案,但当有一个解决方案时将更新。您提供的堆栈跟踪是由SBT默认内存配置引起的。要解决这个问题,请看我的回答:谢谢你的回复。但我在问如何限制应用程序使用少于512MB的内存?你不能仅仅“限制”应用程序可以使用的内存。。如果你的应用程序刚开始运行,那就是它运行所需的内存量。你需要查看你的应用程序中正在发布的所有内容。游戏本身并没有使用太多的内存,所以有些事情正在发生。