Linux

如何在 Ubuntu 上測試 10 Gb Intel X520

  • September 13, 2011

我得到了 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,MB 是 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 條目。那裡列出的硬體地址與伺服器的 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關於很好的參考!

引用自:https://serverfault.com/questions/309513