Facebook打造高密数据中心 启用Tilera

脸谱网站可能从不认为自己是一家社交网络公司,但是对于业界新贵-服务器处理器制造商Tilera来说,社交媒体巨头脸谱公司内部用来执行Memcached工作负载的至强和皓龙处理器相对Tilera来说确实是种暴利。

  脸谱网站可能从不认为自己是一家社交网络公司,但是对于业界新贵-服务器处理器制造商Tilera来说,社交媒体巨头脸谱公司内部用来执行Memcached工作负载的至强和皓龙处理器相对Tilera来说确实是种暴利。

脸谱公司在美国佛罗里达州奥兰多市召开的国际绿色计算大会上带来的Memcached性能说明书详细介绍了脸谱公司是如何对目前搭载TilePro64多核处理器与配置英特尔至强处理器和AMD皓龙处理器的标准服务器进行对比测试的。

Tilera, SeaMicro和Calxeda等公司一直以Hadoop大规模数据计算和Memcached Web高速缓存来宣传微服务器,但在提及运行这些分布式工作负载时,由功能强大的大型处理器核心所承担的超大规模互联网工作负载并不总是像智能互联网和核心设计那样重要。

研发了高密度集群(基于双核64位凌动服务器,一个10U机箱中容纳了768个核心)的SeaMicro公司最近展示了这个服务器集群某些Hadoop离散数据计算的能力,并与搭载至强处理器的服务器性能进行了对比。他们用于测试的SM1000服务器运行的是真实世界的Hadoop工作负载,成本比至强服务器集群的费用降低了大概25%,机架占用空间仅为至强服务器集群的四分之一,能耗也仅为至强服务器集群的四分之一。

Memcached由Danga Interactive在2003年作为分布式网络高速缓存而创建,可以用来存储主存中的数据并使用网络服务器和应用软件。Memcached曾经被称作是key-value store,目前只有由脸谱,推特,Zynga, YouTube, Reddit, Flickr和一系列超大规模互联网公司用来为数百万用户提供数据,无需等待硬盘来完成这项工作。

Tilera公司的云计算应用软件总监Ihab Bishara在接受采访时表示”众所周知脸谱公司是Memcached的霸主,就我们目前掌握的数据来看,他们运行着世界上数量最庞大的Memcached服务器。他们是我们在过去一年半时间来主攻的一级用户”。

Bishara没有谈及有关脸谱公司的服务器计划或者脸谱公司是否已经安装了由Tilera旗下的Quanta Computer制造的Tilera服务器。当然Quanta是一家台湾的个人计算机和服务器制造商,他们刚刚和脸谱公司结成联盟,帮助脸谱公司制造他们自己的开源开放式计算服务器,这些服务器已经在于今年四月在脸谱公司位于俄勒冈州Prineville的数据中心投入使用,预计今年夏天英特尔和AMD推出最新的至强E5和皓龙6200处理器之时进行升级。

脸谱公司在Quanta QS2机架服务器上进行了Memcached测试,也就是大家所熟知的QSSC-X5-2Q,在一个2U机架式机箱中配置了8个处理器,核心总数达到了512个。

每个处理器作为一个单个的节点使用,因此Quanta服务器确实是一款8节点的微处理器。32位TilePro64处理器中的四个核心被分配给LINUX操作系统使用,剩余的其他60个核心用来运行Memcached工作负载。由MIPS体系架构派生出来的核心频率为866MHz,有互相连接的网络来连接核心内部的内存和输入/输出。TilePro64服务器节点的主存容量为32GB。

脸谱公司选择搭载Tilera处理器的Quanta服务器与配置主频为2.27GHz的英特尔四核至强L5520处理器和主频为2GHz的8核皓龙6128HE处理器的不同服务器进行对比。这两种X64处理器都是低电压,低功率。脸谱公司在32GB主存的单路1U机架式服务器和64GB主存的双路1U机架式服务器上分别进行了测试。

所有这三款机型运行的都是2.6.33 kernel和Memcached 1.2.3h的CentOS Linux操作系统。

脸谱公司的性能说明书中包含了非常详细的Memcached性能信息,描述了TCP和UDP协议对这些不同机型的性能是如何造成影响的,但是下面的图示是这些机型最直观的写照:

  图示:皓龙,至强和Tilepro64服务器上的Memcached性能

  正如你所看到的,X64服务器在执行Memcached扩展时,每秒钟传输的能力并不是非常出色。举例来说,在皓龙采取上,超出四个核心却是会影响到性能,要增加一个二级中央处理器来保证精确。

至强处理器的表现要好一些,但是也需要增加一个二级处理器来加以辅助。最好是扩展到多个单路皓龙或者至强节点-就像Quanta用Tilera处理器所做的那样。

