4

I'm investigating some poor nfs performance on a new server, as compared to an old server. Both the old and the new server are nfs clients, and they connect to the same exact NetApp nfs server.

My specific question: How to I change the "Advertised pause frame use" setting?

I took a look on the switch side, and the ports on the switch say 1000 Full duplex for both hosts. However, the flow control for the old server shows "Sy/Asy" but the new server is set to Sym. I assume that Asy=Asymmetric and Sym=Symmetric, and my other assumption is that the switch sees Sym because Advertised pause frame use is set to Symmetric on the Linux side. How can I change this to Asymmetric? Could this setting affect performance? I'm just trying to rule out as much as possible.

These are dedicated storage links, i.e. they're a separate NIC and on a separate subnet than the primary NIC.

I see no iowait issues on both the old and new servers, so the CPUs and memory don't appear to be an issue. I figure its something with the eth settings or nfs settings. I can go into more detail on setup, but wanted to answer this specific question first.

New host (CentOS 6.3 on HP ProLiant Dl360P Gen8)

$ 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

Driver: tg3

Old host (SLES 9 SP4 on Sun Fire x4150)

$ 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

Driver: e1000

2
  • What is the specific performance problem?
    – ewwhite
    Jan 31, 2013 at 20:19
  • @ewwhite I found my answer to this specific question. However, I've just posted a much more detailed question in regards to my nfs performance issue. Let me know if you have any thoughts. serverfault.com/questions/474571/…
    – Banjer
    Feb 1, 2013 at 15:17

3 Answers 3

2

Apparently pause and autoneg are settings that can't be set to off on a gigabit NIC per IEEE standards. Thats the word around the intertubes.

1

I have seen autonegotiate turned of on 1g interfaces. Here is how you do it:

http://www.cyberciti.biz/tips/howto-linux-add-ethtool-duplex-settings-permanent.html

I don't you are suppose to, based on the evidence already presented concerning the ieee standards. However, some interfaces allow it.

1
  • Link only answers aren't good answers. If the link dies the answer is useless. Incorporating the essential parts of the answer here makes a better answer and guards against link rot.
    – ChrisF
    Dec 9, 2013 at 22:18
0

According to ethtool manpage, need to use -A option:

   -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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .