0

特定のリクエストを処理するのに時間がかかるRailsアプリケーションがあります(画像のアップロードを処理するため)。私は現在、クラスター内に3つの雑種プロセスを持っています。最初のリクエストがビジーの場合、他の2つのうちの1つが2番目のリクエストを処理することを期待しています。

しかし、これは起こっていないようです。サーバーからの出力を見るとtop、画像のサイズが変更されていることがわかります。そのため、簡単なリクエスト(通常はすぐに終了します)でアプリケーションをヒットしようとすると、長時間実行されるリクエストまで待機しているように見えます。完成しました。

log / mongrel.xxxx.logファイルを見ると、起動しているアプリケーションからの出力だけが表示されます。

どのプロセスが実際に各リクエストを処理しているかを確認するにはどうすればよいですか?

雑種犬に各リクエストをログに記録させることはできますか(タイムスタンプだけで、「GET / path / to / resource」のようなものであっても)?

そもそもクラスターが負荷を共有していない理由はありますか?

フロントエンドWebサーバーはnginxなので、おそらくそれが私が探すべき場所ですか?nginx access_logには、リクエストがプロキシされた場所について何も含まれていないようです。

4

1 に答える 1

1

しばらく前にreevoo.comで同様の問題が発生しました。結果のブログ投稿を見てください。

特に興味深いのは、問題を診断するためのmongrel_proctitleの使用です。これによりps aux、特定の雑種が何を処理しているかを確認できます。

于 2009-09-01T17:42:09.303 に答える