拓扑结构
不指定IB方式:
指定IB方式:
server端
首先启动server端:
ib_write_bw --ib-dev=mlx5_1
要点是要指定使用哪个ib设备,尤其是有多卡以及一卡多port场景。
假设使用mlx5_1的ib_device,这个名字可以根据ibv_devices查看,或者ibdev2netdev查看。
底层会启动端口,默认18515。listen接口阻塞等待在18515(可以netstat查看)
比如,如下看到18515处于listen中
如果有设备连接后就会accept进行处理。这里涉及到监听端口和响应端口的问题。
server端IP信息:
client端
client端指定ibdev以及需要指定一个 IP 地址
ib_write_bw --ib-dev=mlx5_0 1.1.1.1
指定IP地址后,ib_write_bw如果判断有指定IP就会进入client模式去链接对应的IP,底层执行connect。去连接指定的IP,并且用默认的端口18515。connect成功后,就会send recv进行交互需要交互的数据。
这里使用mlx5_0的ib设备。
本文举例是同一个网卡的2个物理端口进行操作,server端使用mlx5_1,配置的IP地址是1.1.1.1; client端使用mlx5_0,配置的IP地址是1.1.1.2。这里client端连接的时候指定自己的ib-dev,然后IP指定server的IP进行交互数据。建立链接后,就用mlx5_0的ib设备作为client,去连接mlx5_1的ib设备。
实测效果
Server端:
Client端:
极简测试方式
Server:
ib_write_bw
Client:
ib_write_bw localhost