2013-12-12 17 views
17

CentOS 6で2つのWebサーバーと1つのデータベースサーバーを使用してRORでWebサイトを実行しています。 「ウェブサイトに負荷がかかっています」というメッセージが表示されることがあります。ウェブサイトの負荷が重い+ ROR

Ruby 1.8.7およびApache 2.2.15でPassenger 4.0.21を使用しています。 Webサーバーはデフォルト設定で実行されています。以下は

は乗客の状態のいくつかの出力です:

#旅客ステータス

Version : 4.0.21 
Date : Thu Dec 12 02:02:44 -0500 2013 
Instance: 20126 
----------- General information ----------- 
Max pool size : 6 
Processes  : 6 
Requests in top-level queue : 0 

----------- Application groups ----------- 
/home/web/html#default: 
    App root: /home/web/html 
    Requests in queue: 100 
    * PID: 20290 Sessions: 1  Processed: 53  Uptime: 24h 3m 5s 
    CPU: 0%  Memory : 634M Last used: 23h 16m 8 
    * PID: 22657 Sessions: 1  Processed: 37  Uptime: 23h 15m 55s 
    CPU: 0%  Memory : 609M Last used: 22h 44m 
    * PID: 29147 Sessions: 1  Processed: 146  Uptime: 20h 47m 48s 
    CPU: 0%  Memory : 976M Last used: 18h 20m 
    * PID: 22216 Sessions: 1  Processed: 26  Uptime: 10h 3m 19s 
    CPU: 0%  Memory : 538M Last used: 9h 44m 4 
    * PID: 23306 Sessions: 1  Processed: 75  Uptime: 9h 43m 22s 
    CPU: 0%  Memory : 483M Last used: 8h 44m 4 
    * PID: 25626 Sessions: 1  Processed: 115  Uptime: 8h 46m 42s 
    CPU: 0%  Memory : 540M Last used: 7h 59m 5 

答えて

19

あなたは、キュー内の、あまりにも多くの要求を持っています。バージョン4.0.15以降、デフォルトでは100に制限があります。あまりにも多くの 要求がキューに入れられている場合

のPhusion旅客は今の代わりに彼らが待っせるの、クライアントにエラーメッセージが表示されます。ここで言うhttp://blog.phusion.nl/2013/09/06/phusion-passenger-4-0-16-released/からの短い抜粋です。この多くの はサービス品質を改善します。デフォルトでは「too many」は100です。 PassengerMaxRequestQueueSize(Apache)または passenger_max_request_queue_size(Nginx)でカスタマイズできます。

この程度のユーザーガイドを見てください:http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequestQueueSize

あなたはそれを増やすか、またはそれを無効にするために0にそれを設定してみてください可能性があります。

EDIT

また、時間がかかりすぎる要求があるかどうかを確認するためにログをチェックする必要があります。たぶんあなたのコードには時間がかかりすぎるいくつかのプロセスがあります。私はこれらのものを監視するためにNewRelicを使用する方が好きです。

+3

私もこれを見ています。しかし、passenger_max_request_queue_sizeを大きくすると、実際に何もしていないプロセスはありません。それらはすべて0%のCPUです。キューが停止しているようです。 – stellard

+3

キューがスタックされた同じ問題。私はログファイルno processing.thenを確認し、nginxサーバーを再起動する必要があります。あなたに何か解決策がありましたか? – surendar

+0

@surendar申し訳ありませんが、私はあなたのコメントを逃した。 'passenger_max_request_queue_size'を増やす以外の解決方法はわかりません – cantonic

関連する問題