時々重い負荷がかかるSOAPmod_wsgi(apache)アプリがあります。同じApacheが他のいくつかのwsgi-appsをサーバーします。残念ながら、MaxClientsは、wsgi-appごとではなく、サーバーレベルでのみ設定できます。
我々が得る:
server reached MaxClients setting, consider raising the MaxClients setting
このwsgiアプリがすべてのapacheワーカーを食べないようにする方法はありますか?
SOAPwsgiアプリに接続するSOAPクライアントにのみ503「ServiceUnavailable」を返したい。
Apache構成スニペット:
WSGIDaemonProcess soap_app threads=1 processes=3
WSGIScriptAlias /soap_app /home/soap_app/django_wsgi.py
<Location "/soap_app/">
WSGIProcessGroup soap_app
WSGIApplicationGroup %{GLOBAL}
</Location>
soapアプリのwsgiデーモンプロセスは3つだけです。しかし、それははるかに多くのアパッチ労働者を占めています。
更新: apachepreforkmpmを使用します。Napacheワーカーがいます。また、mod_wsgiにはpreforkも使用します。M個のmod_wsgiワーカープロセスがあります。apacheワーカーの数は、MaxClientsによって制御できます。mod_wsgiワーカー数は、上記の構成によって制御されます。
python wsgiアプリ(django)内ではこれを処理できないと思います。mod_wsgiまたはapacheconfigで行う必要があると思います。
mod_statusの最初の行は次のとおりです。
Server Version: Apache/2.2.17 (Linux/SUSE) mod_ssl/2.2.17 OpenSSL/1.0.0c
mod_wsgi/3.3 Python/2.7
Server Built: 2011-07-26 13:43:36.000000000 +0000
===============================================================================
Current Time: Thursday, 20-Sep-2012 13:15:11 CEST
Restart Time: Thursday, 06-Sep-2012 16:30:45 CEST
Parent Server Generation: 0
Server uptime: 13 days 20 hours 44 minutes 25 seconds
Total accesses: 307471 - Total Traffic: 7.7 GB
CPU Usage: u11.85 s1.56 cu0 cs0 - .00112% CPU load
.257 requests/sec - 6.8 kB/second - 26.4 kB/request
127 requests currently being processed, 13 idle workers
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWKWWWWW_WWWWWKWWWWWWWWW_WWWWWW_WW_WWWWWWK._WW
W__WW__._W_W__........
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
0-0 15135 0/27/ W 0.04 8417 0 0.0 0.37 290.12 10.1.1.1 foohost POST /soap_app/foo HTTP/1.1
11553
0/
1-0 15142 125/ W 0.18 7354 0 0.0 2.48 324.82 10.1.1.1 foohost POST /soap_app/foo HTTP/1.1
12475
0/
2-0 18350 157/ W 0.27 4780 0 0.0 4.84 300.09 10.1.1.1 foohost POST /soap_app/foo HTTP/1.1
11249
3-0 20112 0/10/ W 0.02 7106 0 0.0 0.29 315.77 10.1.1.1 foohost POST /soap_app/foo HTTP/1.1
12714
4-0 16562 0/35/ W 0.07 7853 0 0.0 0.96 328.98 10.1.1.1 foohost POST /soap_app/foo HTTP/1.1
12098
5-0 20152 0/25/ W 0.06 6732 0 0.0 0.71 288.17 10.1.1.1 foohost POST /soap_app/foo HTTP/1.1