Linux
如何更改千兆網卡上的“廣告暫停幀使用”和自動協商設置
與舊伺服器相比,我正在調查新伺服器上一些較差的 nfs 性能。新舊伺服器都是 nfs 客戶端,它們連接到完全相同的 NetApp nfs 伺服器。
我的具體問題: 如何更改“廣告暫停幀使用”設置?
我查看了交換機端,交換機上的埠對兩台主機都說 1000 全雙工。但是,舊伺服器的流控制顯示“Sy/Asy”,但新伺服器設置為 Sym。我假設 Asy=Asymmetric 和 Sym=Symmetric,我的另一個假設是交換機看到了
Sym
因為在 Linux 端Advertised pause frame use
設置為Symmetric
。如何將其更改為非對稱?此設置會影響性能嗎?我只是想盡可能地排除。這些是專用儲存鏈路,即它們是單獨的 NIC,並且位於與主 NIC 不同的子網上。
我發現新舊伺服器上都沒有 iowait 問題,因此 CPU 和記憶體似乎不是問題。我認為它與 eth 設置或 nfs 設置有關。我可以更詳細地了解設置,但想先回答這個具體問題。
新主機(HP ProLiant Dl360P Gen8 上的 CentOS 6.3)
$ sudo ethtool eth3 Settings for eth3: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full **Advertised pause frame use: Symmetric** Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 4 Transceiver: internal Auto-negotiation: on MDI-X: off Supports Wake-on: g Wake-on: g Current message level: 0x000000ff (255) Link detected: yes
司機:tg3
舊主機(Sun Fire x4150 上的 SLES 9 SP4)
$ sudo ethtool eth1 Settings for eth1: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: umbg Wake-on: g Current message level: 0x00000007 (7) Link detected: yes
司機:e1000
顯然
pause
,並且autoneg
是無法在千兆位 NIC 上按照IEEE 標准設置為關閉的設置。那就是圍繞 intertubes 的詞。
我已經看到自動協商在 1g 介面上打開。這是您的操作方法:
http://www.cyberciti.biz/tips/howto-linux-add-ethtool-duplex-settings-permanent.html
根據已經提供的有關 ieee 標準的證據,我不認為您應該這樣做。但是,某些介面允許這樣做。