UWSGIがApacheよりも多くのメモリを使用しているのはなぜですか?
質問
apache / mod_wsgiの代わりにDjangoアプリケーションのNginx / UWSGIを試すことにしました。これを試してみる理由は、Nginx / UWSGIがメモリが少なくており、高いトラフィックの状況でより良い機能を実行し、NGINXは静的コンテンツを提供するのに最適です。
しかし、UWSGIはApacheよりもほぼ5倍のRAMを使用していることがわかります。
ubuntu@domU-12-31-39-0A-9C-1A:~$ sudo ps_mem.py
Private + Shared = RAM used Program
184.0 KiB + 31.5 KiB = 215.5 KiB atd
220.0 KiB + 94.0 KiB = 314.0 KiB upstart-socket-bridge
260.0 KiB + 101.0 KiB = 361.0 KiB upstart-udev-bridge
340.0 KiB + 63.0 KiB = 403.0 KiB cron
392.0 KiB + 82.0 KiB = 474.0 KiB sudo
560.0 KiB + 14.0 KiB = 574.0 KiB dhclient3
612.0 KiB + 189.0 KiB = 801.0 KiB getty (6)
816.0 KiB + 35.5 KiB = 851.5 KiB dbus-daemon
660.0 KiB + 359.0 KiB = 1.0 MiB udevd (3)
960.0 KiB + 74.0 KiB = 1.0 MiB rsyslogd
1.1 MiB + 38.5 KiB = 1.2 MiB redis-server
1.1 MiB + 146.5 KiB = 1.2 MiB init
1.7 MiB + 1.1 MiB = 2.9 MiB nginx (3)
1.3 MiB + 1.8 MiB = 3.1 MiB sshd (3)
7.5 MiB + 69.5 KiB = 7.6 MiB bash
14.4 MiB + 5.7 MiB = 20.1 MiB apache2 (6)
23.6 MiB + 113.0 KiB = 23.7 MiB mysqld
95.5 MiB + 8.6 MiB = 104.1 MiB uwsgi (7)
---------------------------------
169.7 MiB
=================================
.
これは予想されていますか?
私は誤って何かを設定しましたか?(master= true、4労働者)
サーバーがストレスのあるときにのみ利点を見ますか?
解決
すべて設定に戻ります。ほとんどのメモリはFAT Python Webアプリケーションから来ているため、実際に基づくWSGIサーバーのメモリを使用することは一般的にほとんど寄与しません。
あなたは私のPycon Talkを見るべきで、私がこの特定の問題をカバーすると、デフォルトのデフォルトでどのようにして詐欺されるか、さまざまなWSGiサーバーソリューションをどのように欺いています。
>> http://lanyrd.com/2012/pycon/spcdg/
短い場合は、Apache / Mod_WSGIがさらに多くのメモリを使用することがわずかなisruthです。他のソリューションに同等の方法でそれを設定し、それは同じPython Webアプリケーションに対して同等のメモリを使用します。
他のヒント
プロジェクトuwsgi .ini に次のルールを追加する
.
limit-as=128
最大リクエスト:5Kリクエストに達するとリサイクルプロセス
max-requests=5000
. 所属していません StackOverflow