高并发应对:淘宝CDN缓存服务器部署探秘

时间:2023-07-06 11:25:07

转自:http://server.chinabyte.com/6/12663506.shtml

“好,时间到,开抢!”坐在电脑前早已等待多时的宋兰(化名)一看时间已到2011年11月11日零时,便迫不及待地投身于淘宝网一年一度的大型网购促销活动——“淘宝双11”购物狂欢节。

  宋兰不知道,就在11日零点过后的这一分钟内,全国有342万人和她一起涌入淘宝网。当然,她更不知道,此时此刻,在淘宝公司杭州总部的一间办公室里,淘宝技术部核心系统负责人兼高级研究员章文嵩和淘宝的一群技术高手们,正在黑板上纷纷写下注,看谁能最准确地猜中“淘宝双11”CDN流量峰值和全天的交易总额。

  不过,看似轻松的氛围下,章文嵩和他的同事们内心多少有些忐忑:本次网购盛会对淘宝的各个服务系统而言都是一次巨大的考验,其中最大的考验则是对章文嵩所负责的,刚刚上线的,基于英特尔凌动(ATOM)处理器定制的低功耗服务器而新搭建的CDN系统。因为,虽然已有测试证明该CDN系统可以应付超大流量,但那毕竟是测试结果,真实情况会怎样,谁都没底。

高并发应对:淘宝CDN缓存服务器部署探秘

  淘宝技术部核心系统负责人兼高级研究员 章文嵩

  24小时之后,淘宝网和淘宝商城高达52亿的交易额让淘宝笑了,而章文嵩的心也终于落定。

  始自节能之需

  对互联网相关技术比较熟悉的人大概都了解CDN。CDN全称Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。

  在淘宝,章文嵩表示,为了保障近四亿淘宝用户的购物体验,该公司已在全网部署了103个用于加速的CDN节点,单节点服务能力大于10Gbps,CDN Web Cache服务器数量超过4000台。

  当然,支撑整个淘宝日常运营的远不止这几千台CDN web cache服务器。这些服务器每天的耗电量非常惊人,在淘宝网运营成本中占据了相当比重并逐年上升。因此,节约服务器用电量,已经成为不得不考虑的问题。而最直接的方法,就是在满足性能要求的前提下,采用比传统服务器省电的低功耗服务器。

  低功耗服务器之所以比传统服务器的省电,主要在于采用了低功耗CPU。低功耗CPU在带来低功耗的同时,也损失了处理速度。因此,消耗CPU资源少的应用是低功耗服务器首要应用场景。而从淘宝整个服务器体系来看,满足这一要求的恰好是CDN Web Cache服务器,最终,该公司决定在CDN节点尝试使用定制低功耗服务器来替换传统服务器,并于2009年底正式启动绿色低功耗服务器定制项目。

  “不只是攒个机器”

  “定制低功耗服务器,表面上看是攒个机器,不过实际上并非如此简单。”章文嵩告诉记者。

  市场上传统的低功耗处理器,其节省功耗的原理,是在原有高性能处理器的基础上,通过控制处理器在闲时的主频和耗电,同时简化乱序处理的逻辑模块,来减少不必要的消耗。但该方式受限于原有的高性能架构,整体功耗降低效果并不明显,特别是在IO密集型的业务上。而淘宝网用于静态内容加速的CDN Web Cache服务器,主要功能正是对静态的网页和图片进行读写操作,属于IO密集型业务。

  “因此,针对IO密集型业务,我们需要寻找区别于以往传统的、更低功耗的处理器和服务器方案。”章文嵩说。

  项目启动之初,淘宝选择某知名芯片平台供应商作为合作伙伴,并于2010年6月制作出原型机,但遗憾的是,该原型机未能通过线上测试。因此,2010年8月,淘宝选择在整机解决方案方面比较有经验的美国超微公司和英特尔。最终,在三方的努力下,基于凌动处理器D525的低功耗服务器定制成功,并于2011年6月开始在淘宝实施规模化部署。

