11月13, 2020

网易数帆如何实现高性能四层负载均衡的改造与优化?

在《网易数帆基于 DPDK 的高性能四层负载均衡实践》一文中,我们介绍了网易数帆四层负载均衡对 DPVS 项目在云化网络场景设计和资源隔离等各方面增强的深层思考,本文再通过网易数帆在 DPVS 项目上所进行的大量功能开发和优化实践,讲述网易数帆在负载均衡的高性能和监控运维增强方面,如何实现我们的负载均衡组件的改造和优化。

对于负载均衡组件来说,DPVS 这套基于 DPDK 加速的方案,其远超依赖 Linux 内核的软件(如 HAProxy,LVS)的高性能,相比于纯硬件(如 F5)的性价比和灵活性,相比于通用组件(如 OVS)的专业性,都是网易数帆将其作为基础进行改造实现与自身云计算业务匹配的高性能解决方案的充分理由。我们基于此实现了单台极限性能千万级并发、百万级新建连接的高性能负载均衡组件,大大减少了负载均衡的设备资源消耗,增强了系统稳定性。

高性能四层负载均衡的改造优化

首先具体讲述一下我们对 DPVS 方案的改造之路:

  • 从功能上讲,DPVS 提供了大多数的四层负载均衡所需要的功能,其继承于 LVS 的负载均衡框架也使其稳定性有较好的保障。但对于云化场景来说,它还缺少了云化网络 tunnel(vxlan)的封装 / 解封装,VIP 级别的 QoS 服务,6to4 快速转发路径的支持,更多防护和资源配置优化,以及很多监控运维手段的丰富。

  • 从架构上讲,master 核上承载了控制命令下发处理和 kni 通道两大功能,kni 通道有 BGP 流量,和健康检查流量,命令下发和 kni 通道两者形成了强烈的性能和稳定性制约,大大降低了系统的稳定性,所以分核处理两种事务才是更优的选择。而且健康检查方案我们使用了自研的健康检查程序,通过 kni 通道后,与业务流量走过的路径相同的解决方案,最大限度地保证健康检查的准确性。

  • 从性能上讲,DPVS 上下行同核的独立的流量无锁化模型,其性能已经在 bps、pps、新建连接能力、并发能力各方面都有很突出的表现,但是其原有 tunnel 路径有点长且重复,全局 rte flow 规则相比 FDIR 更方便且功能更多,新建连接能力方面也仍有进一步优化提升的空间,并且内存占用方面也有相当大的优化空间,并且 qos 模块的性能优化也花了不少功夫。

本文链接:https://blog.jnliok.com/post/5ANY38wJSEuxfYGvdXOG.html

-- EOF --

Comments