如何在 Ubuntu 上测试 10 千兆位 Intel X520

如何在 Ubuntu 上测试 10 千兆位 Intel X520

我拿到了 Intel X520 并将其连接到 PCI-E x16。ethtool 将该卡识别为 10 Gbit:

 # ethtool eth5
Settings for eth5:
        Supported ports: [ FIBRE ]
        Supported link modes:   1000baseT/Full 
                                10000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 10000Mb/s
        Duplex: Full
        Port: FIBRE
        PHYAD: 0
        Transceiver: external
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
        Link detected: yes

交换机还将链路识别为 10 Gbit。我iperf从 12 台不同的机器(2 次 x 6)运行了测试。除服务器连接外,每个连接都是 1 Gbit。因此,我预计总共会看到大约 6 Gbit(6 台机器 x 每台 1 Gbit)。我在服务器端只得到了总共 1 Gbit。我的问题是:

  1. 难道我做错了什么?
  2. 如何正确测试新卡?

操作系统是 Ubuntu Karmic,主板是 Supermicro X8DAi。谢谢!

编辑:开关是单个Netgear GSM7328S-200NAS。下面是一张图: 6 个 1 Gbps 客户端到 10 Gbps 服务器

我通过运行进行测试:

Server: iperf -s
All clients, simultaneously: iperf -c server_IP

我看到的值约为 150-160 Mbps/客户端,与 1 Gbps 的服务器链接相匹配。我分配给新卡的 IP 从未使用过,所以我想没有 ARP 问题。但是,所有流量都在一个子网上,因为相同的客户端使用旧的 1 Gbps 卡和服务器的 IP。

这里没有虚拟化,只是普通的 Ubuntu 安装,主要提供 NFS 服务。

更新:经过进一步测试,我发现客户端的 ARP 表包含错误的服务器 10 Gbps NIC 条目。那里列出的 HW 地址与服务器的 1 Gbps NIC 相同。我删除了它并手动插入了正确的条目:arp -d server_IP_10garp -s server_IP_10g HW:address。之后我无法ping server_IP_10g

如何在不禁用服务器中的 1 Gbps NIC 的情况下修复它?

UPDATE2:sysctl -w net.ipv4.conf.all.arp_ignore=1 sysctl -w net.ipv4.conf.all.arp_announce=2不起作用。

答案1

在仔细检查了优缺点以及实际可以测试的内容后,我去禁用了eth3服务器(1 Gbps NIC)并设置了eth5(10 Gbps)及其地址。然后客户端找到了新接口并iperf显示来自 10 x 1 Gbps 客户端的 10 Gbps。所以,一切都很好。我认为 @sciurus 上面发布的问题会很棒,如果我永久需要这两个接口。+1,这是很好的参考!

相关内容