Amazon ec2 在Amazon EC2微实例中运行play framework应用程序
我有一个非常基本的剧本!这个应用程序只需处理几个普通的GET和POST请求,并与一个MySQL数据库对话,没什么特别的 我运行了Amazon ec2 在Amazon EC2微实例中运行play framework应用程序,amazon-ec2,playframework-2.0,Amazon Ec2,Playframework 2.0,我有一个非常基本的剧本!这个应用程序只需处理几个普通的GET和POST请求,并与一个MySQL数据库对话,没什么特别的 我运行了playdist,并将zip文件传输到我的EC2实例。解压后,转到bin文件夹并运行/myapp,我收到一条消息: Java HotSpot(TM) 64-Bit Server VM warning: Info: os::commit_memory ... error='Cannot allocate memory' (errorno=12) There is insu
playdist
,并将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.
我正在运行PlayVersion2.2.1,这个实例有大约512MB的ram,使用64位版本的OracleJDK。这还不足以上演一出戏吗!还是我遗漏了什么
谢谢。使用play2.2.1我必须运行
playdist
来生成zip文件。然后我将其复制到aws实例。
到达后,我提取了zip并更改了可执行文件:
发件人:
致:
那是为了我。我从中得到了这个想法,但我不想删除他们在那里的逻辑,所以我只是减少了默认值
另外请注意,在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)
因此,在运行ninplaydist
时,必须使用相同的Java JDK
编辑:
我将java更新为openjdk 7,并且能够在没有任何错误的情况下运行示例play应用程序。play Framework 2.3现在有了一个漂亮的小功能
$ /path/to/bin/<project-name> -mem 512 -J-server
$/path/to/bin/-mem 512-J-server
应该把工作做完
阅读
指定其他JVM参数 您可以为启动脚本指定任何JVM参数。否则将使用默认的JVM设置: $/path/to/bin/-J-Xms128M-J-Xmx512m-J-server 为方便起见,您还可以一次性设置内存最小值、最大值、永久值和保留代码缓存大小;一个公式用于 根据提供的参数(表示最大内存)确定这些值:
$/path/to/bin/-mem 512-J-server我还尝试使用openjdk运行它,并收到另一条类似的错误消息:“无法为对象堆保留足够的空间”Play可以在一个小堆中运行-您是否尝试过通过Play new创建一个示例应用程序而不做任何更改?您还可以查看bin脚本的选项并分配较小的内存量。这很有吸引力,但是,有没有一种方法可以自动执行此过程,这样就不必在每次更新时都执行编辑?这种方法效果更好-$/path/to/bin/-mem 512-J-server谢谢。使用play2.3(activator)在digital ocean 512服务器上为我工作注意:这也适用于activator!(
activator清洁阶段-mem 512
)
$ 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)
$ /path/to/bin/<project-name> -mem 512 -J-server