[SOLVED] USB 2.5GBE Adapter only 110MB/s on pve (direct), but 250MB/s on a VM on located on that host (pve)

What gives "ethtool en..." (give interface name as of "ip a" shown) of your host card ?
 
ok, I updated the driver and now it says Duplex Full

before driver change:


Code:
root@pve:~#  ethtool enx00e04c680180
Settings for enx00e04c680180:
        Supported ports: [  ]
        Supported link modes:   Not reported
        Supported pause frame use: No
        Supports auto-negotiation: No
        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: 2500Mb/s
        Duplex: Half
        Auto-negotiation: off
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        MDI-X: Unknown
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes


after driver change:

Code:
 ethtool enx00e04c680180
Settings for enx00e04c680180:
        Supported ports: [ TP    MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
                                2500baseT/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
                                2500baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  100baseT/Half 100baseT/Full
                                             1000baseT/Half 1000baseT/Full
                                             2500baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 2500Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: MII
        PHYAD: 32
        Transceiver: internal
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00007fff (32767)
                               drv probe link timer ifdown ifup rx_err tx_err tx                                                                                                                                   _queued intr tx_done rx_status pktdata hw wol
        Link detected: yes


I did this update with

Code:
 sudo apt -y install git gcc make automake

git clone https://github.com/wget/realtek-r8152-linux.git

cd r8152-2.17.1 && make -j2 && # sudo depmod -a && update-initramfs -u && make install
 
  • Like
Reactions: Kingneutron
even though i get duplex full now, I still only get 110MB/s lmao
As I imagined - the different drivers was not the issue.
yes but the host is using a driver that has half duplex and the vm is using a driver with full duplex
The VM is using a bridge (VMBR) which in fact uses the same connection your host is using on that NIC. The NIC/driver set for that VM - is merely a virtual one that is presented to the VM.
enx00e04c680180
That's a long name for a NIC. May I ask what is the physical HW? Are you possibly in a virtual nested environment.
Could you share the host output of cat /etc/network/interfaces & ip a ?

Anyway, what I would do is an iperf3 bidir test. I would further also test using an LXC on that host.
 
As I imagined - the different drivers was not the issue.

The VM is using a bridge (VMBR) which in fact uses the same connection your host is using on that NIC. The NIC/driver set for that VM - is merely a virtual one that is presented to the VM.

That's a long name for a NIC. May I ask what is the physical HW? Are you possibly in a virtual nested environment.
Could you share the host output of cat /etc/network/interfaces & ip a ?

Anyway, what I would do is an iperf3 bidir test. I would further also test using an LXC on that host.

- Could you share the host output of cat /etc/network/interfaces & ip a ?

Code:
auto lo
iface lo inet loopback

iface enp0s31f6 inet manual

iface enx00e04c680180 inet manual
        mtu 9000

auto vmbr0
iface vmbr0 inet static
        address 192.168.0.35/24
        gateway 192.168.0.1
        bridge-ports enp0s31f6
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address 192.168.0.34/24
        bridge-ports enx00e04c680180
        bridge-stp off
        bridge-fd 0
        mtu 9000

Code:
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: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000
    link/ether a8:a1:59:d9:d5:74 brd ff:ff:ff:ff:ff:ff
4: enx00e04c680180: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master vmbr1 state UP group default qlen 1000
    link/ether 00:e0:4c:68:01:80 brd ff:ff:ff:ff:ff:ff
5: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether a8:a1:59:d9:d5:74 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.35/24 scope global vmbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::aaa1:59ff:fed9:d574/64 scope link
       valid_lft forever preferred_lft forever
6: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default qlen 1000
    link/ether 00:e0:4c:68:01:80 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.34/24 scope global vmbr1
       valid_lft forever preferred_lft forever
    inet6 fe80::2e0:4cff:fe68:180/64 scope link
       valid_lft forever preferred_lft forever
7: tap100i0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master fwbr100i0 state UNKNOWN group default qlen 1000
    link/ether 86:e0:bc:ff:bf:38 brd ff:ff:ff:ff:ff:ff
8: fwbr100i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default qlen 1000
    link/ether 62:34:18:98:4e:41 brd ff:ff:ff:ff:ff:ff
9: fwpr100p0@fwln100i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue master vmbr1 state UP group default qlen 1000
    link/ether 4e:67:c4:2f:f6:b0 brd ff:ff:ff:ff:ff:ff
10: fwln100i0@fwpr100p0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue master fwbr100i0 state UP group default qlen 1000
    link/ether 62:34:18:98:4e:41 brd ff:ff:ff:ff:ff:ff

iperf3 results (to host with the problem)

Code:
-----------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.0.25, port 18596
[  5] local 192.168.0.34 port 5201 connected to 192.168.0.25 port 18597
[  8] local 192.168.0.34 port 5201 connected to 192.168.0.25 port 18598
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][RX-S]   0.00-1.00   sec   111 MBytes   934 Mbits/sec
[  8][TX-S]   0.00-1.00   sec  48.0 MBytes   403 Mbits/sec    4    523 KBytes
[  5][RX-S]   1.00-2.00   sec   113 MBytes   946 Mbits/sec
[  8][TX-S]   1.00-2.00   sec  51.5 MBytes   432 Mbits/sec    0    523 KBytes
[  5][RX-S]   2.00-3.00   sec   113 MBytes   946 Mbits/sec
[  8][TX-S]   2.00-3.00   sec  49.2 MBytes   413 Mbits/sec    0    523 KBytes
[  5][RX-S]   3.00-4.00   sec   113 MBytes   947 Mbits/sec
[  8][TX-S]   3.00-4.00   sec  44.4 MBytes   372 Mbits/sec    0    523 KBytes
[  5][RX-S]   4.00-5.00   sec   113 MBytes   945 Mbits/sec
[  8][TX-S]   4.00-5.00   sec  51.3 MBytes   430 Mbits/sec    0    523 KBytes
[  5][RX-S]   5.00-6.00   sec   113 MBytes   946 Mbits/sec
[  8][TX-S]   5.00-6.00   sec  48.3 MBytes   405 Mbits/sec    0    523 KBytes
[  5][RX-S]   6.00-7.00   sec   113 MBytes   947 Mbits/sec
[  8][TX-S]   6.00-7.00   sec  44.3 MBytes   371 Mbits/sec    0    523 KBytes
[  5][RX-S]   7.00-8.00   sec   113 MBytes   945 Mbits/sec
[  8][TX-S]   7.00-8.00   sec  51.9 MBytes   436 Mbits/sec    0    523 KBytes
[  5][RX-S]   8.00-9.00   sec   113 MBytes   945 Mbits/sec
[  8][TX-S]   8.00-9.00   sec  49.3 MBytes   413 Mbits/sec    0    523 KBytes
[  5][RX-S]   9.00-10.00  sec   113 MBytes   947 Mbits/sec
[  8][TX-S]   9.00-10.00  sec  45.4 MBytes   381 Mbits/sec    0    523 KBytes
[  5][RX-S]  10.00-10.01  sec   924 KBytes   948 Mbits/sec
[  8][TX-S]  10.00-10.01  sec  0.00 Bytes  0.00 bits/sec    0    523 KBytes  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][RX-S]   0.00-10.01  sec  1.10 GBytes   945 Mbits/sec                  receiver
[  8][TX-S]   0.00-10.01  sec   483 MBytes   405 Mbits/sec    4             sender
-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------

