Open2
Load Balancer
ロードバランサの方式や実装についてのサーベイ。
- 解説資料(論文とか)や実装(GitHub Repoとか)へのリンクを貼っていく
- ある程度溜まったら、整理して記事として公開する
実装や方式まとめ
- Software
- Ananta [SIGCOMM'13]
- Maglev [NSDI'16]
- Programmable Switch
- Silkroad SIGCOMM'17
- Cheetah [NSDI'20]
- Strawman solution: switch-server LB
Tiara: A Scalable and Efficient Hardware Acceleration Architecture for Stateful Layer-4 Load Balancing
- 所属:ByteDance, Hong Kong University of Science and Technology, ICT/CAS, Peking University
- NSDI22掲載。TikTok サービスで著名な中国の ByteDance 社が香港の大学 HKUST や 北京大学 と研究開発したステートフルロードバランサ
- 8枚のFPGAカードを搭載したサーバで 1.6 Tbps throughput, 80M concurrent flows, 1.8M new connections per second, and less than 4 us latency in the fast path という性能を達成
- 実際運用してどうだったかは聞いてみたいので、詳細ご存知の方いましたら教えてください
まとめ
- Throughput は Silkroad と同様 1.6Tbps だが、CPS は Silkroad (200K) -> Tiara (1.8M) の方が CPSが高い。
- しかし、CPS以外はコストも含め全て Silkroad に負けている。
- 訴求ポイントは、Switch ASIC, FPGA SmartNIC, CPU それぞれの階層毎に特性を生かして組み合わせた、という事?
memo
- 多くのL4LBは State full なコネクションテーブルを用いて Per Connection Consistency (PCC) を実現している
- Software: Ananta [SIGCOMM'13], Maglev [NSDI'16]
- Low efficiency (1台当たりの性能が低いため、台数が増えるため高コスト)
- High Latency and Jitter
- Programmable Switch: Silkroad [SIGCOMM'17], Cheetah [NSDI'20]
- Scallability issue on data plane: メモリが少ない(50~100 MB on-chip memory)ため、サポート可能な同時コネクション数が少ない
- Scallability issue on control plane: サポート可能な Connection Per Sec (CPS) が低い。エントリ挿入(削除)速度が遅い。100K entry insertions per sec. Low-end SoC, Slow PCIe Interconnect. Cuckoo hash.
- Strawman solution: switch-server LB
- Server が全てのステートを管理しつつ、Switch (ASIC/FPGA) が高速キャッシュとして動作
- Long-tail であり、高速な処理が必要なコネクション数は少ない事が前提となっているが、実際には Long-tail にはなっておらず、多くのトラフィックが多くのコネクション数にまたがっている場合もある。結果、Switch に高速処理を必要とするコネクションが乗りきらない。
- System Goals
- Scalable - 10M 同時セッション、1M CPS (Connection per Sec) 新規コネクション
- Efficient - コスト、電力、スペース
- Generic - トラフィックパターンに依存しない
- Tiara idea and design
- Real server selection を FPGA on SmartNIC (HBM), Packet encap/decap を Switch ASIC で処理