2009-05-11 20 views
0

私は自分のレールアプリケーション用にApache + Haproxy + Mongrelセットアップを持っています。私が特定のサーバーページにヒットしたとき、mongrelは要求を処理するのに約100msかかってしまい、私の遅いホーム接続のデータ送信時間のために約5秒でページを取得します。低速クライアント接続ブロックMongrel

この5秒間のデータ転送中、mongrelは他のリクエストを処理していないことがわかりました。私はmongrelがクライアントに応答htmlを提供しており、クライアントがそれを受け取るまでブロックされているという意味で驚いています。応答をApacheの仕事にしてはいけませんか?

これは、クライアント接続の速度に応じてMongrelが提供できるリクエストに深刻なボトルネックをもたらします。 mongrelによって生成されたhtmlがapache/haproxyやnginxのような他のウェブサーバーによって提供される方法はありますか?
他のトラフィックの多いサイトではどのように管理しているのだろうか?

答えて

1

mongrelを使用するほとんどのサイトでは、あなたが経験しているようにブロックするので、それらの多くを使用します。

あなたはおそらく、彼らが最近行く道であるので、代わりに乗客を見てほしいでしょう。

0

mongrel自体はマルチスレッドですが、レールではデフォルトで1つのプロセスしか処理できませんが、これはconfigで変更できます。雑種の場合、雑種クラスターを使用する。

FYIの乗客はアプリケーションのプールも設定しますが、配備する方がいいですし、より良いプレスがあり、現在普及しています。

+0

「レールは一度に1つのプロセスしか処理できません」と理解しているかどうかはわかりません。私は雑種の1つのインスタンスが1つのレールの要求にしか役立たないことを知っています。したがって、5つの要求を同時に処理するには、5つの雑多なインスタンスを実行する必要があります。乗客の場合と同じで、スレッド数を増やします。 – Sanjay

+0

"レールは一度に1つのリクエストしか処理できません" – deepak

関連する問題