13

我在 DreamHost 上托管 Ruby on Rails 2.0.2 应用程序。它位于 Apache 2 服务器上,运行在 Phusion Passenger 之上。

该应用程序经常返回一个 500 错误“Rails 应用程序无法正常启动”,但时间是随机的。当应用程序处于较高负载时似乎会发生这种情况,但我无法确认这一点。它每天只有大约 2,000 次浏览量,所以我认为负载应该不是问题。

Apache 日志将这 500 个响应与错误相关联:“脚本标头过早结束”。只看今天上午 9 点的日志,错误出现的频率高达每分钟三到四次。这显然是不可接受的。

不太常见的是,应用程序会抛出一个带有堆栈跟踪和错误“Broken pipe”的 Phusion Passenger 页面。

Rails 日志没有列出任何这些错误。

这发生在 DreamHost 上托管的登台和实时站点上,但我无法在本地开发服务器上复制它。

所以我想真正的问题是:我从哪里开始调试这个问题?

4

2 回答 2

9

事实证明,我只是在 DreamHost 共享服务器上达到了内存上限。

我在一个帐户下运行多个 Rails 应用程序,其中许多只是用于测试和原型设计。Rails 使用大量内存,所以我很快就达到了我的分配。支持人员告诉我“我检查了我们的日志,它在过去三天里杀死了你的一个 ruby​​ 进程 2325 次”。哎呀。

解决方案:尽量不要在共享环境中运行 Rails,如果可以的话。我将很快将我的至少一个应用程序切换到 VPS 主机。

于 2009-05-06T23:22:45.550 回答
1

您是否正在运行最新版本的乘客(撰写本文时为 2.2.2)。我自己有一些错误,但大多数(如果不是全部)在升级我的乘客安装后消失了。

如果这不是答案,您可以随时尝试将您的 rails 版本升级到 2.3 并查看问题是否仍然存在。

于 2009-05-05T15:11:57.657 回答