web-dev-qa-db-ja.com

Nginx&Passenger-アップストリームへの接続中に失敗しました(11:リソースが一時的に利用できません)

問題のあるNginxとPassengerのセットアップがあります。

比較的低い負荷では、サーバーがバックアップされ、次のような結果がerror.logに送られ始めるようです。

connect() to unix:/passenger_helper_server failed 
(11: Resource temporarily unavailable) while connecting to upstream

私の乗客の設定は次のとおりです。

passenger_min_instances 2;
passenger_pool_idle_time 1200;
passenger_max_pool_size 20;

いくつか掘り下げましたが、CPUが固定されているようです。メモリ使用量は問題ないようですpassenger_memory_statsは最大で約700MBが使用されていることを示していますが、CPUは100%に近づいています。

これはこのタイプのエラーを引き起こすのに十分ですか?

プールのサイズを小さくする必要がありますか?私が見なければならない他の構成設定はありますか?

助けていただければ幸いです

その他の関連情報:

  • AmazonEC2スモールインスタンス
  • Ubuntu 10.10
  • Nginx(最新の安定版)
  • 乗客(最新の安定)
  • Rails 3.0.4
5
Toby Hede

CPUが100%に近づき、EC2スモールインスタンスの仕様を見ると、マシンがスワップしているように聞こえます。サーバーの起動中にfree -mの出力を確認し、負荷テストを実行するときにそれを確認します。

PhusionPassengerのドキュメントから

数値が大きいほどメモリ使用量は多くなりますが、同時HTTPリクエストを処理する機能が向上します。

本当にたくさんの同時リクエストを処理する必要がありますか?もしそうなら、おそらくより大きなEC2インスタンスに投資してから、passenger_max_pool_sizeを上げる必要があります。乗客がその小さなマシンで提供するデフォルトの6以上が必要になることは疑わしいです。

1
Christoph Eicke