但是很显然的一点是,至少与低电压低核的皓龙处理器和至强处理器相比,拥有30个核心的TilePro64处理器可以满足或者胜过这些X64处理器的性能。专用于Memcached的60核TilePro64处理器则完胜X64处理器。

显然英特尔和AMD处理器比这些处理器要更加现代。但Tilera处理器刚刚推出Tile-Gx 3000系列的64位36核处理器,最终最高可以扩展到100核心。

性能只是公司吸引脸谱的一个方面,耗电和散热(两者同样重要)物理体积和成本也是脸谱要应对的问题。脸谱公司在他们的性能说明书中对电源使用也做了说明。根据所测试机型所预估的性能,以下图示是各个机型的耗电情况:

  图示:Tilera 和 x64服务器的性能和能耗

  根据这些测算结果,脸谱公司推断出构建256GB的Memcached集群需要多少节点,然后从性能和能效上来看,Tilera处理器也超过了英特尔和AMD的处理器。

搭载TilePro64处理器的8节点Quanta服务器每秒可以处理268万TPS,耗能462瓦,每瓦性能为5801TPS。四节点皓龙服务器集群执行Memcached工作负载时每秒可以处理66万TPS,耗能484瓦,每瓦性能为1364TPS。四节点至强服务器集群(主存总容量为256GB)比皓龙处理器的表现的出色一些,每秒可以处理75.2万TPS,耗能也要低一些,为400瓦。但是这种四节点至强处理器每秒的性能只有1880TPS。还不到TilePro64处理器服务器每瓦性能的三分之一。

综上所述,与4U的X64服务器相比,TilePro64处理器最高只需占用2U的使用空间。

苹果的另一面:开源软件重镇

刚才一个苹果网站的链接在很短时间内成为Hacker News的头条。这个普通的网址却揭开了以封闭著称的苹果公司不太为人所知的另一面:开源社区的积极一员。

正如这个网页上苹果自己所说的,它是第一个将开源软件作为关键战略的主要计算机公司。了解苹果历史的人肯定知道此言不虚。苹果最重要的软件产品——Mac OS X的内核XNU再加上一些驱动等核心组件合称为Darwin,就是一个开源项目。这个开源项目有个可爱的吉祥物Hexley(达尔文的斗犬赫胥黎是也,不过为什么是鸭子的形状,是因为混合吗?),熟悉FreeBSD的人应该发出会心一笑吧:

这是一个堪称完美的混合内核,著名学院派操作系统Mach的微内核提供了足够的灵活性,也支持着系统的任务、线程、进程、消息传递(IPC)、RPC、SMP调度支持、保护式内存、虚拟内存管理等主要底层功能;而Unix正宗FreeBSD则满足了足够的性能要求,并提供了POSIX API、文件系统、网络栈、安全、抢占式多任务、用户与组管理、权限管理等特性;此外还有Apple独有的面向对象设备驱动框架I/O Kit。这个内核的模块性如此之好,以至于苹果的架构师们能够比较自由地为Mac电脑以及iOS设备选择底层硬件,从PowerPC到Intel,再到ARM……

Darwin架构图

作为目前普通用户最多的类Unix操作系统,Mac OS X中还内置了Unix中常见的各种开源软件,包括Ruby、Python、Perl等语言开发环境以及各种工具。也难怪现在越来越多程序员将Mac OS作为开发机,并渐渐“沦为果粉”……

苹果的另一个著名开源项目大家应该都听说过,但未必知道出自苹果。这就是浏览器引擎WebKit。WebKit(开源项目网址)是1998年苹果工程师开发的一个(KDE开源项目旗下)KHTML与KJS派生版本,开始的时候代码会提交到KDE项目中,但后来双方产生了矛盾而分裂。2005年6月,苹果宣布WebKit开源,成为一个独立的项目。

除了Safari之外,排名第三的开源浏览器Chrome也是基于WebKit的,甚至Adobe的AIR和Creative Suite CS 5也使用它来渲染HTML。当然,使WebKit日益重要的是手机,目前大多数智能手机浏览器包括Android、iPhone、黑莓、Symbian都基于WebKit,据估计目前用户已经超过4亿。今天的WebKit项目开发团队中,除了苹果的工程师外,Google也是生力军,此外还有不少RIM公司的人,他们应该是来自被黑莓收购的Torch浏览器开发团队。

苹果还有几个在更专业的领域里非常重要的开源项目,比如编译器框架LLVM,异构编程框架OpenCL,服务发现协议实现Bonjour等。其中,LLVM现在已经成为语言创新的温床,看看都有哪些项目因此而如虎添翼吧。

了解了苹果在开源方面的贡献,你对它的印象是否已经有所改观?其实也不稀奇,苹果是一家工程师文化深厚的公司,开源本来就是应该是工程师文化的一部分。

二十四口思科c2950交换机

