のApache/mod_wsgiのためのデフォルトは、そのアプリケーションが必要とするプロセスへの最初の要求にのみ負荷アプリケーションコードにあります。したがって、最初のステップは、最初のリクエストだけでなく、プロセスの開始時にコードをプリロードするようにmod_wsgiを設定することです。これは、WSGIImportScriptディレクティブを使用してmod_wsgi 2.Xで行うことができます。
とにかく良いオプションであるデーモンモードを、仮定、これはあなたのようなものだろう意味:あなたの代わりにタッチで、のみにチェックされているWSGIスクリプトファイルを、コード変更を行ったら
# Define process group.
WSGIDaemonProcess django display-name=%{GROUP}
# Mount application.
WSGIScriptAlias//usr/local/django/mysite/apache/django.wsgi
# Ensure application preloaded on process start. Must specify the
# process group and application group (Python interpreter) to use.
WSGIImportScript /usr/local/django/mysite/apache/django.wsgi \
process-group=django application-group=%{GLOBAL}
<Directory /usr/local/django/mysite/apache>
# Ensure application runs in same process group and application
# group as was preloaded into on process start.
WSGIProcessGroup django
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
を次の要求ではなく、SIGINTシグナルをデーモンプロセスグループ内のプロセスに送信します。
WSGIDaemonProcessの 'display-name'オプションを使用すると、BSDスタイル 'ps'プログラムを使用してどのプロセスを識別できるかを指定できます。 'display-name'が '%{GROUP}'に設定されている場合、 'ps'の出力はプロセス名として '(wsgi:django)'と表示されます。プロセスIDを特定して、次のようにします。
kill -SIGINT pid
実際のプロセスIDでスワップします。デーモンプロセスグループ内に複数のプロセスがある場合は、すべてのプロセスにシグナルを送信します。
「killall」を使用してこれを1ステップで実行できるかどうかはわかりません。 、缶特定のプロセスとして独立しWSGIImportScriptディレクティブを使用する必要はありません
# Define process group.
WSGIDaemonProcess django display-name=%{GROUP}
# Mount application and designate which process group and
# application group (Python interpreter) to run it in. As
# process group and application group named, this will have
# side effect of preloading application on process start.
WSGIScriptAlias//usr/local/django/mysite/apache/django.wsgi \
process-group=django application-group=%{GLOBAL}
<Directory /usr/local/django/mysite/apache>
Order deny,allow
Allow from all
</Directory>
:私はmod_wsgiのでのMacOS X上で
それをやっての問題点の構成を簡素にすることができ、代わりに使用することができ3.xは持っていましたグループ、アプリケーショングループをWSGIScriptAliasの引数として使用する代わりに、アプリケーションをプリロードするという副作用があります。
実際に、Apacheを再起動し、 'wget'を5回実行する再起動スクリプトを書くことは、私にとって妥当なアプローチのようです。 –
'wget'への呼び出しのそれぞれが別のプロセスによって処理されるように注意しなければならないかもしれませんが、確かめるためには十分な回数ロードする必要があります。 –
私はそれをテストし、webfaction(アプリケーションがホストされている場所)でapache configを実行すると、インスタンスを循環するので、 'wget'がトリックを実行します。 – Jiaaro