我有两个节点通过 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 连接,并且得到:
我有一条 FDR(56Gb/秒)电缆,并开始获得:
我一直想知道如果我同时使用两个端口会怎样,所以尝试了一下,得到了:
那好吧。我可能不会为这个收益而烦恼。
我绝对认为 haggai_e 是对的,因为我的卡也是 PCI Express 3.0 x8。我认为要看得更快,我们需要 3.0 x16 或 4.0 卡。
双端口的另一个优点是它们可以直接连接到不同的网络或机器,并且如果它们不经常传输,则它们都可以全速运行。