我正在调查新服务器上与旧服务器相比的某些较差的 nfs 性能。旧服务器和新服务器都是 nfs 客户端,它们连接到同一个 NetApp nfs 服务器。
我的具体问题是: 如何更改“通告暂停帧使用”设置?
我查看了交换机端,交换机上的端口显示两个主机的 1000 全双工。但是,旧服务器的流量控制显示“Sy/Asy”,但新服务器设置为 Sym。我假设 Asy=Asymmetric 和 Sym=Symmetric,我的另一个假设是交换机看到Sym
因为在 Linux 端Advertised pause frame use
设置为Symmetric
。我如何将其更改为 Asymmetric?此设置会影响性能吗?我只是试图尽可能地排除。
这些是专用存储链路,即,它们是单独的 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
答案1
显然pause
,和autoneg
是每千兆网卡上不能关闭的设置IEEE 标准。这就是轮胎内胎周围的用语。
答案2
我见过 1g 接口上关闭自动协商的情况。操作方法如下:
http://www.cyberciti.biz/tips/howto-linux-add-ethtool-duplex-settings-permanent.html
根据已经提供的有关 IEEE 标准的证据,我认为您不应该这样做。但是,某些接口允许这样做。
答案3
根据 ethtool 手册页,需要使用 -A 选项:
-A --pause
Changes the pause parameters of the specified Ethernet
device.
autoneg on|off
Specifies whether pause autonegotiation should be
enabled.
rx on|off
Specifies whether RX pause should be enabled.
tx on|off
Specifies whether TX pause should be enabled.