299 shaares
本文由攜程資深技術支持工程師 Yellowsea 撰寫,主要講述了如何利用開源的 DPVS(基於 DPDK 的 LVS)構建攜程的高性能四層軟件負載均衡 TDLB (Trip.com Dpdk LoadBalancer)。以下是文章的簡介:
-
背景:
- 在攜程的服務流量接入架構中,四層負載均衡扮演著關鍵角色。隨著業務流量的不斷增長,原硬件四層負載均衡面臨成本高、採購周期長和 HA 工作模式等問題,因此攜程急需在開源社區中尋找高性能四層負載均衡軟件化的解決方案【24†source】。
-
TDLB 高性能實現:
- 文章探討了 TDLB 如何通過 DPDK 解決傳統 LVS 負載均衡的性能瓶頸。利用 DPDK 的 kernel bypass 設計,避免了内核态与用户态的切换耗时问题,提升了处理数据包时 cache 的命中率。
- 此外,TDLB 在会话无锁方面作了优化,通过 percore 的会话设计避免了 core 与 core 之间的资源竞争,保证了入向流量与出向流量分配至同一个 core【24†source】。
-
用戶源 IP 透傳:
- 文章也探讨了两种主要的用户源 IP 透传方式:TOA 和 ProxyProtocol,这两种方法分别需要在服务器上挂载 TOA 相应的 kernel module 或在服务的应用层提供 ProxyProtocol 的支持【24†source】。
本文適合對 DPDK 和負載均衡有興趣,並希望了解如何在实际业务中应用 DPDK 以提升四層負载均衡性能的讀者。透過閱讀本文,讀者可以了解到 DPDK 在实际业务中的应用,以及如何解决传统 LVS 负载均衡的性能瓶颈。