Performance-Tuning

雙埠 RDMA 吞吐量問題

  • January 7, 2019

我有兩個節點通過 IB 交換機與雙埠 Mellanox Connext-X3 VPI HCA 連接。這些節點是兩個插槽機器,每個插槽帶有 Hasswell CPU 和 2 個 16GB DIMM(總計 64GB)。一切似乎都很完美,除了看起來不正確的性能數字。

當我執行ib_read_bw基準測試時:

server# ib_read_bw --report_gbits
client# ib_read_bw server --report_gbits

---------------------------------------------------------------------------------------
#bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
65536      1000             37.76              37.76          0.072016
---------------------------------------------------------------------------------------

但是當我執行雙埠時:

server# ib_read_bw --report_gbits -O
client# ib_read_bw server --report_gbits -O
---------------------------------------------------------------------------------------
#bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
65536      2000             52.47              52.47          0.100073
---------------------------------------------------------------------------------------

我只得到了不到 40% 的改進(我錯誤地期望約 2 倍單埠頻寬)?

我不知道這裡的瓶頸是什麼以及如何找到它。

其他可能有用的配置:

  • 每個socket有8個核心,每台機器總共有32個HT
  • 每個 DIMM 提供 ~14GB/s bw(每個插槽 mem-bw:~28 GB/s,總體 ~56 GB/s)
  • 我使用 Mellanox 的 Auto Tuning Utility 工具來調整中斷。
  • IB 鏈路是 4X 10.0 Gbps (FDR10) – 每個 40 Gb/s
  • 我正在使用 Mellanox OFED 4.3。

我認為這裡的瓶頸是 ConnectX 和主機之間的 PCIe 鏈路。ConnectX-3 有一個Gen. 3 x8 PCIe 連接,理論上最大 63.04 Gbps(根據這個答案),不包括成本(見這裡)。

我有 (2) 個系統,每個系統都有一個 Mellanox FDR MCX354A-FCBT CX354A (ConnectX-3 VPI)。只有 (2) 個使用 InfiniBand,我沒有開關,只是直接連接它們。我正在執行雙 Xeons(桑迪橋。)

我有一根 40Gb/秒的電纜,它阻止了 FDR 連接,並且得到:

#bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
65536      1000             31.11              31.11              0.059329

我有一條 FDR(56Gb/秒)電纜,並開始獲得:

#bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
65536      1000             49.58              49.58              0.094569

我一直想知道如果我同時使用兩個埠會怎樣,所以嘗試了一下,得到了:

#bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
65536      2000             52.28              52.28              0.099717

那好吧。我可能不會為這個收益而煩惱。

我絕對認為 haggai_e 是對的,因為我的卡也是 PCI Express 3.0 x8。我認為要看得更快,我們需要 3.0 x16 或 4.0 卡。

雙埠的另一個優點是它們可以直接連接到不同的網路或機器,並且如果它們不經常傳輸,它們都可以全速執行。

引用自:https://serverfault.com/questions/906414