2011-02-06 10 views
0

私は大きなDjangoアプリを持っています。これは2つのApache仮想ホストが異なる設定ファイルを指しているので、アプリケーションの一部は1つのURLでアクセス可能で、別のURL経由でアクセス可能です。 Djangoアプリはvirtualenvを使います。mod_wsgiとDjangoアプリが定期的にハングする

のmod_wsgiは、ApacheのVirtualHostのブロックに以下をデーモンモードで実行するように設定されています

# domain 1: 
WSGIDaemonProcess fc processes=5 threads=5 display-name=%{GROUP} \ 
    user=nobody group=nobody 
WSGIScriptAlias//var/www/python/mine/apache/my.wsgi \ 
    process-group=fc application-group=%{GROUP} 


# different apache.conf file for domain 2: 
WSGIDaemonProcess fm processes=5 threads=5 display-name=%{GROUP} \ 
    user=nobody group=nobody 

WSGIScriptAlias//var/www/python/mine/apache/other.wsgi \ 
    process-group=fm application-group=%{GROUP} 

すべての今、もう一度サイトを利用しながら、リクエストがハングします。それは決して完了しません。ブラウザの '更新'ボタンを使用してページをリロードする必要があり、リクエストが正常に機能します。

Apache自体がプリフォークモードで動作し、MaxRequestsPerChildが0に設定されています。これは、読んだことが問題である可能性があるためです。これは潜在的な問題であるために頻繁に起こります。おそらく100回のリクエストごとに発生します。

これはなぜ起こっているのですか? WSGIDaemonProcessオプションではなく、 '%{GROUP}' の 'アプリケーショングループ=%{GLOBAL}' でなければならない

おかげ

+0

エラーログとアクセスログには何が表示されますか? – payne

+0

@payne:エラーログにはエラーはなく、アクセスログには何も問題はありません。ハングする要求にアクセスログにエントリがあるかどうかはわかりません。 – john

答えて

0

。 '%{GLOBAL}'は特別な意味を持ち、メインのPythonインタプリタを意味します。メインインタプリタを使用すると、デッドロックの発生など、サブインタープリタで動作しないPythonのサードパーティのC拡張モジュールで問題が発生することがよくあります。 '%{GROUP}'の値は 'display-name'オプションにのみ関係します。

+0

お返事ありがとうございます。私はその変更を行い、停止してApacheを起動し、* .pycファイルをすべて削除して安全なところに置いたが、問題はまだ起きている。私はdjangoの管理領域を探しています。これが起こっているので、可能であればCの拡張である可能性があります。(Pythonインタプリタが内部的にモジュールを読み込んで動作する方法がわからない)このような場合、ページは2-3分後に読み込まれます(ただし、Chromiumがリクエストを再発行したかどうかはわかりません)。 – john

+0

ブラウザではないことを確認するために別のブラウザを試しましたか?プリフォークではなく、Apache用のワーカーMPMを使用できますか?同じApacheでPHPを使用しているため、これに固執していますか?最後に、 'http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Debugging_Crashes_With_GDB'に記載されているgdbの手法を試してみてください。デーモンプロセスですべてのスレッドからスタックトレースを取得して、ハングアップしている場所で動くようにしてください。ところで、StackOverflowはデバッグには適していません。代わりにmod_wsgiメーリングリストを使用してください。 –

+0

実際、この問題は修正されている可能性があり、Chromiumには別の問題があると思います。ページソースを表示するとすべてが表示されるため、何らかの理由でChromiumがページを表示していないようです。このサイトはFirefoxでうまくいくように見えるので、私はそれに気をつけます。どうもありがとう。 – john

関連する問題