Fixing Twitter - 提高世界上最流行的微博客系统性能和可扩展性(转)
2012-02-24 23:09
267 查看
Twitter 的运维专家 John Adams 在 Velocity 2009 上做了一篇题为 Fixing Twitter 的技术分享(点击下载pdf文件《Fixing Twitter》 ),人家也是一直在努力阿。John Adams 在 2008 年七月加入的 Twitter ,对于 Twitter 的站点稳定的确做了不少工作。
看完这个接近 50 页的 PDF ,除了满足我们一小部分技术窥探的癖好,或许也可以学到点什么。讲了memcache,异步处理,队列,关系数据库,缓存,IO等。
不重复发明轮子
对于监控,Twitter 用的就是 RRDtool,Ganglia、MRTG 这些已经成为很多网站标准配备的组件。而不是自己写一大堆功能重复的东西。值得注意的是, Twitter 也一直在用 Google Analytics 进行业务分析。
不重复发明轮子,可以打磨轮子,比进行如一些功能脚本定制之类的工作。
发明不重复的轮子
Twitter 开源了他们自己用的一个 Apache 模块 mod_memcache_block(a distributed IP blocking system),这个模块根据 HTTP 代码请求限制访问频率。熟悉 Twitter 的朋友会知道这是针对第三方应用程序的必须的一个功能,否则的话,会产生类似 DDos 的效果
![](http://www.tech-q.cn/images/smilies/default/smile.gif)
John Adams 说这个模块是他多年以来就期待的东西,我相信,如果有人已经做了同样的事情,他们肯定不会自己再写一个。
尽可能的自动化
无论是配置管理还是针对各项功能的"开关",都尽可能的自动化。依赖于人来控制一些事情容易"规范",但是流程冗杂,节奏变慢。
更好的理解硬件
拥抱新技术体系,使用更有经济效益的硬件(比如对 8 核 CPU 的选型与更换)会带来更好的收益。而这个要建立在对硬件体系的正确理解上才行。
另外几句话要记住:
Disk is the new Tape. (内存是新类型的磁盘. 磁盘是新类型的磁带)
Kill long running queries before they kill you.
Use metrics to make decisions, not guesses.
"Cache Everything!" not the best policy
下载:
下载pdf《Fixing Twitter》
相关文章推荐
- Fixing Twitter - 提高世界上最流行的微博客系统性能和可扩展性(转)
- 微博遭鹿晗恋情暴击瘫痪,如何快速提高系统性能?
- 微博遭鹿晗恋情暴击瘫痪,如何快速提高系统性能?
- 使用缓存提高Web应用系统性能
- 管道函数提高系统性能
- Redis 快速提高系统性能的银弹
- Atitit 架构之道 attilax著 1. 架构的目的是什么??提高架构可读性。。提高扩展性。。对兼容性也有一定提升。。 3 1.1. 伸缩性架构设计 3 1.2. 提升性能架构 3 1.3.
- 架构设计:系统间通信(22)——提高ActiveMQ工作性能(上)
- linux提高机器的性能,修改系统参数。
- linux提高机器的性能,修改系统参数。
- 提高C/S系统性能的一些方法
- 架构设计:系统间通信(24)——提高ActiveMQ工作性能(下)
- 架构设计:系统间通信(23)——提高ActiveMQ工作性能(中)
- win10系统如何开启高级设置 win10系统如何提高性能
- Hibernate框架利用inverse属性提高系统性能
- 架构设计:系统间通信——提高ActiveMQ工作性能(下)
- linux提高机器的性能,修改系统参数。
- linux提高机器的性能,修改系统参数。
- 提高C/S系统性能的一些方法
- 使用capping和assembly提高去重系统的读性能