[Mellanox] 我必须使用的 infiniband HDR 据称为 100 Gbps。
在进行单个文件复制时,my30gb.tar
我rsync --progress
观察到后续副本的最大速度为 480 MB/秒,平均速度约为 460 MB/秒,假设第一个文件已my30gb.tar
缓存在 RAM 中,因此我不会受到读取速度的限制。安装了SAS SSD。 30GB tar 文件的写入最初将进入 RAM。源服务器和目标服务器都有 700GB RAM。
使用 samba 在铜缆 1gbps 上进行从 win10 到我的服务器/从我的服务器进行相同类型的复制时,我总是获得稳定的 112 MB/秒。这就是我的参考点。例如:
如果我的 infiniband HDR 是 100 倍,为什么我的节目速度没有rsync --progress
接近 100 倍?我只看到约 450 MB/秒,希望观察到 112,000 MB/秒。 450 / 112,000 的提升还不到 1%?使困惑。
我意识到广告中的 infiniband 网络速度以每秒位数为单位,但我正在寻找一些可以与预期文件传输速度(以每秒字节数为单位)以及传输大文件所需的时间相关的内容
在我的 2 个 infiniband HDR 上的 Linux 服务器之间,没有其他开销或流量,NFS 连接是 v4.1 和协议 TCP。我让 RDMA 协议正常工作,并且使用该 30gb tar 文件仍然观察到相同的传输值。
是否可以/应该进行网络调整或 nfs 调整? 如果一切都正确完成的话,我期望通过 infiniband HDR 实现的最大文件传输速度是多少? 希望了解限制因素,因为它涉及某些网络上 NFS 的文件复制速度,无论是 1gbps 铜缆、100gbps infiniband 还是其他网络。如果有人对使用上一代 infiniband...FDR、EDR、QDR 以及任何比 1 Gbps 铜线更快的东西有见解,我希望您能提供信息。
挂载 NFS 挂载参数是默认值,显示为
(rw,nosuid,noexec,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.2,local_lock=none,addr=192.168.1.1,_netdev)
答案1
只要仔细配置,就有可能通过 NVMEoF 获得持续的、接近链接速度的读/写性能。仔细的配置包括以下内容:您是否有足够的 PCIe 带宽来处理您的 NIC?一个 PCIe Gen 3 x 16 通道插槽的速度仅足以支持一个 100 Gbit Infiniband 链路。然后,您必须确保有足够的 PCIe 带宽、足够的 PCIe 通道,以便将数据传输到 NVME 阵列,并且如果您使用 4 通道 NVME 设备,则可以将设备分布在计算机中可用的通道上。您需要确保 NIC 和 NVME 阵列位于计算机中的同一 PCIe 主机上。您需要考虑还有哪些其他设备正在使用该 PCIe 带宽。
对于 Infiniband 和其他高速网络,将内核、CPU、中断等排除在数据传输之外变得很重要。它们往往是限制因素。最糟糕的情况之一是 CPU 必须接触缓冲区。
Infiniband 的一项关键优势是无需任何 CPU 干预即可进行远程直接内存访问 (RDMA)。您通过网络接口卡 NIC 将数据从内存移动到远程计算机 NIC,然后直接 DMA 到内存中。
首先确保 Infiniband、NIC 和 NVidia (Mellanox) OFED 配置正确并且达到宣传的 100 Gbps。您可以使用 NVidia 提供的“perftest”来完成此操作。
Infiniband 发送带宽 ib_send_bw 测试是一个起点。
在一台 Infiniband 连接的计算机上仅运行“ib_send_bw”。在另一台计算机上运行“ib_send_bw XXX.XXX.XXX.XXX”,其中 XXX.XXX.XXX.XXX 是第一台计算机的 Infiband 适配器的 IP 地址。
https://www.ibm.com/docs/fi/linux-on-systems?topic=linuxonibm/performance/howtos/verifyrdma.htm
您还可以使用 iperf3 或 netcat (nc) 来进行估计。例如这个问题和答案:
https://askubuntu.com/questions/7976/how-do-you-test-the-network-speed- Between-two-boxes
rsync默认要进行delta/diff比较,这涉及到CPU读取缓冲区。压缩或将 rsync 与 ssh 结合使用会降低性能,因为 CPU 需要再次读取和操作所有数据。使用无需 CPU 参与即可传输数据的技术有很多优点,例如 NVME over Fabric (NVMEoF)、iSCSI 等。