我正在用Django构建一个web应用程序。我选择Django的原因是:
- 我想使用免费/开源工具。
- 我喜欢Python,觉得它是一种长期的语言,而对于Ruby我还不确定,PHP似乎是一个很难学习的东西。
- 我正在为一个想法建立一个原型,并没有考虑太多的未来。开发速度是主要因素,我已经了解Python。
- 我知道如果我选择在将来迁移到Google App Engine会更容易。
- 我听说Django“很好”。
现在我越来越想出版我的作品,我开始担心规模。我发现的关于Django扩展能力的唯一信息是Django团队提供的(我并没有说要忽略它们,但这显然不是客观信息……)。
我的问题:
- 今天建在Django的“最大”网站是什么?(我主要通过用户流量来衡量大小)
- Django是否可以每天处理100000个用户,每个用户访问网站几个小时?
- 像Stack Overflow这样的站点能在Django上运行吗?
Tags:
不确定每天访问的次数,但这里有几个大型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个并发请求线程的疯狂工作负载下挣扎。
“今天在Django建的最大的遗址是什么?”
在Django构建的站点上,没有一个地方可以收集流量信息,所以我必须使用来自不同位置的数据来尝试一下。首先,我们在the main Django project page的首页上有一个Django站点列表,然后在djangosites.org有一个Django构建的站点列表。浏览列表,挑选一些我知道的流量不错的:
Instagram:What Powers Instagram: Hundreds of Instances, Dozens of Technologies。
Pinterest:Alexa rank 37 (21.4.2015)和2013年的7000万用户
Bitbucket:200TB of Code and 2.500.000 Users
Disqus:Serving 400 million people with Python。
curse.com:600k daily visits。
tabblo.com:44k daily visits,请参阅Ned Batchelder的文章Infrastructure for modern web sites。
chesspark.com:Alexa排名约179k。
pownce.com(不再活动):alexa排名约65k。 Pownce的Mike Malone在他的EuroDjangoCon演讲中说“每秒数百次点击”。这是一个关于如何扩展Django的非常好的演示,并且提出了一些优点,包括Django可伸缩性中的(当前的)缺点。
惠普用Django 1.5:ePrint center建立了一个网站。然而,对于novemer/2015,整个网站被迁移,这个链接只是一个重定向。本网站是一项全球服务,参与订阅HP提供的Instant Ink和相关服务(*)。
“Django每天能处理100000个用户,每个用户访问网站几个小时吗?”
是的,见上文。
“Django上是否可以运行类似堆栈溢出的站点?”
我的直觉是肯定的,但正如其他人的回答和迈克马龙在演讲中提到的那样,数据库设计是至关重要的。如果我们能找到任何可靠的流量统计数据,也可以在www.cnprog.com上找到有力的证据。不管怎么说,这不仅仅是一系列Django车型的组合:)
当然,还有更多感兴趣的网站和博客,但我必须停下来!
关于Using Django to build high-traffic site michaelmoore.com的博客文章,描述为top 10,000 website。Quantcast stats和compete.com stats。
(*)编辑的作者,包括此类参考,用于在该项目中作为外包开发人员工作。
相关问题 更多 >
编程相关推荐