Django可以缩放吗?

2024-04-23 21:45:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

现在我越来越想出版我的作品,我开始担心规模。我发现的关于Django扩展能力的唯一信息是Django团队提供的(我并没有说要忽略它们,但这显然不是客观信息……)。

我的问题:

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

Tags: 工具django用户web语言信息应用程序网站
3条回答

不确定每天访问的次数,但这里有几个大型Django网站的例子:

这是一个指向high traffic Django sites on Quora列表的链接。

我们正在做负载测试。我们认为我们可以支持240个并发请求(持续的每秒120次点击率24x7),而不会显著降低服务器性能。那将是每小时432000次点击。响应时间并不小(我们的事务量很大),但随着负载的增加,我们的基线性能不会降低。

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

我们都在一个64位戴尔(我认为)32Gb内存的虚拟机。

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

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

  1. “今天在Django建的最大的遗址是什么?”

    在Django构建的站点上,没有一个地方可以收集流量信息,所以我必须使用来自不同位置的数据来尝试一下。首先,我们在the main Django project page的首页上有一个Django站点列表,然后在djangosites.org有一个Django构建的站点列表。浏览列表,挑选一些我知道的流量不错的:

  2. “Django每天能处理100000个用户,每个用户访问网站几个小时吗?”

    是的,见上文。

  3. “Django上是否可以运行类似堆栈溢出的站点?”

    我的直觉是肯定的,但正如其他人的回答和迈克马龙在演讲中提到的那样,数据库设计是至关重要的。如果我们能找到任何可靠的流量统计数据,也可以在www.cnprog.com上找到有力的证据。不管怎么说,这不仅仅是一系列Django车型的组合:)

    1. 当然,还有更多感兴趣的网站和博客,但我必须停下来!


      关于Using Django to build high-traffic site michaelmoore.com的博客文章,描述为top 10,000 websiteQuantcast statscompete.com stats


      (*)编辑的作者,包括此类参考,用于在该项目中作为外包开发人员工作。

相关问题 更多 >