我拿到了 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。我的问题是:
- 难道我做错了什么?
- 如何正确测试新卡?
操作系统是 Ubuntu Karmic,主板是 Supermicro X8DAi。谢谢!
编辑:开关是单个Netgear GSM7328S-200NAS。下面是一张图:
我通过运行进行测试:
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_10g
,arp -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,这是很好的参考!