Cloudfoundry上的“太多打开文件”错误

时间:2013-02-14 14:14:29

标签: spring cloudfoundry

运行我的应用程序大约5分钟后,我收到了可怕的“Too Many Open Files”错误。这对我来说是一个很好的表现。我知道有256个文件限制。如果我有泄漏,我跑了lsof跟踪。我发现许多打开句柄只是Tomcat和其他进程必须进行的连接。 “nginx”进程似乎是唯一一个波动,但它仍然只有81左右的最大值。我的应用程序似乎没有泄漏文件描述符。我非常喜欢Cloud Foundry。这是第一个没有要求我重构我的应用程序以使其工作的PAAS。什么时候提出文件限制?我使用Micro Cloud Foundry进行测试,但我希望尽快在Hosted Cloud Foundry上运行。我在两个版本中都遇到了这个错误。有没有解决的办法?我尝试修改Micro Cloud实例的限制但我收到错误,说我没有权利进行这种更改。对此有何帮助或建议?

2 个答案:

答案 0 :(得分:2)

新文件描述符配额位于以下数据库迁移中:

https://github.com/cloudfoundry/cloud_controller_ng/blob/master/db/migrations/20130131184954_new_initial_schema.rb

第185行。

此特定设置不会在我们的http://cloudfoundry.com生效,直到四月时间框架出现我们的测试版状态且我们的“下一代”组件正在制作中。

如果您运行自己的Cloud Foundry版本,则可以运行此迁移,假设您使用的是cloud_controller_ng。

我们在内部用于开发的Micro Cloud Foundry确实有新的云控制器。您可以在此处阅读我们如何为自己的目的运行:

我们处于过渡期,因为我们弃用了遗留位并转向这些NG组件。为这些故事道歉,但它们将是值得的。谢谢你的耐心等待。

最佳,

马特雷德 产品经理 Cloud Foundry

答案 1 :(得分:0)

我以root用户身份登录。我修改了/var/vcap/packages/dea/dea/lib/dea/agent.rb文件和/etc/security/limits.conf文件。

对于agent.rb文件,我按照这里的说明操作: http://mdahlman.wordpress.com/2012/04/20/micro_cloud_foundry/

对于limits.conf文件,我按照这里的说明操作: http://myadventuresincoding.wordpress.com/2010/10/09/ubuntu-increasing-the-maximum-number-of-open-files/

我不确定哪个修补程序有帮助,或者是否需要修改这两个文件。该应用程序似乎现在正在工作,所以我继续前进。如果有人有更好的解决方案,我会很高兴听到它。

这只允许我在自托管的微型云代工厂上运行我的应用程序。如果有人拥有托管版本的解决方案会好得多。不幸的是,我必须找到一些方法来限制我的应用程序在256个文件描述符下使用,这是不可能发生的。