Update:
I end up returned the Mikrotik CRS305 and bought NetGear MS510TX.
TLDR:
Q1: Seek diagnose suggestions. see my testing.
My guess is that when 10G NIC is sending packets to MikroTik switch, which is not aware of the receiving end is at 2.5G.
Thus it pumps data as fast as it can out of 10G's TX buffer and receiving 2.5G NIC RX buffer couldn't handle and drops them a lot. Thus Re-transmit is needed.
Q2.Will high Retr corrupts transmitted data (like from PC to SMB, SMB to PC)?
Setup
Router: EdgeRouter X
Switch 1 (10G): MikroTik CRS305-1G-4S+IN,
PC1 - Switch1: RJ45 - SFP+ adapter, CAT6 cable (all are quality cable and less than 25ft, I tried a few different cables, no change)
SFP+ RJ45 module that I have tried: 6COM, ipolex, GWFiber. They all claim to support 2.5G
Use three different brand of module, doesn't seems to have significant difference or solve my high Retr and slow speed
10G to Switch1: New 10G Tek DAC cable, New GWFiber 10G DAC cable. No change in terms of speed.
PC2: I borrowed a buddy's i5-7500 and B150M motherboard. Mellanox MCX-311A 10G NIC is plugged in slot 1 x16. Default driver in Linux Mint 20. (10G NIC was used in UNRAID, but I took it out and use PC2 to isolate problem.)
PC1: (ASUS B550 Intel I225V 2.5G, Rev.3, FW 1.57), TX/RX buffer = 1024, flow control enabled.
There are quite a bit report on Rev1 and 2 of I225, dropping packets. Mine is Rev3, which is "supposed" to be free of previous issue.
Driver for Windows 10 is the latest - 1.0.1.4.
Server2: Open Media Vault RTL8125 2.5G NIC, Linux 5.10.0-0.bpo.5-amd64, uses RTL8169 driver that was built in.
Use putty to SSH and test iperf.
Adapter settings: see detail at the end
I also tried to compile latest Realtek RTL8125 driver and the performance is even worse, at 110MB/s when receiving data from 10G NIC
All default, MTU 1500.
iperf3
I end up returned the Mikrotik CRS305 and bought NetGear MS510TX.
TLDR:
- It looks like Mikrotik still have pause frame/flow control issue with 2.5/5G, with common RJ45-SFP+ modules (6COM, ipolex, etc..)
- The only known RJ45-SFP+ module that works at 2.5G/5G is Supermicro AOM-AQS-107-B0C2-CX (Aquantia AQS-107-CX-1)
- IMO, take caution with QNAP M308/408/2108 switches, buy at place that you can return. There seems to be reports on its firmware quirks and QA issue. In general, a SOHO product, not a solid build.
Q1: Seek diagnose suggestions. see my testing.
My guess is that when 10G NIC is sending packets to MikroTik switch, which is not aware of the receiving end is at 2.5G.
Thus it pumps data as fast as it can out of 10G's TX buffer and receiving 2.5G NIC RX buffer couldn't handle and drops them a lot. Thus Re-transmit is needed.
Q2.Will high Retr corrupts transmitted data (like from PC to SMB, SMB to PC)?
Setup
Router: EdgeRouter X
Switch 1 (10G): MikroTik CRS305-1G-4S+IN,
PC1 - Switch1: RJ45 - SFP+ adapter, CAT6 cable (all are quality cable and less than 25ft, I tried a few different cables, no change)
SFP+ RJ45 module that I have tried: 6COM, ipolex, GWFiber. They all claim to support 2.5G
Use three different brand of module, doesn't seems to have significant difference or solve my high Retr and slow speed
10G to Switch1: New 10G Tek DAC cable, New GWFiber 10G DAC cable. No change in terms of speed.
PC2: I borrowed a buddy's i5-7500 and B150M motherboard. Mellanox MCX-311A 10G NIC is plugged in slot 1 x16. Default driver in Linux Mint 20. (10G NIC was used in UNRAID, but I took it out and use PC2 to isolate problem.)
PC1: (ASUS B550 Intel I225V 2.5G, Rev.3, FW 1.57), TX/RX buffer = 1024, flow control enabled.
There are quite a bit report on Rev1 and 2 of I225, dropping packets. Mine is Rev3, which is "supposed" to be free of previous issue.
Driver for Windows 10 is the latest - 1.0.1.4.
Server2: Open Media Vault RTL8125 2.5G NIC, Linux 5.10.0-0.bpo.5-amd64, uses RTL8169 driver that was built in.
Use putty to SSH and test iperf.
Adapter settings: see detail at the end
I also tried to compile latest Realtek RTL8125 driver and the performance is even worse, at 110MB/s when receiving data from 10G NIC
All default, MTU 1500.
iperf3
- host Server2 (RTL8125) to client PC1 (Intel I225V)
- 283 MBytes/sec, no Retr displayed in output
- host Server2 (RTL8125) to client PC2 (10G NIC)
- 259 MBytes/sec, total Retr = ~60000
- host PC1 (I225V) to client PC2 (10G NIC)
- 160 MBytes/sec (interesting...), total Retr = ~30000
- host PC1 (I225V) to client Server2 (RTL8125)
- 221 MBytes/sec, total Retr = 28
- host PC2 (10G NIC) to client PC1 (I225V)
- 283 MBytes/sec, no Retr displayed in output
- host PC2 (10G NIC) to client Server2 (RTL8125)
- 229 MBytes/sec, Retr = 0
Code:
####### Server2 2.5G RTL8125
Settings for enp5s0:
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: 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
1000baseT/Half 1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/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
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Link detected: yes
####### PC2 10G NIC
ethtool enp1s0
Settings for enp1s0:
Supported ports: [ FIBRE ]
Supported link modes: 1000baseKX/Full
10000baseKR/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 1000baseKX/Full
10000baseKR/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: Direct Attach Copper
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000014 (20)
link ifdown
Link detected: yes
Last edited: