我有两台服务器,有两个版本的 django 0.9.6 和 1.0.2。
两者都被使用,用于一些较旧的站点(迁移仍在等待中),现在 ppl 已经开始使用 1.0.2。
我在 RHEL 4 32 位服务器上有 apache 2.2.9 和 mod_python 3.3.1。
在一台服务器上,无论 django 版本如何,所有站点都运行得非常快。
但在使用 django 1.0.2 的第二个服务器站点中,初始加载时间为 4-5 秒(等待站点....在状态栏中)。
所有缓存/压缩等都完美完成。
我怀疑一些 mod_python/django 隔离问题,我的 apache Keep-Alive 已打开。
但是这两个服务器又具有相似的 apache 设置,所以现在对我来说是一个疯狂的时刻。我什至比较了所有文件权限/安装的库等。
请建议我如何进行。
最好的问候德巴吉特
Django 推荐 mod_wsgi 用于生产安装。有关更多信息,请参阅http://docs.djangoproject.com/en/dev/topics/install/#install-apache-and-mod-wsgi。也许你试试这个 Apache 模块,看看问题是否仍然存在。
Apache/mod_python 在第一次请求时延迟加载 Django 应用程序,因此您的第一个请求将看到加载所有代码和初始化应用程序数据的延迟。
如果在 Apache 中使用 prefork MPM,这个问题看起来真的很糟糕,因为必须在更多进程中完成应用程序的加载,因此会影响更多初始请求。
Apache/mod_wsgi 有同样的问题。如果这是一个问题,您需要配置应用程序的预加载。
有关使用 Apache/mod_python 的其他问题,请参阅:
http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html
首先请遵循 mod_wsgi 建议。
您还应该确保您没有通过 mod_python 提供媒体。Apache 擅长处理静态文件,但你的解析器会做得很糟糕。这里的Django 文档中有一些信息。
通过包含配置的清理副本,您可以获得更详细的帮助。