solarflare网卡自环测试

对于一块单独的solarflare网卡进行性能测试,如何进行?

solarflare x2万兆光网卡上面有两个port,通过光纤直连这两个port进行测试。如果不做任何其他的设置,直接一个port Ip作为client地址,另一个port作为server地址,这样测试的结果是不准确的。你可以尝试把光驱从光模块上拔掉,会发现数据发送接收不受影响。

这是如何实现的?环回接口允许在同一台主机上的客户程序和服务器程序通过tcp/ip进行通信。任何传给该主机ip地址的数据均送到环回接口,传给回环接口的任何数据均作为ip输入。也就是走的local路由表的loopback。

那么如何实现一个从一个port发送经过光纤被另外一个port接收到呢?使用net namespace可以实现。Namespace是Linux的一种轻量级的虚拟化,提供了更精细化的资源管理方式。Net namespace用来隔离网络设备,ip地址,端口等。每个net namespace都有自己独立的网络栈、路由表、防火墙规则、socket等。

逻辑拓扑:

       enp130s0f0np0  ß--------光纤--------à enp130s0f1np1

enp130s0f0np0和enp130s0f1np1是solarflare万兆光网卡的两个port,它们通过光纤连接。

1>添加一个netns

     ip netns add t1

2>将enp130s0f1np1加入命名空间t1

     ip link set enp130s0f1np1 netns t1

3>设置enp130s0f1np1的ip地址

     ip netns exec t1 ifconfig enp130s0f1np1 192.168.1.101

     完成之后通过ifconfig命令将看不到enp130s0f1np1,

4>运行client程序,client使用enp130s0f1np1

     ip netns exec t1 ./client_new

     或者使用onload:

     ip netns exec t1 onload -p latency taskset -c 1 ./client_new

5>运行server程序,service使用enp130s0f0np0

     ./server

     或者使用onload:

     onload -p latency taskset -c 3 ./server

 

按照上面配置方式测试,从同一网卡的port0传递数据到port1会通过光纤,而不是像之前那样走的local路由表的loopback。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值