2009-05-05 54 views
13

我在DreamHost上託管Ruby on Rails 2.0.2應用程序。它位於運行於Phusion Passenger之上的Apache 2服務器上。Rails應用程序隨機崩潰,錯誤「腳本頭過早結束」

應用程序經常返回500錯誤「Rails應用程序無法正常啓動」,但是在隨機時間。它似乎發生在應用程序負載較高時,但我無法證實這一點。它每天只能獲得大約2,000次綜合瀏覽量,所以我不認爲負載應該是一個問題。

Apache日誌會將這500個響應與錯誤相關聯:「腳本頭過早結束」。只需在今天上午9點查看日誌,錯誤就會每分鐘顯示三到四次。這顯然是不可接受的。

不常見的是,應用程序拋出帶有堆棧跟蹤和錯誤「Broken pipe」的Phusion Passenger頁面。

Rails日誌不會列出任何這些錯誤。

在DreamHost上託管的登臺和活動網站上都會發生這種情況,但我無法將其複製到本地開發服務器上。

所以我想真正的問題是:我在哪裏開始調試這個問題?

回答

9

事實證明,我只是在DreamHost共享服務器上打了我的內存上限。

我在一個帳戶下運行了幾個Rails應用程序,其中很多僅用於測試和原型設計。 Rails使用了很多內存,所以我很快達到了我的配置。支持人員告訴我,「我查看了我們的日誌,並且在過去的三天裏它殺死了你的一個ruby進程2325次」。 哎呀。

解決方案:如果可以提供幫助,請儘量不要在共享環境中運行Rails。我將盡快將我的至少一個應用切換到VPS主機。

+0

是的,這是發生在我的我的rails應用程序後,我做了一些負載測試對同一臺服務器上的PHP應用程序,導致了很多Apache的php.cgi進程運行,從而填滿了內存。你碰巧找到任何解決方案來減少dreamhost上rails的內存使用情況? Thx – adamJLev 2010-05-26 01:55:10

1

您是否正在運行最新版本的乘客(2.2.2在撰寫本文時)。我自己有一些錯誤,但大多數(如果不是全部的話)在升級我的乘客安裝後消失了。

如果這不是答案,您可以隨時嘗試將您的Rails版本升級到2.3,並查看問題是否存在。

+0

我現在用DreamHost檢查他們正在使用的Passenger的版本。將Rails升級到2.3可能是下一步,但我並不期望解決向後兼容性問題。 – Schrockwell 2009-05-05 16:29:54