高并发应对:淘宝CDN缓存服务器部署探秘

  淘宝产品经理 何燕锋

  在杭州华数机房,负责该服务器定制的产品经理何燕锋带领记者实地参观了一处由该低功耗服务器所搭建的CDN节点机群。其中,一个2U空间里能放8台凌动低功耗服务器(8台服务器共享一个机箱),单台服务器功耗仅25W,也就是说,这8台低功耗服务器的总体功耗也才200瓦。这200瓦是什么概念呢?何燕锋指着该CDN节点机群中一台服务器,告诉我们说,那就是市面上的普通服务器,主要负责调度功能,其功耗为150W,占1U空间。两相对比,低功耗服务器的低功耗高密度的优势十分明显。

  值得一提的是,章文嵩和他的同事发现,淘宝CDN缓存对象具有的特征是:18KB以下的对象数量占总数量的80%,而存储量只有不到40%;同时,80%被访问对象所占用的存储空间不到20%。这意味着“热数据”(访问频次高的内容)占的空间其实很小,而“冷数据”(访问频次低的内容)所需存储量很大。因此,淘宝特意为该低功耗服务器引入分层存储机制,所以单台低功耗服务器的硬盘其实是由一块80GB的SSD盘和两块500GB的SATA盘组成。这样,“热数据”存放在SSD盘上,“冷数据”就存放在SATA盘上,从而兼顾速度、容量与成本。而分层存储调度软件则由淘宝独立开发。

  2011年2月,该凌动低功耗服务器投入量产。随即,淘宝人又紧锣密鼓地开始了系统优化工作。章文嵩告诉记者,在没有优化之前,单台低功耗服务器的QPS(每秒查询率)数大约在900左右,离他们既定的目标(1000QPS)还差一点。然而,当他们将硬盘访问模式改为ACHI/RAID之后,QPS立刻跃升至1300;再通过优化IO、网络、SMP affinity等工作,QPS数到达1700,大大超过原来的预期。

  “我们正在重写一个轻量级Cache软件,希望能将OPS数提升到1900。” 章文嵩说。

  据悉,目前淘宝一共部署了十多个低功耗CDN节点机群,共部署了约800台凌动低功耗服务器。大部分凌动节点都服务到了上联链路的限制值——10Gbps,此时的单台低功耗服务器的服务QPS数在1200以上,而CPU负载不超过70%,整体的I/O也不过50%左右,且整体缓存服务的响应时间都在20毫秒以下。

  “本次淘宝‘双11’购物狂欢节,我们CDN承受了全网近90%以上的流量,这一天的CDN带宽峰值到达800多Gbps,可以说真正通过了考验。”章文嵩说。之后的淘宝“双12”带来了更大的流量“洪峰”,淘宝CDN亦安然承受。

  此外,何燕锋亦透露,他们还拿到了英特尔SandyBridge(15W)低功耗处理器(英特尔在微服务器上的主打处理器之一)样片,并在CDN缓存应用上进行了性能测试。

  “SandyBrige(15W)低功耗处理器采用双核架构,主频只有1.2GHz,但L3的缓存有3MB。如果单看主频的话,很难想象这样的处理器能有多么卓越的性能,测试结果却出乎意外,单台服务器的性能能够到4500QPS, 几乎是我们现在这款低功耗服务器的3倍,而功耗则相差不到2W。”何燕锋说。

  因此,只要该款处理器价格合适,淘宝将在下一代低功耗服务器中采用SandyBrige(15W)处理器。

  心系环保、践行开源

  “我们定制服务器跟传统的定制不一样。传统的定制是一种买断形式,例如,我向你(厂家)定制了服务器,你不能卖给第三方。而我们淘宝是一种开源的心态,我们觉得尽管这款低功耗服务器是针对淘宝的CDN需求而定制,但低功耗服务器环保节能,同时CDN系统是整个互联网服务的基础,所以淘宝将它开源出去并鼓励厂家将这款产品卖给别人,一方面促进整个互联网“绿色”服务器产业的发展,另外一方面也彰显淘宝的开发策略。”何燕峰告诉记者。

高并发应对:淘宝CDN缓存服务器部署探秘

  淘宝部署在杭州华数机房的CDN节点

  需要指出的是,淘宝低功耗服务器定制项目在业界是相当超前的,其价值不言而喻。另一方面,虽然目前国内外有不少研究机构、企业正在研发低功耗服务器,但象淘宝这样将低功耗服务器项目(设计规格和应用数据)无私开源的,用章文嵩的话来说:“全世界也是第一家 ”。

  并且,淘宝不只是简单地将其低功耗服务器定制项目开源,而是以此为出发点,联合英特尔、超微等厂商,共同发起了“开源绿色计算”项目(http://www.greencompute.org/)。章文嵩强调,该项目的目标是推动互联网整体硬件基础设施(包括服务器、网络设备、IDC机房、机架和电源等)的节能环保。

  目前在开源绿色计算网站上还只有凌动低功耗服务器这一款定制化的“绿色”产品,章文嵩殷切地希望更多的同行能加入进来,共同推动“绿色计算”产业的发展。