如何在 Ubuntu 上測試 10 Gb 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。我的問題是:
- 難道我做錯了什麼?
- 如何正確測試新卡?
作業系統是 Ubuntu Karmic,MB 是 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 條目。那裡列出的硬體地址與伺服器的 1 Gbps NIC 相同。我刪除了它並手動插入了正確的條目:
arp -d server_IP_10g
,arp -s server_IP_10g HW:address
. 在那之後,我無法ping server_IP_10g
。如何在不禁用伺服器中的 1 Gbps NIC 的情況下修復它?
更新2:
sysctl -w net.ipv4.conf.all.arp_ignore=1 sysctl -w net.ipv4.conf.all.arp_announce=2
不起作用。
在仔細修改了優缺點以及實際可以測試的內容之後,我去禁用
eth3
了伺服器(1 Gbps NIC)並設置了eth5
(10 Gbps)及其地址。然後客戶端找到新介面並iperf
顯示來自 10 x 1 Gbps 客戶端的 10 Gbps。所以,一切都很好。如果我永久需要這兩個介面,我認為上面發布的@sciurus 的問題會很棒。來自我的+1關於很好的參考!