Django可以扩展吗?[已关闭]

我正在用Django构建一个Web应用程序。我选择Django的原因是:

  • 我想使用免费/开源工具。
  • 我喜欢Python,觉得它是一种长期的语言,而关于Ruby我不确定,PHP似乎是一个巨大的麻烦学习。
  • 我正在为一个想法构建一个原型,并没有过多地考虑未来。开发速度是主要因素,我已经知道Python了。
  • 我知道,如果我将来选择迁移到Google App Engine会更容易。
  • 我听说Django很“好”。

现在我越来越接近考虑出版我的作品,我开始担心规模。我发现的关于Django扩展功能的唯一信息是由Django团队提供的(我不是说要忽略它们,但这显然不是客观信息......

我的问题:

  • 今天在Django上构建的“最大”网站是什么?(主要通过用户流量来衡量大小)
  • Django每天可以处理100,000个用户,每个用户访问该网站几个小时吗?
  • 像Stack Overflow这样的网站可以在Django上运行吗?

答案 1
  1. “今天在Django上建造的最大的网站是什么?”

    没有任何一个地方可以收集有关Django构建站点上的流量信息,因此我必须使用来自不同位置的数据对其进行尝试。首先,我们在Django主项目页面的首页上有一个Django站点列表,然后在 djangosites.org 上有一个Django构建站点列表。浏览列表并选择一些我知道有不错的流量,我们看到:

  2. “Django能否每天处理100,000名用户,每个用户访问该网站几个小时?”

    是的,见上文。

  3. “像Stack Overflow这样的网站可以在Django上运行吗?”

    我的直觉是肯定的,但是,正如其他人回答的那样,迈克·马龙(Mike Malone)在他的演讲中提到的,数据库设计至关重要。如果我们能找到任何可靠的流量统计数据,也可以在 www.cnprog.com 找到强有力的证据。无论如何,这不仅仅是通过将一堆Django模型放在一起:)

当然,还有更多感兴趣的网站和博主,但我必须在某个地方停下来!


关于使用Django构建高流量网站的博客文章 michaelmoore.com 被描述为前10,000名网站量化统计compete.com 统计


(*)编辑的作者(包括此类引用)曾经在该项目中担任外包开发人员。


答案 2

我们现在正在进行负载测试。我们认为我们可以支持 240 个并发请求(24x7 全天候每秒 120 次点击的持续速率),而不会显著降低服务器性能。这将是每小时432,000次点击。响应时间不小(我们的事务很大),但随着负载的增加,我们的基准性能不会降低。

我们使用的是Apache前端Django和MySQL。操作系统是Red Hat Enterprise Linux(RHEL)。64 位。我们在 Django 的守护进程模式下使用mod_wsgi。除了接受默认值之外,我们没有进行任何缓存或数据库优化。

我们都在一个64位戴尔的VM中,(我认为)32Gb RAM。

由于20或200个并发用户的性能几乎相同,因此我们不需要花费大量时间“调整”。相反,我们只需要通过普通的SSL性能改进,普通的数据库设计和实现(索引等),普通的防火墙性能改进等来保持我们的基本性能。

我们测量的是我们的负载测试笔记本电脑在运行16个并发请求线程的15个进程的疯狂工作负载下挣扎。


推荐