有关 iperf 和 infiniband 以及多个 NIC 的帮助

有关 iperf 和 infiniband 以及多个 NIC 的帮助

我的服务器机房的机架中有两台戴尔服务器:

  • RHEL 7.9 x86-64iperf-2.0.13-1.el7.x86_64
  • 主机名是AB
  • 每个都有
    • 1 个 10GbE 英特尔网卡,有 2 个端口
    • 1 个 1Gbps 英特尔网卡{传统},有 2 个端口
    • 1 张 Mellanox infiniband 卡
  • 我的网络命名是
    • em1,10GbE 端口 1
    • em2,10GbE 端口 2
    • em3,1Gbps 端口 1,静态IP 192.168.1.1 / 255.255.255.0
    • em4,1Gbps 端口2
    • ib0、mellanox infiniband 100 Gbps、静态IP 192.168.2.1 / 255.255.255.0
    • A为 192.168.x.1 和B192.168.x.2,其中 x = 1 表示 1Gbps,x = 2 表示 infiniband
    • 我可以在 infiniband 192.168.2.x 子网上的ping每个之间以及两个之间。scp

如果A我简单地iperf -s这样做,Biperf -c 192.168.1.1就可以工作并说 942 mbits/sec。但B如果我这么做了,iperf -c 192.168.2.1我就没有办法主持。

在这种情况下如何iperf查看特定网络接口的传输速度?特别是我的ib0em1当我完成设置后,最终会超过我的10GbE 吗?

答案1

你能得到来自sourceforge的最新消息?我建议 git checkout 2-1-1-dev 并构建它。

对于您的问题,可以使用 % 约定绑定到接口,例如 iperf -c 192.168.1.1%ib0

请参阅手册页,注释部分:

对于客户端和服务器,绑定是使用 -B 选项在逻辑级别(IP 地址或第 3 层)完成的,以及在设备(或第 2 层)级别使用百分比 (%) 分隔符完成的。在客户端,-B 选项影响bind(2) 系统调用,并将设置源IP 地址和源端口,例如iperf -c -B 192.168.100.2:6002。这控制数据包的源值,但不控制路由。这些可能会造成混淆,因为路由或设备查找可能不是具有配置的源 IP 的设备的路由或设备查找。因此,例如,如果 eth0 的 IP 地址用于 -B,并且目标 IP 地址的路由表将输出接口解析为 eth1,则主机将使用 eth1 的源 IP 地址将数据包发送到设备 eth1。数据包中的 eth0。要影响物理输出接口(例如双宿主系统),请使用 -c %(需要 root)绕过此主机路由表查找,或者为每个 -B 源地址配置策略路由并在策略路由中适当设置输出接口。在服务器或接收端,仅接收发往 -B IP 地址的数据包。它对于多播也很有用。例如,iperf -s -B 224.0.0.1%eth0 将仅接受在 eth0 接口上接收的目标 ip 224.0.0.1 的 ip 多播数据包,而 iperf -s -B 224.0.0.1 将在任何接口上接收这些数据包,最后,v6 链路本地需要设备说明符,例如 -c [v6addr]% -V,以选择输出接口。

相关内容