阅读更多


Twitter 是用 RoR 开发的流量最大的站点. 应用了 Rinda,其 基于 DRb使用DRb (”Distributed Ruby”.), 该库可以通过 TCP/IP 从远程 Ruby 对象发送接收消息,
,还用到了erlang技术中著名的 ejabberd。

5月9日,其官方网站上登信息辟谣, Twitter没有计划放弃ruby on rails,早就开始使用了混合语言改进性能。

为什么这个谣言传得这么快,这么像真的?

许多人总是担心rails的性能问题,一旦网站稳定性出了问题,首先考虑是rails撑不住了。

真实的情况是这样的:

1)网站和传统java,delphi桌面或企业应用程序不同,大部分性能不是来自语言,而是来自应用设计。

2)目前twitter可以支持每秒11000个请求,性能已经够了。
这是什么概念?假设1000万个用户,每个用户平均每天发10个帖子,每秒也就1000个帖子。
如果1000万个用户,每人运行一个客户端来发贴,24小时内每15分钟发一贴,每秒为10000个帖子。
现在twitter的规模还不到1000万用户,更没有每天如此活跃的1000万用户和客户端。

3)系统宕机的原因是有些恶意的程序通过API发帖,在瞬间超过了11000个以上。
系统必须通过限制程序的短时间内发帖总量,避免恶意程序破坏。
谁在做这些事?SEOer,twitter排名靠前, PR高, 发帖有API接口,很容易快速建立反向链接,许多人都在做这些发帖。也有些好奇者用极端情况测试,比如24小时增加9000个朋友。
有效地控制一个合理上限,是应用设计的一个关键。
为了彻底灭掉SEOer的行为,twitter已经去掉了帖子中的链接。
对于极端用户,已经做了封闭帐号或删除处理。
还使用了一系列方式检测这些问题。

4)目前性能足够,所以twitter没有使用数据分区存储,还是Master-slave架构。
相信要提升空间,还有很大余地。比如将用户按照地区或名称计算hash值,分配到10个或更多的数据库服务器上。

twitter平台如下:
------------------------------------------------
Ruby on Rails
Erlang
MySQL
Mongrel
Munin
Nagios
Google Analytics
AWStats
Memcached

