Slow Download Speeds on Proxmox v8.0.3 Host

baku

New Member
Nov 19, 2023
3
0
1
Hello,

I'm experiencing an issue with slow download speeds on my Proxmox v8.0.3 server, and I'm looking for some assistance to resolve this.

Despite having a 500Mbps connection, my download speeds are significantly lower than expected, though upload speeds are as expected. From iperf output it's apparent that LAN speeds are also slowed down. Here's what I've tried so far:
  • Changed network cables and verified the hardware is not at fault.
  • Conducted tests on another system connected to the same switch, which yielded normal speeds.
  • Ran speedtest-cli and iperf (both standard and reverse modes) to assess network performance, confirming the issue.
  • Attempted switching the network driver to r8125 from r8169, but this didn't improve the download speeds.
  • Using ethtool switch speed of interface. Interestingly, when setting speed to 100mbps the download speed is slowed down by about another 3x, while upload is intact.
All tests indicate that my network infrastructure (including the switch) is functioning correctly. The upload speed tests align with my ISP's provided speeds, but the download speed is consistently lower than the expected 500Mbps.

Has anyone else encountered similar issues or could provide guidance on what else to check or configure in Proxmox to rectify this?

Motherboard Gigabyte B760M
CPU i5-13500

Thank you in advance for your assistance.

iperf on host:
root@homelab:~# iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 128 KByte (default) ------------------------------------------------------------ [ 1] local 192.168.0.240 port 5001 connected with 192.168.0.229 port 55688 (icwnd/mss/irtt=14/1448/4259) [ ID] Interval Transfer Bandwidth [ 1] 0.0000-10.0112 sec 63.6 MBytes 53.3 Mbits/sec [ 2] local 192.168.0.240 port 5001 connected with 192.168.0.229 port 55729 (reverse) (icwnd/mss/irtt=14/1448/3057) [ ID] Interval Transfer Bandwidth [ 2] 0.0000-10.0925 sec 258 MBytes 214 Mbits/sec

speedtest-cli on host:

root@homelab:~# speedtest-cli Retrieving speedtest.net configuration... Testing from Telia Lietuva (xx.xx.xx.xx)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by Rackray (Vilnius) [0.xx km]: 40.634 ms Testing download speed................................................................................ Download: 20.01 Mbit/s Testing upload speed...................................................................................................... Upload: 51.19 Mbit/s

speedtest-cli on 100mbps speed:

root@homelab:~# speedtest-cli Retrieving speedtest.net configuration... Testing from Telia Lietuva (xx.xx.xx.xx)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by Cgates (Vilnius) [0.xx km]: 32.963 ms Testing download speed................................................................................ Download: 6.55 Mbit/s Testing upload speed...................................................................................................... Upload: 53.91 Mbit/s


speedtest on same network synology NAS:

Speedtest by Ookla Server: Melbicom - Vilnius (id = 37175) ISP: Telia Lietuva Latency: 23.16 ms (8.50 ms jitter) Download: 504.40 Mbps (data used: 803.2 MB ) Upload: 48.48 Mbps (data used: 59.8 MB ) Packet Loss: 0.0%

ip addr output:

root@homelab:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000 link/ether 74:56:3c:2c:87:e9 brd ff:ff:ff:ff:ff:ff 3: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 74:56:3c:2c:87:e9 brd ff:ff:ff:ff:ff:ff inet 192.168.0.240/24 scope global vmbr0 valid_lft forever preferred_lft forever inet6 fe80::7656:3cff:fe2c:87e9/64 scope link valid_lft forever preferred_lft forever 4: tap100i0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master fwbr100i0 state UNKNOWN group default qlen 1000 link/ether d6:5f:5c:b5:3e:bc brd ff:ff:ff:ff:ff:ff 5: fwbr100i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 4a:ea:35:74:af:b9 brd ff:ff:ff:ff:ff:ff 6: fwpr100p0@fwln100i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vmbr0 state UP group default qlen 1000 link/ether ce:ca:e4:4f:ec:04 brd ff:ff:ff:ff:ff:ff 7: fwln100i0@fwpr100p0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master fwbr100i0 state UP group default qlen 1000 link/ether 2a:ea:c0:f7:48:85 brd ff:ff:ff:ff:ff:ff

Network interface details:

root@homelab:~# ethtool -i enp4s0 driver: r8125 version: 9.012.03-NAPI firmware-version: expansion-rom-version: bus-info: 0000:04:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
 
Last edited:
Please post: cat /etc/kernel/cmdline if it does not exist please post cat /etc/default/grub

Please also try to use iperf server with iperf -s -P 64 and iperf client with iperf -c <IPERFSRVIP>-P 64 -t 3600 and post the output please.

Whats the output of ethtool enp4s0
 
The enp4s0 is a device with Realtek chip.

For myself, in my homelab beginnings I even could not believe it, but buying an Intel NIC card solves the problem.

I had the same problems like you, low speeds, good mainboard, thought the nic chip could not be that bad... but an old 2016 Intel quad NIC card from ebay make it.
 
Last edited:
Please post: cat /etc/kernel/cmdline if it does not exist please post cat /etc/default/grub

Please also try to use iperf server with iperf -s -P 64 and iperf client with iperf -c <IPERFSRVIP>-P 64 -t 3600 and post the output please.

Whats the output of ethtool enp4s0
Here are the outputs

cat /etc/kernel/cmdline:

root@homelab:~# cat /etc/kernel/cmdline cat: /etc/kernel/cmdline: No such file or directory

cat /etc/default/grub:

root@homelab:~# cat /etc/default/grub # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="" # If your computer has multiple operating systems installed, then you # probably want to run os-prober. However, if your computer is a host # for guest OSes installed via LVM or raw disk devices, running # os-prober can cause damage to those guest OSes as it mounts # filesystems to look for things. #GRUB_DISABLE_OS_PROBER=false # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1"

iperf -s -P 64 with client simple and reverse requests:

root@homelab:~# iperf -s -P 64 ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 128 KByte (default) ------------------------------------------------------------ [ 1] local 192.168.0.240 port 5001 connected with 192.168.0.229 port 49917 (icwnd/mss/irtt=14/1448/3398) [ ID] Interval Transfer Bandwidth [ 1] 0.0000-10.1606 sec 63.9 MBytes 52.7 Mbits/sec [ 2] local 192.168.0.240 port 5001 connected with 192.168.0.229 port 49955 (reverse) (icwnd/mss/irtt=14/1448/3313) [ ID] Interval Transfer Bandwidth [ 2] 0.0000-10.3233 sec 233 MBytes 189 Mbits/sec

ethtool enp4s0:

root@homelab:~# ethtool enp4s0 Settings for enp4s0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 2500baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 2500baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Link partner advertised pause frame use: No Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: on Port: Twisted Pair PHYAD: 0 Transceiver: internal MDI-X: Unknown Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000033 (51) drv probe ifdown ifup
 
The enp4s0 is a device with Realtek chip.

For myself, in my homelab beginnings I even could not believe it, but buying an Intel NIC card solves the problem.

I had the same problems like you, low speeds, good mainboard, thought the nic chip could not be that bad... but an old 2016 Intel quad NIC card from ebay make it.
Thanks for the tip. I will try to debug some more, reinstall proxmox if can't find a solution. If nothing helps, then I suppose the only option left will be to try a new NIC
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!