1

我已经通过在我的台式电脑上运行的 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 ?

4

2 回答 2

1

您可能会从这篇文章中得到一些用处,因为您的测试应用程序可能很像批处理应用程序。

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

于 2013-03-05T14:38:13.303 回答
0

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

vmc set-env APP JAVA_OPTS="-Xmx1024M"
于 2013-03-05T13:11:31.647 回答