Railsアプリがエラーでランダムにクラッシュする“スクリプトヘッダーが途中で終了します”
-
05-07-2019 - |
質問
DreamHostでRuby on Rails 2.0.2アプリケーションをホストしています。これは、Phusion Passengerの上で実行されるApache 2サーバー上にあります。
アプリケーションは、「Railsアプリケーションの正常な起動に失敗しました」という500エラーを頻繁に返しますが、ランダムに発生します。これは確認できませんが、アプリケーションの負荷が高いときに発生するようです。 1日あたり約2,000ページビューしか取得できないため、実際に負荷が問題になるとは思わない。
Apacheのログは、これらの500の応答とエラー「スクリプトヘッダーの早期終了」を関連付けています。今日の午前9時にログを見るだけで、エラーは1分間に3〜4回発生します。これは明らかに受け入れられません。
あまり頻繁ではありませんが、アプリケーションはスタックトレースとエラー「パイプが壊れています」でPhusion Passengerページを投げます。
Railsログには、これらのエラーはリストされていません。
これは、DreamHostでホストされているステージングサイトとライブサイトの両方で発生しますが、ローカル開発サーバーで複製することはできません。
だから本当の質問は次のとおりだと思います:この問題のデバッグはどこから始めますか
解決
DreamHost共有サーバーのメモリキャップに達しただけでした。
1つのアカウントで複数のRailsアプリを実行していましたが、その多くはテストとプロトタイプ作成のためだけに使用されていました。 Railsは大量のメモリを使用するため、すぐに割り当てに達しました。サポートから「ログを確認しましたが、過去3日間でルビープロセスの1つが2325回殺されました」と言われました。 フープ。
解決策:支援できる場合は、共有環境でRailsを実行しないようにしてください。少なくとも1つのアプリをVPSホストにすぐに切り替えるつもりです。
他のヒント
パッセンジャーの最新バージョンを実行していますか(執筆時点で2.2.2)。自分でいくつかのエラーがありましたが、乗客のインストールをアップグレードした後、ほとんど(すべてではないにしても)消えました。
それが答えでない場合は、いつでもRailsバージョンを2.3にアップグレードして、問題が解決しないかどうかを確認できます。