一、前言
UCloud的四層負載均衡器Vortex基本上是依照Meglev的方案去實作的,但是性能上面據他們的資料是要更好一點。可以參見文章《從Maglev到Vortex,揭秘100G+線速負載均衡的設計與實作》。根據文章,Vortex使用了DPDK作為開發的基礎架構,使用DR模式資料流,是以多數技術措施應該和之前提到的美團點評、唯品會、愛奇藝和阿裡巴巴的負載均衡器使用的差不多。
值得一提的是Vortex展示的是一個負載均衡的叢集,使用quagga管理OSPF路由資訊,并較長的描述了他們在保持連接配接一緻性方面的方案(Vortex Hash),基本上和Maglev一緻。
轉載自https://blog.csdn.net/cloudvtech
二、Vortex技術細節
在Vortex分析的技術細節中,主要關注了負載均衡器的高可用性和可擴充性兩個方面的技術實作。
2.1 Vortex的高可用性設計
根據對技術細節的分析,基本上可以确定Vortex所謂的Vortex Hash方案應該和Google的Meglev的本地一緻性雜湊演算法類似,通過這個算法,可以保證無論是Vortex伺服器叢集或者是後端伺服器叢集發生什麼樣的變化甚至同時發生變化,都能保證絕大多數的已有連接配接不受影響:
2.2 Vortex的可擴充性設計
2.2.1 使用ECMP,普通交換機可以挂載16到32個Vortex伺服器,而特殊的SDN交換機則可以挂載256個Vortex伺服器
2.2.2 使用基于DPDK的優化技術
- 使用者空間網卡驅動,資料包處理過程中零拷貝
- 批量資料包處理,攤薄單個包CPU指令成本
- 使用大頁和DPDK的Memory Channel
- 進行記憶體和裝置的NUMA設定,減少Cache Miss
- RSS隊列和pin到CPU core
- 線程間無鎖化消息互動
- 基于CPU core資訊本地化,無跨core和NUMA節點資訊共享
轉載自https://blog.csdn.net/cloudvtech
三、性能資料
根據UCloud的測試結果,單機性能性能方面Vortex應該在Meglev之上:
Vortex可以實作吞吐量達14M PPS(10G, 64位元組線速),建立連接配接200k CPS以上,并發連接配接數達到3000萬、10G線速的轉發。
這裡還有UCloud在中國DPDK Summit分享的視訊和PPT。根據這個視訊裡面的描述,一個有趣的事實是Vortex幾乎和Meglev同時在2016年釋出,但是殊途同歸,使用了相似的技術路徑;一個需要注意的事實是在Meglev開始實施的2008年左右,DPDK還沒有開源,是以Google完全是憑借自己的實力進行的技術拓展。
轉載自https://blog.csdn.net/cloudvtech