Facebook 的 Memcached 扩展经验
周末的时候看到这篇 Scaling memcached at Facebook,感觉挺有料。但似乎又没什么可写的。最多就是准翻译一下。
相比之前介绍过的数据( 5TB数据/400台服务器).,现在 Facebook 在 Memcached 上的内容已经超过 28TB,总服务器数量超过 800 台。可见硬件降价真是够快的,内存的确便宜得很。
Facebook 作出改进的第一个问题是 Apache (连接带来的)进程连接开销问题。实现了一个针对 TCP/UDP 的共享的进程连接缓冲池。共享的方式比针对单连接独占内存的方式节省不少内存资源。考虑到一共有 800 台乃至更多的服务器,总体节省的内存资源是惊人的。
第二个改进是 UDP 模式的效率问题。第三个改进是网络中断给 CPU 带来的影响,这个我觉得就是变相的实现了 Intel I/OAT 的某些功能。补充一句,网络中断的问题其实是给很多企图制造山寨存储的技术人员一个拦路虎。
最后一个问题是在 8 核芯片上发现的新瓶颈。这个问题我想对于在多核机器上跑 MySQL 也会有很大借鉴作用。CPU 不是越多越好。有些开源软件与硬件的配合上面应该的确稍微滞后(不是落后)一点。
四个大的改进的结果是从 50, 000 /s 的 UDP 请求到 300,000 /s 的 UDP 请求支撑能力,延迟只有 173 微秒。
Facebook 的技术还是挺开放的。这一点上比 Google 强多了。
转自:http://www.dbanotes.net/arch/facebook_memcached_scaling.html
相关文章:
- Facebook 架构学习 - 2009年04月12日 21:58
- Facebook 的 PHP 性能与扩展性 - 2009年04月12日 21:04
- Facebook 海量数据处理 - 2008年06月27日 09:43
- 探索Google App Engine背后的奥秘(2)--Google的整体架构猜想 - 2010年06月10日 20:26
- 探索Google App Engine背后的奥秘(1)--Google的核心技术 - 2010年06月10日 20:00
- 读书 - 实战Nginx:取代Apache的高性能Web服务器 - 2010年04月24日 00:16
- 读书 - 高性能MySQL(第二版) - 2010年04月15日 20:43
- PC 服务器的 RAS 能力 - 2010年04月11日 20:04
- 多IDC的数据分布设计(二) - 2010年04月11日 20:37
- FarmVille(美版开心农场)谈架构:所有模块都是一个可降级的服务 - 2010年03月09日 09:57
