HTTP speed limit if going through Mikrotik

I have a homelab setup with 2.5G link back to an X86 ROS 7.16 act as my primary router.
Another laptop connected to the router over a dumb switch with 2.5Gig link.
If I try to iperf3 from my laptop to any Server in the lab I can get full 2.5Gig But if Download from the Http server within the lab I get limited to 1 Gbps.
Http File server is Apache tested with speed ~540MB/s
Laptop is Nvme SSD and should capable of atleast more than 100MB/s

Is your router routing connection between laptop and web server? Is your router running firewall? If you run profile on router (with cpu=all), does any of CPU cores get loaded above 70% (and which processes are pegging CPU)?

I do have some firewall & mangle rule but the CPU is consistently at 25% on 1 core.

The problem persist even when I put the laptop in the same VLAN. So i think i should be doing switching right ?

So your main router is a CHR? Which license level is installed, P1? https://help.mikrotik.com/docs/display/ROS/Cloud+Hosted+Router%2C+CHR

My main router is a bare metal x86 ROS 7.16 with Level 6 License

And this behavior is only happening for internal traffic between interfaces within a bridge.

For example, my speedtest from the same laptop can still exceed ~2Gbps.

If I try to download from the webserver using the router itself it’s also not being weirdly restricted.

Hi Everyone, Can someone provide support for this case please ? I’m still having this issues.

May this be related to some tcp offloading on a laptop working improperly and network card can’t handle buffers? When you did iperf test, you probably did udp. What if you try tcp instead and see what happens? Try to check laptop network adapter’s settings, increase buffers, update driver and so on.

I was running iperf with pretty much default flag so it should be TCP though.
If I just replace the current router with a 2.5G switch and keeping everything else the same(NIC, Cables, Drivers, etc) then the download will get around 170 180MB/s so I think this might be the router problem

170 MB/s is slightly above 1.3Gbit/s which is only half of 2.5Gbit and slightly above of what you experience during HTTP download (1Gbit/s) with direct connection. At this point I doubt this is router problem

Hi, thank you all for your time and support. I’ve fixed the issues and I will provide the information which I’ve gather around on reddit.
My setup:
Servers <=====10G DAC====> TPLink TL-SX3016F <====10G====> Random 10G 30m SFP+ RJ45 <=====2.5G =====> Router ROS 7.16.1 <====10G====> Random 10G 30m SFP+ RJ45 <=====2.5G =====> Personal Switch + Laptop
Server’s NIC: X520-DA2
Laptop’s Nic: RTL8156B
There are 2 problems:

  1. RTL8156B Driver + configuration: Grab one on Realtek side. Adjust the Advance configuration a little bit:
    Receive Buffer: 64
    Receive URBs: 32
    Transmit Buffer: 64
    Transmit URBs: 32
    After I’ve finshed this one, I’ve got the upload to get 2.3gbps but download is still kinda sluggish at 1.3Gbps
  2. Flow control on mikrotik:
  • I have to enabled RX flow control for the port that connecting between Router & TPLink Switch.
  • On the TPLink Switch I also have to enable flow control for the same link.
    After I’ve finished these 2 the download now also get peak ~260MB/s on the download.