iperf3 results to VM with that same nic as the host (vmbr1)

Code:
PS C:\Users\Charlie\Downloads\iperf-3.17.1-win64> .\iperf3.exe -c 192.168.0.70 --bidir
Connecting to host 192.168.0.70, port 5201
[  5] local 192.168.0.25 port 27767 connected to 192.168.0.70 port 5201
[  7] local 192.168.0.25 port 27768 connected to 192.168.0.70 port 5201
[ ID][Role] Interval           Transfer     Bitrate
[  5][TX-C]   0.00-1.00   sec   226 MBytes  1.89 Gbits/sec
[  7][RX-C]   0.00-1.00   sec  15.9 MBytes   133 Mbits/sec
[  5][TX-C]   1.00-2.01   sec   226 MBytes  1.87 Gbits/sec
[  7][RX-C]   1.00-2.01   sec  15.1 MBytes   126 Mbits/sec
[  5][TX-C]   2.01-3.00   sec   222 MBytes  1.88 Gbits/sec
[  7][RX-C]   2.01-3.00   sec  15.1 MBytes   128 Mbits/sec
[  5][TX-C]   3.00-4.01   sec   225 MBytes  1.88 Gbits/sec
[  7][RX-C]   3.00-4.01   sec  13.5 MBytes   113 Mbits/sec
[  5][TX-C]   4.01-5.00   sec   223 MBytes  1.88 Gbits/sec
[  7][RX-C]   4.01-5.00   sec  14.9 MBytes   125 Mbits/sec
[  5][TX-C]   5.00-6.00   sec   222 MBytes  1.87 Gbits/sec
[  7][RX-C]   5.00-6.00   sec  14.0 MBytes   118 Mbits/sec
[  5][TX-C]   6.00-7.01   sec   226 MBytes  1.88 Gbits/sec
[  7][RX-C]   6.00-7.01   sec  14.4 MBytes   119 Mbits/sec
[  5][TX-C]   7.01-8.00   sec   221 MBytes  1.88 Gbits/sec
[  7][RX-C]   7.01-8.00   sec  13.9 MBytes   118 Mbits/sec
[  5][TX-C]   8.00-9.01   sec   226 MBytes  1.87 Gbits/sec
[  7][RX-C]   8.00-9.01   sec  13.4 MBytes   111 Mbits/sec
[  5][TX-C]   9.01-10.01  sec   222 MBytes  1.87 Gbits/sec
[  7][RX-C]   9.01-10.01  sec  14.9 MBytes   125 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate
[  5][TX-C]   0.00-10.01  sec  2.19 GBytes  1.88 Gbits/sec                  sender
[  5][TX-C]   0.00-10.01  sec  2.18 GBytes  1.87 Gbits/sec                  receiver
[  7][RX-C]   0.00-10.01  sec   146 MBytes   122 Mbits/sec                  sender
[  7][RX-C]   0.00-10.01  sec   145 MBytes   121 Mbits/sec                  receiver

