我正在使用Windows Server 2008,Apache 2.2 Python 2.7和Django作为FCGI服务器
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]
RewriteEngine On
...
RewriteCond ${REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ /fcgi.hook/$1 [QSA,L]
当有5-6位用户在线时,我的django网站运行良好,没有错误。 但是当我进行压力测试(通过loadimpact.com的50个虚拟用户)时,该站点显示“500内部服务器错误”页面,我在apache日志中收到错误消息:
但是在Django日志中有注意到。我怎样才能调试这个问题并摆脱它?
答案 0 :(得分:0)
看,你有maxchildren = 100 1.如果您的请求超过1-2秒(可能在调试中),那么您的服务器就无法处理所有50个连接 2.如果您有静态文件并且由django提供服务 - 那么它还使用其他连接
解决方案:您可以分析日志并计算5秒内您有多少请求,例如