在测试程序发出3000次http调用后,我的grails应用程序在cloudfoundry上失败

时间:2013-03-05 06:33:52

标签: grails cloudfoundry

我通过桌面PC上运行的grails应用程序运行了80,000个http调用,并且没有失败。在cloudfoundry上,相同的应用程序在大约3000次http调用后耗尽内存。该应用程序使用MySql,Mongodb和RabbitMQ。在Cloudfoundry上,我使用VMC命令将内存增加到1G。在测试程序运行时,我可以使用VMC stats命令查看内存使用情况,内存使用量增长到1G,应用程序失败。我在我的本地机器上使用Grails 2.0.1。

可能导致此问题的原因是什么?

可能与此有关:http://burtbeckwith.com/blog/?p=73

2 个答案:

答案 0 :(得分:1)

您可能会从this post中获得一些用途,因为您的测试应用可能非常像批量应用。

在本地运行时,应使用jconsole监视应用程序,并将分配给java的本地内存设置为与cloudfoundry相同的值,以查看是否可以重现错误。如果jconsole表明你永远不会放弃内存,那么你可能会发生泄漏并且不允许收集垃圾。

答案 1 :(得分:0)

对于Java Web应用程序,您还需要设置Xmx:

vmc set-env APP JAVA_OPTS="-Xmx1024M"