(Apologies for the long post…I’m including a lot of test results here in hopes that someone recognizes a config problem)
I’m seeing zypper/wget/curl slowness on a Leap 15.3 machine that I cannot reproduce on a Debian machine that resides on the same network. I don’t remember having this problem until after I swapped mainboards a couple weeks ago. At first, I figured the problem was the Realtek NICs on the new mainboard so I grabbed an Intel gigabit NIC from the cabinet but the problem persists.
Current machine details:
CPU: Ryzen 5950x
Mainboard: MSI B550 Tomahawk
Network card: Intel dual gigabit card (Intel 82571)
OS: Leap 15.3
Current kernel: 5.14.15-lp153.2.g3416a5a-default (from the Kernel:/stable:/Backport/standard repo)
One wrinkle is that my NIC is bridged so that I can run VMs on the bridged interface. So eth5 is bound to br0.
> ethtool eth5
Settings for eth5:
Supported ports: TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
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: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
MDI-X: off (auto)
netlink error: Operation not permitted
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
For the following tests, I’ll show throughput measurements from this machine (‘slowbox’) and a Debian machine connected to the same local network (‘server’)…
Test #1: Use ‘wget’ to grab http://download.opensuse.org/repositories/mozilla/openSUSE_Leap_15.3/x86_64/MozillaThunderbird-translations-common-91.3.0-lp153.3.1.x86_64.rpm (though I see similar behavior with files from other repositories):
slowbox: server:
2021-11-04 13:54:40 (2.14 MB/s) 2021-11-04 13:57:35 (4.12 MB/s)
2021-11-04 13:55:19 (635 KB/s) 2021-11-04 13:57:47 (4.08 MB/s)
2021-11-04 13:55:59 (461 KB/s) 2021-11-04 13:58:00 (5.05 MB/s)
Notes: slowbox speed was erratic ranging from 48KB/sec to over 5MB/sec briefly
So despite being on the same local network, ‘server’ grabbed the files much quicker.
Test #2: Copy that RPM to a co-located virtual machine on the US east coast and then use ‘wget’ to download it from there to my local machines:
slowbox: server:
2021-11-04 14:11:23 (720 KB/s) 2021-11-04 14:13:01 (6.38 MB/s)
2021-11-04 14:11:55 (709 KB/s) 2021-11-04 14:13:04 (12.1 MB/s)
2021-11-04 14:12:34 (1.30 MB/s) 2021-11-04 14:13:06 (12.8 MB/s)
Again, ‘server’ is about 10x faster than ‘slowbox’ despite being on the same local network
Test #3: Use ‘scp’ (with AES, no compression) to download the same file from the co-located VM:
slowbox: server:
Test 1: 8.2MB/s 8.8MB/s
Test 2: 5.8MB/s 12.0MB/s
test 3: 6.5MB/s 12.7MB/s
So, ‘scp’ speeds are comparable between the two machines. The RPM is small enough that the diff between 6MB/sec and 12MB/sec gets lost in the noise. What is interesting is that ‘slowbox’ appears to be able to ‘scp’ about 10x faster than plain ‘wget’ from the remote host.
Test #4: To rule out local network issues as well as ‘wget’ weirdness, I copied the RPM to a webserver hosted on ‘server’ and then used ‘wget’ to download that file to ‘slowbox’:
slowbox:
2021-11-04 14:03:58 (112 MB/s)
2021-11-04 14:04:53 (112 MB/s)
2021-11-04 14:05:04 (112 MB/s)
So this suggests that there’s nothing wrong with the network interface or local network: we’re seeing the expected gigabit speeds. This is also confirmed by measuring NFSv4 throughput between ‘server’ and ‘slowbox’.
In the tests above, I used ‘wget’ but I see similar performance with ‘curl’. And, as mentioned at the beginning, I see similar performance using ‘zypper’.
So…
Test #4 suggests that the network config is okay. We get the expected throughput on the local network.
Test #3 suggests that we can use ‘scp’ to fetch files from the internet with no performance issues.
Tests #1 and #2 suggest that fetching files using wget (and curl and zypper) are for some reason much slower on this Leap 15.3 machine.
Any ideas what I might have misconfigured?