Facebook一直以来就有一个问题,就是在网站访问的鼎峰时期,如何确保其成千上万台的Cache服务器正常的运行。如果Cache服务器出了问题,那么Facebook恐怕也会“万劫不复”,可谓一荣俱荣,一损俱损。因此Facebook创建了Claspin,形象来说,它就是Cache的健康热图。
Facebook的工程团队已经创造了这个工具,它可以帮助这位社交网络巨头确定Cache服务器在社交平台上是不是“健康”运行的。上周三Facebook的博客上发表了Claspin的详细情况。
最好的解决的办法,就是把Facebook的Cache系统转化成成一个易于理解的可视化数据,这样就可以迅速发现问题,进而能快速的解决这个问题。Facebook的工程师Sean Lynch,介绍了Claspin的设计过程。不过Facebook拥有数以万计的Memcache服务器和TAO缓存图像数据库,一旦系统陷入停顿状态,有时很难快速的找出发生故障的Cache。
|
Claspin在工作,绿色的说明是正常的
缓存是Facebook的基础架构中最重要的功能之一,因为它保存了最接近Web服务器的存储数据,这也是为了向用户尽可能快地提供内容。因此,Cache是一个真正的关键点,它能让用户体验变的更好。但是Lynch表示,社交网络目前还没有办法的查找到出现故障的Cache服务器。
Facebook有两个主要的缓存系统:Memcache,这是一个简单的后备高速缓存,它的智慧主要体现在客户端;TAO,它是一个图像缓存数据库,使 用的是MySQL。不过这两个系统之间,我们有成千上万张图表,其中一些被收集到显示面板上,来显示不同的延迟、请求速率和来自客户端和服务器收集的误码率统计数据。这些图表和显示面板的大部分都来自Facebook“数据存储操作”或者ODS的支持。这个工作是排在第一位的,但是随着Facebook在规模上的不断成长,一旦出现了错误,想找出哪一块出现了问题就变得越来越难。所以,我开始思考编码“tribal knowledge”,我们使用故障排除的方式,让人们更容易的评估出缓存的状态,可以一目了然。
Lynch开发的算法可以对Cache“健康”的最重要指标进行排名,进过团队的讨论,最后决定使用热图,它可以捕捉1万台服务器的运行情况,并且能在一块屏幕上显示数据改变的结果。颜色变化是30个或更多的统计数据在后台进行实时计算的结果。他称这套工具为Claspin,现在在Facebook内部广为传播,可以说这是在以工程为主导的公司成功的标志之一。
Facebook此次奉献出一个很好的工具,不禁让人想起了戴尔曾经为了提高工厂生产率的那份狂热的努力,从桌子的高度的设计到任何一个小配件安装的细节,所有的一切都考虑在内。Facebook也在做着类似的事情,Facebook开发的这套工具有助于确保它在任何时候都能对网络还有网络带来的广告收入进行优化。Facebook也在开发自己的Six Sigma或Kaizen。