Ruby on rails Rails应用程序随机崩溃,出现错误“;“脚本头过早结束”;

Ruby on rails Rails应用程序随机崩溃,出现错误“;“脚本头过早结束”;,ruby-on-rails,passenger,dreamhost,Ruby On Rails,Passenger,Dreamhost,我正在DreamHost上托管一个RubyonRails2.0.2应用程序。它位于Apache2服务器上,运行在Phusion Passenger之上 应用程序通常会返回500个错误“Rails应用程序未能正确启动”,但这是随机的。它似乎发生在应用程序负载较高的情况下,尽管我无法确认这一点。它每天只有大约2000个页面浏览量,所以我认为负载不应该是一个问题 Apache日志将这500个响应与错误关联起来:“脚本头过早结束”。只要看看今天上午9点的日志,这个错误一分钟就出现三四次。这显然是不可接受

我正在DreamHost上托管一个RubyonRails2.0.2应用程序。它位于Apache2服务器上,运行在Phusion Passenger之上

应用程序通常会返回500个错误“Rails应用程序未能正确启动”,但这是随机的。它似乎发生在应用程序负载较高的情况下,尽管我无法确认这一点。它每天只有大约2000个页面浏览量,所以我认为负载不应该是一个问题

Apache日志将这500个响应与错误关联起来:“脚本头过早结束”。只要看看今天上午9点的日志,这个错误一分钟就出现三四次。这显然是不可接受的

应用程序抛出带有堆栈跟踪和错误“断管”的Phusion乘客页面的频率较低

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

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


因此,我想真正的问题是:我从哪里开始调试这个问题?您是否正在运行最新版本的passenger(撰写本文时为2.2.2)。我自己也有一些错误,但大多数(如果不是全部的话)在升级乘客安装后消失了


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

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

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


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

我正在与DreamHost联系,查看他们使用的是哪个版本的Passenger。将Rails升级到2.3可能是下一步,尽管我并不期待修复向后的不兼容性。是的,在我对同一服务器上的PHP应用程序进行负载测试后,Rails应用程序上发生了这种情况,这导致许多apache PHP.cgi进程运行,从而填满了内存。您是否找到了任何减少dreamhost上rails内存使用的解决方案?这真的没办法。您可能会在共享的DreamHost服务器上托管一个颇受欢迎的Rails应用程序。不管怎样,我切换到一个由RailsPlayground托管的VPS。从那以后,我就再也没有打过嗝。如果你在DH上创建一个新的用户帐户,比如说你运行的每一个rails应用程序,每个帐户都会得到“自己的”内存吗?我猜是的。此外,您的独立帐户可能会分配给不同的服务器(它们有数百个),因此它们不会在内存问题上相互竞争。我再次重申,在共享环境中使用Rails会给您带来很多麻烦。