我在512M vps上运行play2。如何在512M vps中运行`play` - 它报告`无法为对象堆预留足够的空间?
它可以创建一个新的应用程序:
play new test
但不能启动test
项目:
cd test
play
它报告这样的错误:
[[email protected] test]$ play
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
[[email protected] test]$
经过一番研究, ,我发现play2会调用play-2.0/framework/build
,并且build
有以下s ettings:
我试图修改play-2.0/play
外壳,从:
java ${DEBUG_PARAM} -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled
-XX:MaxPermSize=384M -Dfile.encoding=UTF8 -Dplay.version="${PLAY_VERSION}"
-Dsbt.ivy.home=`dirname $0`/../repository -Dplay.home=`dirname $0`
-Dsbt.boot.properties=`dirname $0`/sbt/sbt.boot.properties
-jar `dirname $0`/sbt/sbt-launch.jar "[email protected]"
我们可以看到,Xms
为512M时,VPS拥有它没有足够的内存。
所以我将其更改为:
java ${DEBUG_PARAM} -Xms112M -Xmx300M -Xss1M
-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=84M -Dfile.encoding=UTF8
...
这一次,该错误信息更改:
Error occurred during initialization of VM
Cannot create VM thread. Out of system resources.
我该怎么办?
实际上,play可以运行在512M vps。后来我发现了这个问题:我用的vps提供了假内存,它显示512M,实际上只有不到200M。 (vps是非托管和便宜的,没有交换,但我最好不要写它的名字)。如果您遇到同样的问题,请在vps – Freewind 2012-09-06 02:42:47