0

Apache 2.2.17、Passenger 3.0.11、Ruby 1.9.3、Rails 3.2.6 で Ubuntu (64Bit) を実行しています。

私の Web ページの Web ページ (index.html) にアクセスすると、リクエストが完了するまでに時間がかかり、極端な場合は約 30 秒かかります。

サーバーには十分なメモリがあり (上は 4GB 以上の空き容量を示しています)、Apache プロセス (10 個あります) はそれぞれ上に 0% の CPU を示しており、負荷もほぼ 0 であり、キャッシュしているため DB アクセスはほとんどありません。ほとんどのものは memcached で。

Apache と Rails のログ ファイルにはエラーが表示されませんが、RubyOnRails ログ ファイルに表示されるレンダリング時間は優れた値 (<100 ミリ秒) を示しています。

ここからどこへ行く?

4

3 に答える 3

1

最初のリクエストが遅いですか、それともすべてのリクエストが遅いですか? 乗客は、一定時間後にシャットダウンします。そのため、断続的なリクエスト (リクエストの間に十分な時間間隔があるリクエスト) により、乗客はシャットダウンできます (次のリクエストでのみ再開されます)。

乗客は設計により自動シャットダウンを行います。これは、共有環境では他のユーザーのアプリが存在する可能性があるためです。アプリがしばらくアイドル状態の場合、リソースを他のユーザーのアプリに転送できます。

予算が限られており、同じサーバーで複数のアプリをホストしている場合、パッセンジャーは優れたソリューションです。

サーバーに制御するアプリが 1 つしかない場合は、Passenger をシャットダウンしないように再構成してください (それが実際に問題である場合)。

"passenger-status" を実行して、現在実行中の乗客数とリクエストを受け付け可能な乗客数を確認できます。

Passenger が稼働していることを確認する構成は、PassengerMinInstances と PassengerPoolIdleTime です。

于 2012-07-31T12:37:36.817 に答える
0

「偽のドメイン名」(/etc/hostsファイルに追加)を介してアクセスしていますか?

もしそうなら、

service avahi-daemon stop

少なくともそれがubuntu10.10で私のために働いたものです:)

何らかの理由で、サーバーに対して行うすべての要求に対してDNSルックアップが行われ、ドメインが存在しない場合はタイムアウトになります...

于 2012-07-31T12:35:00.690 に答える
0

パフォーマンスの問題で、ここ数日ずっと忙しくしていました。私はそれを Apache 構成に釘付けにしたと信じています: KeepAliveTimeout、それは非常に高い値 (90) に設定されていました。KeepAliveTimeout についての私の理解では、クライアントがそれ以上のリクエストを発行していない場合でも、Apache プロセスは 90 秒間クライアントにロックされるため、トラフィックが回復すると (パフォーマンスが大幅に低下したその日に行われ、ページ アクセス3 倍以上) すべての Apache プロセスが KeepAliveTimeout を待っている間、ビジー状態で、入ってくる新しい要求をすべてブロックしています。値を 10 に減らしました。トラフィックが増えたら、おそらく 5 に減らします。

于 2012-08-04T10:39:47.503 に答える