据说twitter目前的运行状态如下:
------------------------------------------------
每秒钟600请求
每秒钟平均200-300个连接,峰值为800个连接
MySQL每秒钟处理2,400个请求
180个Rails实例,使用Mongrel作为Web服务器
1个MySQL服务器(one big 8 core box)和1个slave用于只读的统计和报告
30+进程用于处理其余的工作
8台Sun X4100s
Rails在200毫秒内处理一个请求
花费在数据库里的平均时间是50-100毫秒
超过16GB的memcached
14
2
评论 共 4 条 请登录后发表评论
4 楼 troyconder 2008-05-11 11:32
:idea:
3 楼 troyconder 2008-05-11 11:31
Java Delphi ?
Java 和 Delphi 一样吗?
2 楼 larryzou 2008-05-10 11:13
看了lordhong翻译的zed的文章,你就不这么想了。。
而且看最新IBM websphere CTO推出了sMash服务器,提到的,脚本语言的局限性,他们会怎么去workaround blabla ...
感觉还是java可靠,on rail方便
1 楼 bluehood 2008-05-10 10:41
[网站和传统java,delphi桌面或企业应用程序不同,大部分性能不是来自语言,而是来自应用设计。] 

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 百度文档下载工具

    下载百度文库文档,资料等,超级好用,下载后解压即可使用

  • 项目管理十二原则

    原则属于价值观层面,它会影响或直接指导人的行动。(重要性)项目管理的原则是非强制性的,对于项目管理非常重要。

  • 成功的软件项目管理 需要遵循的5大原则

    软件项目管理的5大成功原则

  • 项目成功六要素

    1、项目经理——项目管理成功的基础    项目经理,负责项目的组织、计划及实施全过程,以保证项目目标的成功实现。是项目班子的“灵魂”。成功的项目无一不反映了项目经理的才能,而失败的项目同样也说明了项目经理的重要性。 项目经理要有出色的领导能力。这是项目经理最为重要的能力之一,主要表现为明确方向、制定决策以及影响他人。项目经理是整个团队的旗帜,率领团队达成项目目标是项目经理的首要任务。在团队遇到

  • VVV文档在线导出工具 百度文库导出

    VVV文档在线导出工具 百度文库导出工具,不用下载,在线使用

  • u盘使用记录、痕迹删除技巧方法

    在日常生活的使用U盘过程当中,系统会记录下大量U盘的使用记录信息,那么接下来小编就来同大家分享介绍如何删除掉这些使用记录的方法知识。   1. 往系统里面添加环境变量devmgr_shownonpresent_devices,值为12. 运行设备管理器,打开查看隐藏设备。展开磁盘驱动器、储存卷两处,把和U盘有关的Kill掉。3. 打开计算机管理,把可移动存储相关的删除。4. 把

  • it项目经理面试题

    1 你认为项目中最重要的是哪些过程? 分析、设计阶段(也可以加上测试,但千万别说编码或开发阶段),根据《人月神话》的观点:1/3 计划;1/6 编码;1/4 构件测试和早期系统测试;1/4 系统测试,所有的构件已完成。但根据国内目前的状况一般公司不会有很多的分析与设计时间(这取决于公司规模和时间成本),这样在一个工期很紧张的项目中我们应该尽量分配出进度优先级来,首先拿出客户最希望看到的和最能证明

  • 百度文库免费下载方法,亲测可用!建议收藏!

    后台经常有小伙伴问能不能下载百度文库的 于是,我就随手搜了一下百度文库下载 结果网上各种方法 但是其中靠谱的并不多 要么就是需要充钱买点 要么就是下载下来格式混乱 我亲手试了十多款免费下载的方法 从中筛选出了几个靠谱的 分享给大家 1 baiduvvv 工具地址:http://wenku.baiduvvv.com/doc/ 该工具是 V2EX 网站上的大神发布的一款工具 大神对自己的工具是这么介...

  • 读书笔记:敏捷估计和规划

            最近读完了《敏捷估计和规划》,这本书对于实现敏捷开发具有很强的实战意义, 提供了很多实际的操作方式和工具集,下面就是这本书的核心“敏捷估计和规划的12条指导原则” 1.让整个小组参与。(打扑克牌)     特定活动的主要职责可能会落在某个人或者某个分组身上,例如确定需求的优先级主要是产品所有者的职责。但是,在最求可能具有高价值的项目时,要让整个小组参...

  • 项目管理24原则

    高效而成功的项目管理并非易事。作为项目经理,你要老谋深算,要忍受不确定性的折磨,要面对挫折,还要应付沮丧的情绪。这些挑战给你带来的压力将是难以承受的,特别是当责任与权利不对等的时候更是如此。同时,项目管理的风险也是巨大的,如果一个项目失败,就可能给你的职业生涯带来长期的不利影响。那么怎样才能成为一个卓越的项目经理人,在千变万化的市场环境下管理好每一个项目呢?作为科学和艺术的完美结合,本书不仅以

  • 软件度量的方法体系

    http://se.csai.cn/SoftQuality/No095.htm 项目度量   项目度量是针对软件开发项目的特定度量,目的在于度量项目规模、项目成本、项目进度、顾客满意度等,辅助项目管理进行项目控制。 规模度量    软件开发项目规模度量(size measurement)是估算软件项目工作量、编制成本预算、策划合理项目进度的基础。规模度量是软件项目失

  • Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may no...

    Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported 一、总结 一句话总结:解决方案是图片设置crossOrigin属性 图片设置 :crossOrigin属性代码片段:img.setAttribute("crossOr...

  • 软件项目管理的成功原则

    在我们讨论软件项目为什么会失败时可以列出了很多的原因,答案有很多,如管理问题、技术问题、人员问题等等,但是有一个根本的思想问题是最容易忽视的,也是软件系统的用户、软件开发商、销售代理商最不想正视的,那就是:需求、资源、工期、质量四个要素之间的平衡关系问题。   需求定义了"做什么", 定义了系统的范围与规模,资源决定了项目的投入(人、财、物),工期定义了项目的交付日期,质量定义了做出的系统好到什...

  • 如何免费下载百度文库,豆丁网等付费文章

    不鼓励盗版,不鼓励盗用!!!仅为需要相关资料的小伙伴提供一个方法,请尊重作者的原创版权 百度云下载地址 鉴于一些小伙伴在查找一些资料的时候经常遇到付费问题无法看到全文,本文仅提供相关经验,尊重原创,尊重作者。 冰点下载器:本下载器为绿色版,无需安装,运行即可。 1、下载后解压打开文件夹,双击Fish.exe打开,如无法打开,可右击选择以管理员身份运行 2、出现这个

  • 成功软件项目的七个关键因素成功软件项目的七个关键因素

    Successfully executing a software project, requires a clearly defined plan that all parties understand and endorse...

  • 百度文库免费下载,亲测,原格式文档

    大家知道,现有的下载百度文库的方法,下载的文档都不是原格式,都是 txt 格式的混乱文档,编辑起来很伤脑筋,还浪费时间。 反正我是受不了,惊喜发现一个下载原格式文档的方法,重点还是免费的!!! 网站:巴法文库(你百度搜索 巴法文库,第一个就是) 使用教程: 1、关注二维码,回复"文库"会有免费账号和使用教程,有的文档是不能下载的,这个要看他们的教程,好像只可以下载 带下载券的文档,和vip免费文档。 默默说一下:免费账号还可以更换,每次去取账号还都不一样。 建议:搜索的时候搜vip免费文档,不然带下载券的文

  • python可以下载百度文库_百度文档,用Python一键免费下载

    百度文库下载需要券,或者vip才能下载Vip价格高,偶尔下载一次不划算。不下载复制?不好意思复制也需要vip否则只能一次复制两行。如何才能以最低成本获取到百度文库里的文档内容呢?当然是用Python啦!接下来教大家如何使用Python免费下载百度文档。由于百度文库的内容是通过网页展示的,那我们猜他是通过后台加载进来的。可以先通过Ctrl+u查看HTML源码,看源码里面是否有文档数据。很遗憾HTML...

  • 什么样的项目算是成功的?

    一个项目如何算作成功,人们印象最深的肯定是由Oilsen [1]提出的著名的铁三角理论,这也是因为这一理论被美国项目管理协会采用,并写入到了PMBOK当中。其实在这一体系中所强调的,是项目管理工作的成功,也就是进度、成本与质量的相互关系。[Project Management Institute 2000]   这里应该解释的问题是,很多文献中所谈到的项目成功,指的是项目管理的成功,Da Wit

  • 值得收藏的哲理小故事

    <br /><br />项目成功的关键要素<br />作者:徐景周<br />很多东西用语言来表达是多么的空洞与乏力,只能靠我们意会,去领悟个中滋味。<br />管理篇<br />1. 谋定而后动,知止而有得。     <br />-- 先静之,再思之,五六分把握既为之<br />案例 <br />电台请一位商界奇才做嘉宾主持,大家非常希望能听他谈谈成功之路。但他只是淡淡一笑,说:“还是出个题考考大家吧。”“某地发现了金矿,人们一窝蜂地拥去,然而一条大河挡住了必经之路。是你,会怎么办?” 有人说“绕道走”,

  • 华为项目团队亲测——项目成功的关键因素

    做好大型项目的五个关键 几百人、上千人组成的大型项目/战役有很多挑战,乍一看让人望而却步,但仔细梳理下来好像也没有那么复杂,只需要厘清以下几个关键点: 1、拿什么结果 -&gt; 项目的目标 2、谁是我战友 -&gt; 项目的成员 3、啥时候吹号 -&gt; 项目的计划 4、怎么来协同 -&gt; 项目的机制 5、战后做点啥 -&gt; 复盘和沉淀 思路就是: 明确事-&gt;找对人...

Global site tag (gtag.js) - Google Analytics