网上买了一只二手的二十四口铁盒子2950交换机,成色还不错,拆开看了下(太好拆了,我本来以为会很难拆的),出厂日期是二零零六年,线路板完好,电源模块成色也很新,就是灰尘多了点,风扇声音巨~~~大,看样子风扇是快要坏了,相当幸运的是,这个风扇的型号和以前公司遗留下来的服务器风扇一模一样,于是我很简单的就把新的风扇换了上去,运作顺畅,清理了一下灰尘,嗯,这一转手卖个七八百应该不成问题,接下来就是升级交换机的操作系统,也就是著名的IOS(Internetwork Operating System),铁盒子公司一直声称他们是卖软件的,我觉得好像也是,交换机里面的芯片不是英特尔就是博通,接口不是安普就是欧姆龙,除了铁盒子外面写了个cisco systems,就木有哪里有标志了。


下面我们来升级2950的IOS,准备工作:在我得电脑上开启tftpd服务,下载最新版本的2950IOS。

铁盒子屁股上写了个出厂IOS版本号EA1B,登录进去系统看看,果然是c2950-i6q4l2-mz.121-22.EA1b.Bin,说明这个铁盒子从来没有升级过,首先我们需要备份一下原来的IOS,万一升级失败了也好恢复,在CLI里面命令如下:

copy flash:/c2950-i6q4l2-mz.121-22.EA1b.Bin tftp

然后输入你电脑的IP地址就可以了,在几十秒钟后,电脑上tftpd的目录就可以看到传输过来的旧版IOS了。

如果配置文件中加了很多选项,那么最好也备份下config.Txt,步骤雷同。
接下来删除html管理器的目录,如果你不需要通过http来进行管理的话,也是要删除的,因为要删除了才能不通过它来管理嘛,如果不删除,那就是旧版本的html管理器配上新版本的IOS,那可不一定会发生什么神奇的事情,在CLI里面命令如下:

delete /r flash:/html

然后确认就可以了。

接下来检查一下剩余的flash空间,一般来说2950交换机的flash空间都比较小,只有八个MB,而新的IOS最小也有四个MB,我下载带加密功能的新版IOS(c2950-i6k2l2q4-tar.121-22.EA13.tar)有五点六个MB,所以,我们必须要删除原有IOS才能安装新的IOS,你看像现在新的2960交换机,flash有两百五十六个MB,可以放好多个不同的IOS哦~那么,删除旧版IOS的命令如下:

delete flash:/c2950-i6q4l2-mz.121-22.EA1b.Bin

到这一步,你就千万不能断电了,要是断电了,嘿嘿,哈哈,该贝斯。
接下来我们把新的IOS通过tftp协议传输到交换机上,例如我开启tftpd电脑的IP地址是192.168.1.99,然后在CLI里面命令如下:

archive tar /xtract tftp://192.168.1.99/c2950-i6k2l2q4-tar.121-22.EA13.tar flash:

接下来交换机会解压缩tar包,将bin文件放到根目录,将html管理器解压缩到根目录,直到重新出现#号提示符,IOS升级完成,然后我们需要重启一下交换机,看是否真正升级成功,在命令行下输入reload即可。

再次登录进入交换机,我们输入命令查看一下系统版本信息,可以看到,操作系统已经成功升级为Version 12.1(22)EA13带cryptographic功能的IOS。

c2950>sh ver
Cisco Internetwork Operating System Software
IOS ™ C2950 Software (C2950-I6K2L2Q4-M), Version 12.1(22)EA13, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2009 by cisco Systems, Inc.
Compiled Fri 27-Feb-09 22:20 by amvarma
Image text-base: 0×80010000, data-base: 0×80680000

ROM: Bootstrap program is C2950 boot loader

c2950 uptime is 3 hours, 44 minutes
System returned to ROM by power-on
System restarted at 11:31:18 Taipei Wed Apr 14 2010
System image file is “flash:/c2950-i6k2l2q4-mz.121-22.EA13.bin”

This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.

A summary of U.S. laws governing Cisco cryptographic products may be found at:
http://www.cisco.com/wwl/export/crypto/tool/stqrg.html

If you require further assistance please contact us by sending email to
[email protected].

cisco WS-C2950-24 (RC32300) processor (revision R0) with 19912K bytes of memory.
Processor board ID FOC0903T099
Last reset from system-reset
Running Standard Image
24 FastEthernet/IEEE 802.3 interface(s)

32K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address: 00:13:1A:50:2B:00
Motherboard assembly number: 73-5781-13
Power supply part number: 34-0965-01
Motherboard serial number: FOC0902454E
Power supply serial number: DAB0851NHZ0
Model revision number: R0
Motherboard revision number: A0
Model number: WS-C2950-24
System serial number: FOC0903T099
Configuration register is 0xF

总的来说,铁盒子的效率比TP-LINK这样的家用产品要高,一百个MB的网络,传输速度一度可以达到20M/s,完全不符合规律。