当前位置: 首页 > 科技观察

51CTO专访张文松博士:做系统首先要了解业务需求

时间:2023-03-11 21:22:14 科技观察

【独家专访】中国Linux运维行业的大部分朋友都知道张文松博士,因为他带来的开源项目LVS,企业无需购买昂贵的F5、Citrix等商业负载均衡器,而是可以在开源的Linux服务器上搭建自己的负载均衡和高可用集群。在今年刚刚结束的O'ReillyVelocityChina2011大会上,小编有幸采访到了目前在淘宝工作的张文松博士,请他介绍一下淘宝核心系统优化团队近年的工作情况和他的个人关注点。嘉宾简介左边是小编,右边是张文松博士。张文松博士,淘宝网高级研究员。主要负责基础核心软件研发,推动网络软硬件性能优化,构建高扩展、低碳、低成本的下一代淘宝电商基础。设施。他也是Linux内核的开发者,著名的Linux集群项目——LVS(LinuxVirtualServer)的创始人和主要开发者,LVS集群代码已经在Linux2.4和2.6的官方内核中,并得到广泛应用.在大型系统架构、系统软件开发、Linux操作系统、网络及软件开发管理方面具有丰富的经验。他一直致力于自由软件的开发,积极推动中国开源活动的发展。:你上淘宝两年多了。一开始主要是LVS和HAproxy的大规模普及。之后,你们在CDN系统上做了很多改进工作。今年,您启动了GreenCompute项目。能否介绍一下这几年工作的总体规划和思路?张文松:优化其实是一个持续性的工作。起初,淘宝的CDN使用的是商用调度负载均衡器CitrixNetScaler,是当时业界最大的负载均衡器。但是由于淘宝越来越大,容量很大,对小图片的需求也很大,所以在使用Citrix的时候遇到了很多问题。比如在流量方面,小图片引起的请求很多,但是10G网卡的流量只能达到3G。一旦流量超过3G,即使只达到4G,系统也会崩溃。这不仅是前端的负载均衡,也是后端的缓存服务器。在CDN系统中,图像处理的挑战是最大的。与视频的连续数据相比,图像的数据量小且相对离散,对硬盘的访问要求高。2008年底到2009年初,淘宝曾经全用SSD,所以一个CDN节点的成本会比较高,大概两百万左右,再加上商业负载均衡器。而且刚才说了,一个NetScaler只能提供3G流量,两个NetScaler加起来也只有6G,而且两个NetScaler都不敢用心跳线,因为虽然支持这个功能,但是如果一个坏了,如果6G流量完全转移到另一个,结果肯定会崩溃。这就是商品系统的问题:它不适合特定负载。于是我们开始逐步转型。使用LVS+HAproxy,在硬件配置高的情况下,一个节点跑到100G是没有问题的。在成本上,后端肯定不能无限花钱,所以我们开始使用混合存储,包括SATA、SAS、SSD。优化后效果和SSD差不多,存储空间更大,命中率更高。像我们现在的高命中率,命中率可以达到98%。所以现在我们有一个10G流量的顶级CDN节点,成本优化到50万;如果功耗低,可以进一步优化到37万。以后我们会继续优化这个项目,因为优化是无止境的。我们追求的目标是更好的用户体验,更短的响应时间,同时我们需要花更少的钱。响应时间是我们最关心的指标,因为它直接影响到用户体验。事实上,淘宝目前在图片优化方面做得很好。比如今年双十一的时候,我们达到了820G的即时流量,这可能也是世界纪录。其实现在打开淘宝网页,图片加载速度已经相当快了。目前我们图片请求的平均响应时间已经在10ms以下;但我们会进一步挖掘,看看它是否可以低于9毫秒或低于8毫秒,以便它可以更快地加载。虽然说越往下挖越难,但是我们规模大,还是值得做的。而且为了让用户体验更好,我们应该花更多的钱。另一方面,网络传输往往是瓶颈。发送图片请求时,硬盘处理时间为10ms。但是在网络传输方面,如果CDN部署的好,可能需要20ms。如果出现网络问题,可能需要70或80毫秒。因此,在网络协议优化方面,可挖掘的空间可能更大。:对了,淘宝现在是完全用自己的CDN了吗?张文松:现在我们大部分人都用自己的CDN,因为没有CDN公司能承担我们的流量。而且还有规模效应。如果你自己做,你可以做得更深入。应该说在CDN方面,我们现在的技术是领先的。当然,也不排除有的时候在促销活动中,如果用户流量超过了我们的承载能力,那时候我们也可能会使用外部CDN服务来缓冲。:您这次在Velocity大会上主要讲了GreenCompute这个项目。这个项目是完全自己做的,还是借用一些案例?张文松:GreenCompute项目就是绿色计算。我们做的第一个项目是低功耗服务器。2008年在做一个ARM下载盒项目,400MHz,安装Linux系统,闲置时功耗只有1W,外接大容量硬盘满载时9W。这样做的时候,由于网上很多应用都是数据密集型的,而这些应用的主要任务是硬盘读写和网络传输,所以实际计算并不复杂,占用的CPU资源也不多。与高性能服务器运行相比,空闲状态下的功耗为200W,用低功耗服务器运行这个应用程序非常划算。对于低功耗服务器,不同的处理器会有不同的功耗和效果。主要考虑的是一个平衡点,它与你的应用程序的性质密切相关。国外大学在这方面的研究相当多。2009年5月,CMU(卡耐基梅隆大学)的同事在HotOS(美国操作系统热点会议)上做了一个FAWNCluster。他用的是AMD的500MHzGeode处理器,加上我们相机用的4GCF卡,再加上256MB的内存,一颗芯片的整体功耗不到4W,这是当时麻省理工科技评论上的报道。此外,加州大学圣地亚哥分校(UCSD)也对Gordan架构进行了研究,这是一款采用Atom处理器制作的低功耗服务器。每一款都是针对自己独特的应用而设计的,效果都不错,对我们行业有很好的借鉴意义。2009年底我们立项做一个低功耗的项目,选择了一个我们当时控制的比较好的CDN系统。因为CDN对数据安全性要求不高,毕竟都是缓存的,数据丢了也就丢了。全局系统随时切断坏节点,对用户影响小,所以这款低功耗服务器是专门为CDN应用定制的。这个过程发生了很多事情,整个过程不是很顺利。最终顺利完成,感谢威盛、英特尔、AMD等众多参与厂商。总之,我们终于用上了这款凌动架构的服务器,性能优化效果是目前对比其他英特尔处理器最好的。低功耗服务器做出来之后,我们希望在行业中有更多的应用,因为它是绿色环保的,所以我们开源了这个项目。你刚才不是提到了Facebook的OpenCompute项目吗?这个项目在低功耗方面的内容其实是比较欠缺的。我们和他们召开了电话会议,想看看能不能把我们的规范、CDN应用测试数据等文件放到OpenCompute项目中,但是由于种种原因一直没有实现。后来,我们想到其实可以建一个绿色计算网站greencompute.org,给我们更多的自由。当然,未来也有可能和OpenCompute合作。我们的文件放在那里或建立链接。这里我们也介绍一下OpenCompute项目。这些未来的可能性是存在的。事实上,低功耗服务器只是整个绿色计算的一小部分。服务器还包括高性能服务器。除了服务器,还有网络设备、机架、直流电源,以及整个数据中心的设计。绿色计算类别。而我们现在定制的只是一台AtomD525机器,其实低功耗的机器还有很多型号。所以我们现在所做的只是其中的一小部分。我们分享出来,希望大家可以参与进来,尤其是互联网公司也关注绿色数据中心。如果人人都能参与进来,对行业是一个很好的推动。我们已经就此与业内同仁进行了接触,目前正在进行中。:希望GreenCompute成为国内标准?张文松:其实国内和国外没有区别。我们的低功耗项目也有英文文档。无论是国内还是国外的同行,我们都非常乐意借鉴。找国内同事主要是因为语言交流成本比较低,做起来会比较容易。其实这个项目本身是没有国界的。:您对底层系统工程师有什么建议吗?比如未来三年需要掌握哪些技术。张文松:说实话,我没有那么好的眼光。我个人认为做系统或者基础设施设计最重要的是先了解业务的需求。总体需求是什么?这次访问有什么特点?很多时候不得不做出取舍。我们在设计架构,或者设计系统,甚至优化的时候,往往都是一个取舍的过程。这个应用程序最重要的是什么?我要抓住最重要的,那些不是那么重要的,我干脆就做,或者不做。抓住最重要的部分,您就可以最大限度地提高每个应用程序的性能。特别是对于非常大规模的系统,即使我只优化1%的性能,那么对于10000台机器的环境,这意味着可以节省100台机器。对于规模足够大的环境,这种优化是值得深入去做的。你的规模有多大决定了你的研发成本是否值得——这个过程本身也是有取舍的。大二的时候帮老师写了一个哈夫曼压缩算法。当时觉得这个哈夫曼压缩算法牛逼。它用很短的字节表示高频的,用较短的字节表示低频的。长字节表示。比以前优化多了,当时对我触动很大。其实生活中我们也一样:最重要的,我会花最大的努力去解决。所以在我看来,没有一种适合所有人的尺寸。通用的解决方案肯定会有性能上的损失,而且规模越大,就越需要做深入的工作。:所以对于工程师来说,理解需求,发现问题才是最重要的。至于学什么技术,以后再考虑?张文松:对。因为围绕一个问题来做,这样的学习效率更高。当我遇到问题时,我必须解决它们。我会在这个过程中不断学习,我的成长会非常快。:能谈谈你个人这一年的发展和感悟吗?张文松:我的个人发展?因为我们是在做底层的基础平台建设,我们追求的目标其实有很简单的指标在那里。首先是稳定性:4个9、5个9或更高?然后是性能:性能上有没有更多的优化空间?然后是成本:成本可以更低吗?几个维度的指标都有了,我们要做的就是不断优化。当然,我们也很关注新技术的出现。比如我们很早就在研究PCIeFlashCard。它是非易失性存储中速度最快的,比SATA接口的SSD快10倍。我们不断学习新硬件、新架构和技术。在手机方面,我们也会研究如何让移动平台的用户访问速度更快,后台需要做哪些支持,比如在服务端做JS封装,对于移动无线网络,容易丢包,我们有网络协议吗?可以做一些我们一直关注的工作。:好了,本次采访到此结束。感谢张文松博士接受我们的采访!【编辑推荐】资深架构师Theo谈统计、业务和运维工程师的成长架构师必须知道的十大可伸缩架构题目??:架构师最怕程序员知道的10件事