私はいくつかのアプリをuWSGI上で実行しています。それらのほとんどは、時間の経過とともにメモリ使用量が増加します。私はいつもこれを私が追跡していないメモリリークに帰してきた。しかし最近、私は成長がかなりチャンクであることに気づいた。私は各チャンクが開始されているプロセスと相関しているのだろうかと思います。uWSGIはブート時にすべてのプロセスを起動しますか?
uWSGIはブート時にすべてのプロセスを開始するのですか、または必要な場合に十分な要求が入ったときにのみ新しいプロセスを起動しますか?
ここでは例の設定があります:
[uwsgi]
strict = true
wsgi-file = foo.py
callable = app
die-on-term = true
http-socket = :2345
master = true
enable-threads = true
thunder-lock = true
processes = 6
threads = 1
memory-report = true
更新:これは、関連になります。http://uwsgi-docs.readthedocs.org/en/latest/Cheaper.html
は "労働者"(答えはyesのようです)、 "プロセス" と同じことを意味していますか?もしそうなら、私が数は常に一定に維持する場合のように、私がすべきと思われる。
cheaper = 6
cheaper-initial = 6
processes = 6
を実行しているおかげで!ええ、私はモジュールのロードやメモリの増加に影響を与える他のことを知っていましたが、私はプロセスの起動について疑問を抱いていました。あなたはより安い設定が何であるか知っていますか? –
安価な設定は、起動時にワーカーの起動を防ぎ、代わりに最初の要求時に実行します。起動時に生成されるワーカーの数、(必要に応じて)要求で生成されるワーカーの数、および要求に基づいて生成されたワーカーがもはや必要でない場合に自動的に殺されるべきかどうかを指定できます。 – GwynBleidD
uwsgiが使用するデフォルトのシステムは安価ですが、これらの設定は動作を構成するか、設定を使用するとアクティブになる特別なモードですか? –