Latency problems are harder because the speed of light is fixed; you can’t bribe God—David Clark
In recent years, network bandwidth has dramatically increased, and kernel processing packet capabilities have not kept pace. To further improve network performance and reduce latency, technologies such as RDMA and DPDK have emerged, bypassing direct kernel packet processing. This article will introduce current RDMA-related technologies, compare them, and discuss some challenges.
Table of Contents
High Level Overview
RDMA 技術基本上都是把 transport layer offload 到網卡上,避免使用 kernel 做封包處理,把 CPU 從 critical path 中拿除。顧名思義,這可以讓設備直接寫入其他設備的虛擬記憶體,在可控制的環境中達成 10 毫秒左右的傳輸延遲。但是傳統的 RDMA 有兩個很大的缺點:- RDMA requires a lossless network, which is essentially InfiniBand
- Therefore, external deployment of InfiniBand switches and network cards supporting InfiniBand is required
Why Not Use RDMA on Ethernet
好消息是當然可以在 Ethernet 上跑 RDMA。目前 Ethernet 上的 RDMA 技術分為兩大家:RoCE (RDMA over Converged Ethernet) 跟 iWARP (Internet Wide Area RDMA Protocol)RoCE 是由 Mellanox 所提出,而 iWARP 則主要由 Intel 和 Chelsio 所支持。不過目前這兩大技術都有一些很大的缺點。
RoCE vs iWARP
在另一方面,RoCE 用的是 UDP protocol,速度相較使用 TCP/IP 的 iWARP 快了一些。相對的就是仍然需要 lossless network 已獲得相對較佳的 performance,在 lossy network 下雖然仍然可以使用,但效能大打折扣。於是就有了 PFC (priority flow-control),來達成 Ethernet 上的 lossless network。Microsoft 為了在像 datacenter 中沒有 VLAN 的環境大規模部屬 PFC,設計了 DSCP-based PFC,讓 PFC 可以在 L3 下運作。此外 Microsoft 也在 SIGCOMM’16 發了一篇論文探討在大規模部屬的 RoCE 遇到的問題,包含 livelock, deadlock, pause frame storm 的問題。Lossless network 雖然確保了 RoCE 的效能,卻也因為複雜的設定造成了維運者的困難。
RDMA vs DPDK
DPDK 跟 RDMA 同樣的可以 bypass kernel,並使用 polling 的機制來獲取封包來減少 CPU 的消耗。Mellanox 認為 RDMA 仍然優於 DPDK 的原因在於所有的封包處理仍來是在 user space 進行,而 RDMA 則 offload 部分到 NIC 上。不過也有人認為 Mellanox 的說法並不合理,因為 RDMA 也需要在 busy polling 跟 even triggered 兩種模式擇一,前者消耗較多 CPU 資源,後者則會有較高的 latency。Summary
有很多的報告指出 RDMA 相較 TCP 能夠獲得很顯著的效能提升。然而最大的問題在 programmability、安全性、部屬與維運上。RDMA 在管理層面的複雜性造成其在大規模部屬上仍有其困難。最後還是老話一句,沒有最好的方案,只有最適合的方案。我們需要犧牲多少去獲得這些效能,以及其值不值得,在每個 deployment 都會有不一樣的答案。Reference
- https://shelbyt.github.io/rdma-explained-1.html
- http://www.mellanox.com/related-docs/whitepapers/DP_heavyreading-NFV-performance.pdf
- http://www.mellanox.com/related-docs/whitepapers/DP_RoCE_vs_iWARP.pdf
- https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/rdma_sigcomm2016.pdf
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stated otherwise.