【发布时间】:2011-11-20 14:09:44
【问题描述】:
有人知道 Django 的缓存框架在部署到 Apache/Mod_WSGI 时有什么问题吗?
当使用开发服务器在本地使用缓存框架进行测试时,使用分析中间件和 FileBasedCache 或 LocMemCache,Django 的速度非常快。我的请求时间从 ~0.125 秒到 ~0.001 秒。太棒了。
我将相同的代码部署到运行 Apache/Mod_WSGI 的远程机器上,我的请求时间从 ~0.155 秒(部署更改之前)到 ~.400 秒(部署后)。没错,缓存让一切都变慢了。
我花了几个小时挖掘所有东西,寻找我缺少的东西。我已经尝试使用 FileBasedCache 与 tmpfs 上的位置,但这也未能提高性能。
我用 top 监控了远程机器,它没有显示其他进程并且它有 6GB 可用内存,所以基本上 Django 应该完全控制。我喜欢 Django,但它的速度非常慢,到目前为止,我从来没有能够让缓存框架在生产环境中产生任何明显的影响。我有什么遗漏吗?
编辑:我也尝试过 memcached,结果相同。我通过 telnet 确认 memcached 正在运行。
【问题讨论】:
-
你用什么缓存?如果您使用的是 memcached,而 memcached 并没有实际运行,django 不会告诉您,但不会进行缓存。确保实际发生缓存可能会很好。
-
您使用的是 prefork 还是 Apache 的 worker MPM?你是在嵌入式模式还是守护进程模式下运行 mod_wsgi?您可能只是在运行配置错误的 Apache/mod_wsgi。
标签: python django performance