2013-04-08 42 views
0

的设置是:Django应用程序是laggy

  1. 的Windows XP虚拟机(与此卡住暂时 - 我们的Intranet上)
  2. 的Apache 2,
  3. mod_wsgi的
  4. 的Django 1.4
  5. 的virtualenv
  6. 我们只有两个用户最多同时使用这个应用程序

一切正常,但浏览器的请求和服务器发回的响应之间存在显着的延迟(10-20秒)。

如果我用Django开发服务器(我不想在生产中执行)替换Apache2 Web服务器,该应用程序的响应速度非常快。所以我的假设是,问题是Apache2配置或mod_wsgi配置。

我不是Apache专家,花了数小时寻找正确的设置来配置Apache2 Web服务器,但未能找到任何可以改善响应的东西。

任何援助将不胜感激。

这里是我要么更改或添加到我的httpd.conf的设置:

# ThreadsPerChild: constant number of worker threads in the server process 
ThreadsPerChild 10 
# Changed MaxRequestsPerChild 0 to 1 for Django 
MaxRequestsPerChild 1 
# For Django KeepAlive should be OFF 
KeepAlive Off 

WSGIApplicationGroup %{GLOBAL} 
####################################### 
WSGIScriptAlias/"C:/virtual_env/sitar_env2/cissimp/cissimp/wsgi.py" 
WSGIPythonPath C:/virtual_env/sitar_env2/Lib/site-packages;C:/virtual_env/sitar_env2/cissimp 
Alias /static "C:/virtual_env/sitar_env2/cissimp/cissimp/static" 
<Directory "C:/virtual_env/sitar_env2/cissimp/cissimp"> 
<Files wsgi.py> 
Order allow,deny 
Allow from all 
</Files> 
</Directory> 
########################################## 
+0

这里有很多可能的问题,但常见的问题是一些名称解析问题。你有没有尝试设置ServerName apache指令?从服务器机器访问Web应用程序时是否发生问题?从另一个?从两个? – niconoe 2013-04-08 15:52:44

回答

1

不要设置:

MaxRequestsPerChild 1 

您在这意味着不必每个请求有效地重启动Apache在每个请求中加载整个Django应用程序。你不应该那样做。

+0

从我读到的这是Django推荐的设置。你在暗示这是因为我使用的是Windows吗?你能推荐适当的设置吗? – PlacidLush 2013-04-09 11:18:07

+0

将MaxRequestsPerChild设置为1绝对不是Apache推荐的设置。即使对于开发,它也不是一个好主意。你在读什么,说这样做。阅读http://blog.dscpl.com.au/2008/12/using-modwsgi-when-developing-django.html http://blog.dscpl.com.au/2009/02/source-code-reloading- with-modwsgi-on.html http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode – 2013-04-09 23:15:59

+0

非常感谢格雷厄姆。我查看了您的博客,并将MaxRequestsPerChild设置为0,并且性能真正提升。该设置是Django文档中mod_python建议配置的延期。 – PlacidLush 2013-04-10 11:38:24