【IT168资讯】去年12月百度在南京数据中心的活动中除了披露ARM服务器,还提到“百度自主研发的,基于64核处理器的负载均衡系统,该系统可以为业务提供最大320G的负载均衡以及DDoS攻击防御服务,而其成本不到商用设备的10%。”国外有些专业的负载均衡设备厂商推出过类似的产品,但是国内公司中并没有报道过基于64核的负载均衡产品,这背后一个重要的原因就是集成难度比较大,对硬件、软件能力都要求比较高。那么百度又是怀着什么目的做众核系统,采用什么技术解决这些复杂的问题?带着这些疑问,我们走访了一些内部人士。
百度目前每天的搜索量数十亿次,这还不包含百度的云存储、音乐等其他业务。之前的负载均衡与NAT系统是使用X86服务器实现的。但是X86的架构,天生在网络报文处理方面就有一些缺陷(近期有所改善)。单台服务器的性能不足,因此必须要使用集群方案才可以应对每天数十亿的访问量。但是这同时又导致了另外一个问题,百度有数十个数据中心与CDN节点,采用服务器x86服务器集群部署,需要大量的服务器构建集群;如果想达到比较高的性能,会极大地增加集群复杂度,维护起来成本会比较高。特别是随着业务量的增加以及前端外网出口的增加,单个集群服务器数量多,同时集群数量也很多,致使维护成本与复杂度都比较高。其次单台服务器的性能不够,会存在有雪崩效应的风险。
这才有了众核系统的诞生,我们猜测百度的均衡系统使用的应该是Tilera 64核处理器;其采用类似MIPS的指令集,多核处理器核采用二维网格互联,核内带有通信模块,核与核之间的通信类似于网络节点通信。作为网络处理器,Tilera相对更加适合网络报文处理,单颗Tilera Pro64型号的CPU可以轻松线速转发20G,即使加上逻辑处理,也完全可能实现10G进、10G出的线速处理。众核处理器优势很明显,可以归纳为以下几条:
报文处理开销低,并发处理能力强
更高的能效
符合计算资源集中化的趋势
报文转发处理实时性好
当然也存在一些挑战,比如:1)任务如何向多处理器核分配;2)如何控制进程切换开销;3)Cache一致性问题;4)核与核之间通信带来的阻塞问题;同时对如何写好并行程序、充分利用众核的并发能力也是一个大挑战。
和X86架构相比,众核架构最大的价值就是多处理器可以并行工作,提高了单节点能力;因此大家所希望看到是在不带来核间通信阻塞的情况下,尽量提高众核的并发度,发挥众核的最大能力。百度自己内部有个叫free-core的技术,是专门用来解决众核的并发度问题的;并且百度作为搜索引擎公司,在并行计算、存储方面积累了多年经验,编写并行程序正是他们的强项。在这个负载均衡系统中,类似free-core的创新技术还有很多,多数是在研发过程中碰到的问题,基本无法在外界找到可参考的解决方案,只有自己动手,百度也因此申请了近20个专利。正是基于这样的软、硬件技术创新,众核系统才可以从容提供最大320G的负载均衡以及DDoS攻击防御服务。据称众核均衡系统目前已经承载百度全部流量。
此外,我们还了解到了百度众核负载均衡系统的一些其他性能,比如跨机房、跨网段流量调度;多种灵活的调度算法、多种健康检查机制;系统冗余保证系统高可用性。单节点支持并发连接数大于8千万。。
百度自研的众核负载均衡系统不仅仅性能强大,并且成本还不到主流商业产品的10%,这对国内大多数互联网企业而言都是致命诱惑。中国数据中心产业发展联盟秘书长郑宏告诉我们,百度在数据中心软硬件创新方面带了很好头,在云计算时代,正需要这样的低成本、高性能的设备帮助推进云计算服务大范围落地。据说百度方面正在研究将负载均衡软件开源,把成功模式推广到整个产业,带动技术创新发展。