I'm using Ubuntu 22.04.4 LTS with an RTL8125 on the motherboard and a Windows 10 workstation with a SD-PEX24066 NIC using the same RTL8125 chipset, the switch is a QNAP QSW-1105-5T. I've set the MTU to 9000 via netplan and the config sets 9000 on boot. I'm not getting the speeds I was expecting and Ubuntu is reporting conflicting info.
Here is the bidirectional iperf (similar speeds regardless of who is server/client):
Ubuntu:
~# iperf3 -c 192.168.1.175 -bidirConnecting to host 192.168.1.175, port 5201[ 5] local 192.168.1.174 port 57786 connected to 192.168.1.175 port 5201[ ID] Interval Transfer Bitrate Retr Cwnd[ 5] 0.00-1.00 sec 195 MBytes 1.64 Gbits/sec 0 158 KBytes[ 5] 1.00-2.00 sec 198 MBytes 1.66 Gbits/sec 0 158 KBytes[ 5] 2.00-3.00 sec 179 MBytes 1.50 Gbits/sec 0 158 KBytes[ 5] 3.00-4.00 sec 165 MBytes 1.38 Gbits/sec 0 158 KBytes[ 5] 4.00-5.00 sec 165 MBytes 1.38 Gbits/sec 0 158 KBytes[ 5] 5.00-6.00 sec 165 MBytes 1.39 Gbits/sec 0 158 KBytes[ 5] 6.00-7.00 sec 165 MBytes 1.38 Gbits/sec 0 158 KBytes[ 5] 7.00-8.00 sec 165 MBytes 1.38 Gbits/sec 0 158 KBytes[ 5] 8.00-9.00 sec 165 MBytes 1.38 Gbits/sec 0 158 KBytes[ 5] 9.00-10.00 sec 165 MBytes 1.38 Gbits/sec 0 158 KBytes- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate Retr[ 5] 0.00-10.00 sec 1.69 GBytes 1.45 Gbits/sec 0 sender[ 5] 0.00-10.00 sec 1.69 GBytes 1.45 Gbits/sec receiver
Windows:
Accepted connection from 192.168.1.174, port 57776[ 5] local 192.168.1.175 port 5201 connected to 192.168.1.174 port 57786[ ID] Interval Transfer Bandwidth[ 5] 0.00-1.00 sec 188 MBytes 1.57 Gbits/sec[ 5] 1.00-2.00 sec 198 MBytes 1.66 Gbits/sec[ 5] 2.00-3.00 sec 179 MBytes 1.51 Gbits/sec[ 5] 3.00-4.00 sec 165 MBytes 1.39 Gbits/sec[ 5] 4.00-5.00 sec 165 MBytes 1.39 Gbits/sec[ 5] 5.00-6.00 sec 165 MBytes 1.39 Gbits/sec[ 5] 6.00-7.00 sec 165 MBytes 1.38 Gbits/sec[ 5] 7.00-8.00 sec 165 MBytes 1.39 Gbits/sec[ 5] 8.00-9.00 sec 165 MBytes 1.39 Gbits/sec[ 5] 9.00-10.00 sec 165 MBytes 1.38 Gbits/sec[ 5] 10.00-10.04 sec 5.74 MBytes 1.38 Gbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bandwidth[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender[ 5] 0.00-10.04 sec 1.69 GBytes 1.44 Gbits/sec receiver
Ubuntu NIC showing conflicting info for rated speeds, not sure what to trust:
~# ip link show1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: enp42s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 2c:f0:5d:7c:91:20 brd ff:ff:ff:ff:ff:ff~# inxi -nNetwork: Device-1: Realtek RTL8125 2.5GbE driver: r8169 IF: enp42s0 state: up speed: 2500 Mbps duplex: full mac: 2c:f0:5d:7c:91:20~# lshw -class network *-network description: Ethernet interface product: RTL8125 2.5GbE Controller vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:2a:00.0 logical name: enp42s0 version: 04 serial: 2c:f0:5d:7c:91:20 capacity: 1Gbit/s width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-97-generic duplex=full firmware=rtl8125b-2_0.0.2 07/13/20 ip=192.168.1.174 latency=0 link=yes multicast=yes port=twisted pair resources: irq:35 ioport:f000(size=256) memory:fc500000-fc50ffff memory:fc510000-fc513fff~# mii-tool -v enp42s0enp42s0: negotiated 1000baseT-FD flow-control, link ok product info: vendor 00:e0:4c or 00:07:32, model 4 rev 0 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control~# ethtool enp42s0Settings for enp42s0: Supported ports: [ TP MII ] 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/Half 1000baseT/Full 2500baseT/Full Link partner advertised pause frame use: Symmetric Receive-only Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 2500Mb/s Duplex: Full Auto-negotiation: on master-slave cfg: preferred slave master-slave status: slave Port: Twisted Pair PHYAD: 0 Transceiver: external MDI-X: Unknown Supports Wake-on: pumbg Wake-on: d Link detected: yes
Windows workstation has stuff like jumbo frame, 2.5G full duplex, large send offload enabled, and receive/transmit buffer is 512. It shows MTU of 9198:
>netsh interface ipv4 show subinterface MTU MediaSenseState Bytes In Bytes Out Interface------ --------------- --------- --------- ------------- 9198 1 nnn nnn Ethernet
Does anyone have an idea as to why the Ubuntu server is showing conflicting info and what I am missing to reach full speeds?