iperf Done.
 
Last edited:
So you're using a USB adapter. I'd be happy with what you get. Obviously all transfers will also be limited to the USB throughput & general bus usage.

I see you've changed the MTU to 9000. Have you tried with the default 1500? This may explain the difference between host & VM.

Your switch/router is also going to play along with your results.
 
So it's no samba problem !
It's related to your network card in hardware or software problem !
 
So you're using a USB adapter. I'd be happy with what you get. Obviously all transfers will also be limited to the USB throughput & general bus usage.

I see you've changed the MTU to 9000. Have you tried with the default 1500? This may explain the difference between host & VM.

Your switch/router is also going to play along with your results.
but why its different between host and vm on the same nic?
 
fixed it by updating /etc/network/interfaces, and making the 2.5gbe adapter primary with a default gateway

I worked this out by unplugging the 1gbe cable and noticed the 2.5gbe address no longer worked

working code:

Code:
auto lo
iface lo inet loopback

iface enx00e04c680180 inet manual

iface enp0s31f6 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.0.35/24
        gateway 192.168.0.1
        bridge-ports enx00e04c680180
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address 192.168.0.34/24
        bridge-ports enp0s31f6
        bridge-stp off
        bridge-fd 0

source /etc/network/interfaces.d/*

broken code:

Code:
auto lo
iface lo inet loopback

iface enp0s31f6 inet manual

iface enx00e04c680180 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.0.35/24
        gateway 192.168.0.1
        bridge-ports enp0s31f6
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address 192.168.0.34/24
        bridge-ports enx00e04c680180
        bridge-stp off
        bridge-fd 0
 
Last edited:
Code:
auto lo
iface lo inet loopback

iface enx00e04c680180 inet manual

iface enp0s31f6 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.0.35/24
        gateway 192.168.0.1
        bridge-ports enx00e04c680180
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address 192.168.0.34/24
        bridge-ports enp0s31f6
        bridge-stp off
        bridge-fd 0

source /etc/network/interfaces.d/*
Having two IP's from the same subnet on two different bridges won't do what most people think it does. What will happen is that the kernel will feel free to reply to incoming request on whichever bridge it thinks appropriate. It will _not_ load-balance.

EDIT: There are circumstances where it makes sense, but not usually.
 
Last edited:

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!