Slow internet on Tumbleweed compared to Fedora

I did a fresh install of Tumbleweed alongside to my Fedora installation and noticed that repos metadata download is very slow, even even though it’s the fastest mirror for me. When I download this file in openSUSE the speed is ~300 KiB/s, which very slow. On Fedora the same file downloads with ~5 MiB/s (as it should be). It can’t be mirror’s issue, I did several reboots between openSUSE and Fedora and the issue persists.
My motherboard is ASRock B350 Pro4, lspci | grep Ethernet show:

25:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.  RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)

Kernel module is r8169 in both distros. Kernel version in both systems is 4.18.7, both use NetworkManager.
ethtool enp37s0 in openSUSE:


Settings for enp37s0:
        Supported ports:  TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                            drv probe ifdown ifup
        Link detected: yes

ethtool enp37s0 in Fedora:


Settings for enp37s0:
        Supported ports:  TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                            100baseT/Half 100baseT/Full 
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                            drv probe ifdown ifup
        Link detected: yes

How do I fix this?

I notice that your openSUSE NIC negotiation is operating in 100Mb/s half duplex and auto-negotiation is turned off , while with Fedora you have 100Mb/s full duplex with auto-negotiation turned on. Strange…any explicit config differences?

Would be interesting if either Fedora or openSUSE modified network buffer and IP settings…

In a “paper” I wrote awhile ago but still relevant today,
On the following page I describe how to retrieve and display a number of network related settings

https://sites.google.com/site/4techsecrets/optimize-and-fix-your-network-connection/tcp-buffer-re-sizing/viewinng

Aside from comparing those settings for both distros, you can read the entire article from the beginning

https://sites.google.com/site/4techsecrets/optimize-and-fix-your-network-connection

I’d be surprised if the settings are different for each distro, but if you’re interested the article can give you numerous ideas about tweaking to improve performance.

TSU

Nope, default NetworkManager and sysctl (besides vm.swappiness, vm.dirty_ratio, etc) settings.

Yeah but I’m not looking to increase performance, I’m looking to get reasonable performance. Because if in Tumbleweed download speed is 17x less that in other distros (including Windows), then something is clearly wrong.

Well you need to get to the root cause of that negotiation issue to start with.

What happens if you do the following?

sudo ethtool -s enp37s0 autoneg on

then check

sudo ethtool enp37s0

Just tried, it after enabling autoneg speed becomes normal. The question is: why is it disabled by default (btw I don’t even know what it is)?

I have no idea why autonegotiation isn’t enabled, but it’s easy enough to automate at boot if required.

(btw I don’t even know what it is)?

Some reading…
https://en.wikipedia.org/wiki/Autonegotiation

Thanks.

Turns out that is was NetworkManager issue. I stopped it, removed connection settings from /etc/NetworkManager/system-connections/, started it again and problem is gone.

Check that all is still good after a reboot.

Yep, after reboot it’s ok too. Connection config file in /etc/NetworkManager/system-connections/ had fields that disabled auto-negotiation and enabled half duplex. No idea how they got there (maybe when I switched from wicked to NetworkManager). I just removed this file and NetworkManager set up everything correctly.

Thanks for the update. Good to read that it is now working as expected. :slight_smile:

If you would like to get to know what autonegotiation is check this on wikipedia :slight_smile:
https://en.wikipedia.org/wiki/Autonegotiation

Basically it is an Ethernet feature that allows network devices to talk to each other and agree on the best speed/duplex configuration they both support.

As I already linked to back in post #8 :wink:

Sorry for the duplication then :slight_smile: missed that post somehow.