面对网络应用业务量及用户量的增加,面对庞大的数据流量及集中性的访问,面临网络堵塞和服务超载的严峻问题在所难逃。为了能够为用户提供持续、不间断的应用服务,带来更好前端应用体验,不仅需要拥有处理大量并发访问服务能力的服务器,负载均衡技术也是加强处理能力、提高系统容错性的一大法宝。
负载均衡遭遇业务新挑战
仅仅一个新浪微博,就有超过5亿的用户。访问量早就成为了天文数字。为改善使用体验、提升网络性能,新浪于2004年左右在国内最早使用负载均衡设备NetScaler,2007年新浪与F5公司达成全方位战略合作。但是,随着新浪微博等新兴应用的推出商业设备的性价比和供货时间长无法满足业务的快速部署。而且当微博等线上业务出现访问异常或故障时,单纯依靠成本高昂的专业负载均衡设备提供的CPU、内存、连接数等统计信息,并不足以让工程师掌握服务器及应用状态,不能满足现代互联网发展对低成本、大并发的要求。
像新浪这样一个24小时运转的互联网企业,面对在没有专门运维时间、停机升级时间的情况下,如何能够突破负载均衡器的性能瓶颈,保证网络流量处理能力,保障数据传输的可靠性、实时性,成为新浪在业务发展过程中迫切需要解决的问题。
软硬联合突破性能瓶颈
在互联网行业,软件定义赋予了用户极大业务灵活性和自主能力。由于自己开发软件在节省成本的同时能够更加切合公司的业务,提高故障响应度,并有效解决大规模部署的问题,因此从2006年开始,新浪尝试向基于x86架构的开源负载均衡软件转移,即在Linux操作系统下,通过Haproxy实现对七层负载均衡的优化。
使用初期,机房中的灵活部署以及每年1100万-2000万元的成本节省让新浪真切的感受到了Haproxy实际优势。由于负载均衡软件的性能与服务器CPU、网卡等硬件直接相关,而英特尔提供的硬件产品,可以结合新浪的需求,增添、去掉其中的一些功能,与新浪“灵活方便”的需求不谋而合,因此,在专注于软件开发的同时,新浪也与英特尔展开了紧密的合作。“英特尔为我们提供了相关的设备和万兆网卡,让我们在英特尔-新浪联合实验室中做了相关测试。除了产品层面,在CPU及网卡的参数和使用上,英特尔也为我们提供了技术上的帮助,”新浪高级架构师林晓峰说道“英特尔的同事会根据我们提出的问题,在全球集团、公司去调集相应的技术专员,从而及时优质的解决我们的困惑。”
通过对微博等业务进行测试发现,使用英特尔架构处理器及万兆网卡设备,不仅使得原来的Haproxy性能提高了20%-30%,还提升了性能的多核扩展性,而如果再进行相关的优化,数据还将实现进一步提升。因此,新浪决定与英特尔进一步合作,共同完成基于Haproxy应用的CPU性能优化工作。
经过双方多次的探讨及研究,新浪在Haproxy优化项目中最终采用了拥有强劲性能的英特尔至强E5处理器及万兆网卡。项目运行至今,新浪服务器性能已经实现线性扩展,单机处理能力获得显著提升,开网卡性能也能够被全部利用上。同时,集群内部一台服务器已经能够同时满足70多万个链接请求,相比于之前硬件负载均衡设备的解决方案,响应能力提高了不止一倍,系统负载的分配更加合理,从而使得服务器能够承载更多业务及相应流量。
拥抱开源行业发展新机遇
目前来看,基于英特尔平台的新浪Haproxy软件方案是基于新浪当前的实际需求量身定制的,但在稳定性、可靠性和性能方面已能与硬件负载均衡设备媲美,其灵活方便的特点也得以充分发挥。
“负载均衡问题是每一个互联网公司都必须面对的,”新浪基础架构部总监王凯说道“因此,除了满足新浪自身业务需求外,我们也会在未来与英特尔及更多行业合作伙伴携手将目前Haproxy的解决方案进一步优化,加大在自动化及开源方面的研发力度,将这个解决方案提升到产品级层面,从而分享给有类似需求的其他互联网公司,带动整个行业对负载均衡软件的开发与使用。”
(作者:李祥敬责任编辑:李祥敬)