我在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