Twitter 的架构扩展: 100 倍性能提升
2007-11-06 12:42
253 查看
原贴:http://www.dbanotes.net/opensource/twitter_arch.html
网址: http://www.dbanotes.net/opensource/twitter_arch.html
Twitter 是我最近一段时间用的最多的网络服务之一.还记得刚开始有段时间发消息速度那叫一个慢. 难得的是 Twitter 的开发者在用户激增的情况下性能提升的不错, 据说,相比当初有 100 倍的性能提升, 那我们就来看看他们都做了什么.(发现我这个 Blog 快成了 High Scalability 的中文镜像站了.)
是否真的是 100 倍性能提升, 大可不必较真, 但 Twitter 的一些经验是足以借鉴的.
图片来源. (这里面我非常疑惑的一点是据说只有两台DB(Master/Slave),可要支撑这么大的并发更新似乎有些难度.)
另外一个很重要的环节是 Cache, 不废话了,没有好的Cache机制怕这样的站点不会成功的. (建议阅读车东辛苦翻译的这篇面向站长和网站管理员的Web缓存加速指南[翻译]). Twitter 运营的一个可取之处是能够积极听取社区的意见并改进, 同时社区上也有很多用户给他们提供了不少技术支持. 这也是开放而带来的好处吧.
--EOF--
这篇 【Twitter 的架构扩展: 100 倍性能提升 】来自 dbanotes.net |
del.icio.us | 雅虎收藏+
By Fenng on November 5, 2007 6:47 PM | Permalink | Comments (2) | OpenSource | Edit
Generator
Get Firefox with Google Toolbar for better browsing
Generate revenue from your website. Google AdSense.
应该是最大的ROR站点
Fenng, add my gtalk :)
November 5, 2007 6:18 PM
citywill 的评论:
现在依然有速度不能忍受的时候
November 5, 2007 8:53 PM
Twitter 的架构扩展: 100 倍性能提升
作者: Fenng | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.dbanotes.net/opensource/twitter_arch.html
Twitter 是我最近一段时间用的最多的网络服务之一.还记得刚开始有段时间发消息速度那叫一个慢. 难得的是 Twitter 的开发者在用户激增的情况下性能提升的不错, 据说,相比当初有 100 倍的性能提升, 那我们就来看看他们都做了什么.(发现我这个 Blog 快成了 High Scalability 的中文镜像站了.)
是否真的是 100 倍性能提升, 大可不必较真, 但 Twitter 的一些经验是足以借鉴的.
Ruby on rails
似乎 Twitter 是用 RoR 开发的流量最大的站点(有待于求证). 开始使用DRb ("Distributed Ruby".), 该库可以通过 TCP/IP 从远程 Ruby 对象发送接收消息, 其缺点是不那么好用,并且没有冗余, 于是转向 Rinda , Rinda 基于 DRb 开发, 使用简单. Twitter 也证明了 Ror 应用同样可以支撑比较繁忙的站点, 工具没有对于错,关键是否能运用好.图片来源. (这里面我非常疑惑的一点是据说只有两台DB(Master/Slave),可要支撑这么大的并发更新似乎有些难度.)
ETag
Twitter 对于Etag 的态度让不少人疑惑. 这恰恰是因技术制宜的一个体现, 因为 Etag 不是万能药. 另外一点比较重要的原因是 Twitter 有超过 90% 的流量来自 API, 而 多数 API 客户端不支持 Etag.数据库方面的经验
尽可能的索引(Fenng补充:不要过度索引). 因为 RoR 应用的特殊性, 索引是在代码中向 DB 提交的. 另外一个值得议题的是, 反范式. 严格遵守范式是要吃苦头的.建立可行的测试方法,明确的知道你的SQL都在用什么方式运行.(另外,我有个疑问是 rails 不支持 2 阶段提交的吧?)避免资源过度被占用
哪个站点都不避免的有"水葫芦用户",对于这样的 Spam 类型用户, 肯定会影响原有的应用处理资源. 该处理就要处理掉. 另一个方面,对于间歇性占用系统资源过多的进程用 Monit 处理.另外一个很重要的环节是 Cache, 不废话了,没有好的Cache机制怕这样的站点不会成功的. (建议阅读车东辛苦翻译的这篇面向站长和网站管理员的Web缓存加速指南[翻译]). Twitter 运营的一个可取之处是能够积极听取社区的意见并改进, 同时社区上也有很多用户给他们提供了不少技术支持. 这也是开放而带来的好处吧.
--EOF--
这篇 【Twitter 的架构扩展: 100 倍性能提升 】来自 dbanotes.net |
del.icio.us | 雅虎收藏+
By Fenng on November 5, 2007 6:47 PM | Permalink | Comments (2) | OpenSource | Edit
Generator
Get Firefox with Google Toolbar for better browsing
Generate revenue from your website. Google AdSense.
本文相关评论|Comments(2)
Meng Yan 的评论:应该是最大的ROR站点
Fenng, add my gtalk :)
November 5, 2007 6:18 PM
citywill 的评论:
现在依然有速度不能忍受的时候
November 5, 2007 8:53 PM
添加评论
相关文章推荐
- Twitter 的架构扩展: 100 倍性能提升
- Twitter 的架构扩展: 100 倍性能提升
- 服务器架构之性能扩展-第十一章(12) 推荐
- 通过N层架构提升.NET应用程序的性能
- paip.cache 缓存架构以及性能提升总结
- 服务器架构之性能扩展-第三章squid(4)
- 服务器架构之性能扩展-第五章(6)
- Atitit 架构之道 attilax著 1. 架构的目的是什么??提高架构可读性。。提高扩展性。。对兼容性也有一定提升。。 3 1.1. 伸缩性架构设计 3 1.2. 提升性能架构 3 1.3.
- 请画出一个抓虫系统的架构图并说明你的爬虫需要如何优化来提升性能
- 如何大幅提升web前端性能之看tengine在大公司架构实践
- PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
- 麻省理工学院研发群芯片架构提升多核心CPU性能
- 服务器架构之性能扩展-第一章(2)
- paip.cache 缓存架构以及性能提升总结
- MySQL之——提升Replication性能的两种架构方式
- 转:Stack Overflow通过关注性能,实现单块应用架构的扩展能力
- 服务器架构之性能扩展-第四章(5)
- 服务器架构之性能扩展-第八章(9)
- 服务器架构之性能扩展-目录(1) 推荐
- 服务器架构之性能扩展-第二章(3)