Hen*_*que 9 amazon-ec2 playframework-2.0
我有一个非常基本的游戏!应用程序只是处理几个正常的GET和POST请求并与MySQL数据库进行对话,没什么特别的.
我运行play dist
并将zip文件传输到我的EC2实例.解压缩后,转到bin
文件夹并运行./myapp
,我收到一条消息:
Java HotSpot(TM) 64-Bit Server VM warning: Info: os::commit_memory ... error='Cannot allocate memory' (errorno=12)
There is insufficient memory for the Java Runtime Environment to continue.
Run Code Online (Sandbox Code Playgroud)
我正在运行Play版本2.2.1,这个实例有大约512MB的ram,以及64位版本的Oracle JDK.这还不足以进行比赛!app或我错过了什么?
谢谢.
som*_*id3 14
Play Framework 2.3现在有一个漂亮的小功能.
$ /path/to/bin/<project-name> -mem 512 -J-server
Run Code Online (Sandbox Code Playgroud)
Shoule完成工作.
阅读http://www.playframework.com/documentation/2.3-SNAPSHOT/ProductionConfiguration
指定其他JVM参数您可以为启动脚本指定任何JVM参数.否则将使用默认的JVM设置:
$/path/to/bin/-J-Xms128M -J-Xmx512m -J-server为方便起见,您还可以一次性设置内存min,max,permgen和保留代码缓存大小; 给定提供的参数(代表最大内存),公式用于确定这些值:
$/path/to/bin/-mem 512 -J-server
使用play 2.2.1我必须运行play dist
才能生成 zip 文件。然后我将其复制到 aws 实例。到达那里后,我解压了 zip 并更改了可执行文件:
从:
local mem=${1:-1024}
Run Code Online (Sandbox Code Playgroud)
到:
local mem=${1:-512}
Run Code Online (Sandbox Code Playgroud)
那对我来说是这样的。我从这里得到了这个想法,但我不想只删除他们在那里的逻辑,所以我只是减少了默认值。
另请注意,在 aws ec2 micro 上:
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.14) (amazon-65.1.11.14.57.amzn1-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
所以运行时必须使用相同的Java JDK play dist
。
编辑:
我将 java 更新到openjdk 7并且能够运行示例播放应用程序,没有任何错误。