2011-09-25 186 views
7

如何优化Django以获得更好的性能?有一些指导?我有以下问题:Django性能调优技巧?

  • 是mod_wsgi最好的解决方案吗?
  • 有没有像PHP一样的操作码缓存?
  • 我应该如何调整Apache?
  • 如何设置我的模型,以便更少/更快的查询?
  • 我可以使用Memcache吗?在一些您的问题
+2

您是否患有性能问题? –

回答

4

评论:

是mod_wsgi的最佳解决方案?

对于大多数人来说,Apache/mod_wsgi已经足够了,因为即使Apache没有正确设置,它们也不会有足够的流量导致问题。 Web服务器通常不是瓶颈。

有一些码缓存就像在PHP?

Python的缓存编译后的代码在内存中的进程坚持跨请求。因此,您不需要像PHP那样的单独的操作码缓存产品,因为这是Python在默认情况下所做的。你只需要确保你没有使用托管机制或配置,这会导致进程被抛出每个请求或过于频繁。例如,不要使用CGI。

我应该如何调整Apache的?

不知道你的应用程序,或者你正在主持它放在一个无法给出简单的指导,你需要如何设置Apache系统的任何东西。这是因为吞吐量,请求持续时间,使用的内存量,可用内存量,处理器数量以及更多的功能。如果你还没有编写你的应用程序,那么你只是在这里跳枪,因为直到你知道更多关于你的应用程序和生产负载,你不能最优化地调整Apache。

几个简单的建议,但。

  • 不要在同一个Apache主机的PHP。
  • 使用Apache worker MPM。
  • 使用mod_wsgi守护进程模式而不是嵌入模式。

仅凭这一点,您就不会为自己造成太多的痛苦。

如果您真的需要更好地调整整个堆栈,即应用程序和Web服务器,而不仅仅是过早地优化,因为即使您没有真正编写任何代码,您仍然会拥有下一个FaceBook但是,您需要开始查看性能监视工具来确定您的应用程序在做什么。您的应用程序和数据库将成为您问题的真正来源,而不是Web服务器。

我谈论的那种性能监测工具就像New Relic。尽管如此,如果你还很早,甚至没有部署任何东西,那么这本身就是浪费时间。换句话说,在担心如何以最佳方式运行它之前,先让代码工作。