2

FCGIサーバーとしてWindowsServer2008、Apache 2.2 Python 2.7、Djangoを使用しています

FCGIサーバーは、SrvAnyを使用してサービスとして開始されます。


python c:\amebas_site\amoeba\manage.py runfcgi host=127.0.0.1 port=8881 daemonize=True method=threaded outlog=c:\amebas_site\logs\access.log errlog=c:\amebas_site\logs\error.log maxchildren=100 maxspare=90 minspare=50 maxrequests=10 debug=True

さまざまなmaxspare、minspare、maxrequests、maxchildrenの値を試しましたが、何も役に立ちませんでした。高負荷で常に「500サーバーエラー」が発生します。

Apache構成:

FastCGIExternalServer c:\amebas_site\fcgi.hook -host 127.0.0.1:8881

 RewriteEngine On
 ...
 RewriteCond ${REQUEST_FILENAME} !-f
 RewriteRule ^/(.*)$ /fcgi.hook/$1 [QSA,L]

私のdjangoWebサイトは、オンラインに5〜6人のユーザーがいる場合にうまく機能し、エラーはありません。しかし、ストレステスト(loadimpact.com経由で50人の仮想ユーザー)を実行すると、サイトに「500内部サーバーエラー」ページが表示され、Apacheログにエラーメッセージが表示されます。

[Thu Dec 06 16:29:48 2012] [error] [client 54.246.71.7] (OS 10054)An existing connection was forcibly closed by the remote host. : FastCGI: comm with server "C:/amebas_site/fcgi.hook" aborted: read failed [Thu Dec 06 16:29:48 2012] [error] [client 54.246.71.7] FastCGI: incomplete headers (0 bytes) received from server "C:/amebas_site/fcgi.hook"

しかし、Djangoのログには注目があります。この問題をデバッグして取り除くにはどうすればよいですか?

4

1 に答える 1

0

maxchildren=100 があります 1. リクエストが 1 ~ 2 秒を超える場合 (デバッグで可能)、サーバーは 50 接続すべてを処理できませんでした 2. 静的ファイルがあり、それが django によって提供されている場合 - それは追加の接続も使用します

解決策: ログを分析し、たとえば 5 秒間のリクエスト数を計算できます

于 2012-12-06T15:13:03.550 に答える