Speed Limitation Issues with RB3011.

Description:
Hello everyone,
I am facing a persistent problem with a MikroTik RB3011 router and I am seeking help from the community to resolve it. Below, I describe the situation and the diagnostic steps I have already taken.

Basic Configuration:

Model: MikroTik RB3011
Initial RouterOS Version: 6.49.13
Current RouterOS Version: 7.15.2 (tried reverting to 6.49.13)
Routerboard Firmware: Updated to the version corresponding to RouterOS 7.15.2


Situation:

Initial Configuration: The router was initially configured with:
Ether1: Receiving IP via DHCP from the provider.
Ether2: Serving DHCP to the LAN.
NAT: Masquerade configured.

Internet Links: At the client’s site, I have two internet links, each with 1 Gb of speed. I intend to work with both links using failover and load balancing after resolving this limitation.

Speed Problem: The internet connection/bandwidth has a speed close to the contracted one when performing a speed test on fast.com, but it limits the transfer rate when downloading a file through the MikroTik. When I connect the provider’s cable directly to my computer, the transfer rate is satisfactory, indicating that the problem is with the router.

Comparison: Using the same provider cable directly to the computer, the speed and transfer rate are satisfactory, indicating that the problem is with the router.

Details of Speed Tests:

Speed Test via Browser: Using the browser for speed tests (fast.com), the total contracted speed is achieved. This test communicates directly with the provider’s server.

File Transfer Rate: When downloading a Windows 11 ISO directly from Microsoft, the transfer rate is acceptable and close to the contracted one when the cable is directly connected to the computer. However, through the MikroTik, the transfer rate is reduced by approximately 50%.

Tests Conducted:

Speed and Duplex Settings: Tested different settings (auto-negotiation, manual), without success.

FastTrack: FastTrack rules configured.

CPU Usage: Checked CPU usage and noticed that during downloads, only one core is used, but CPU usage does not seem excessive.

NAT and Firewall: The configuration is basic, with only the masquerade rule for NAT, without additional firewall rules.

Firmware and Routerboard: Updated and downgraded the Routerboard firmware, but the problem persists. Noted that the CPU version is ARM v7 and unsure if this changed with the update to RouterOS 7.15.2.

RouterOS Versions: Tried reverting to version 6.49.13, but the problem continues.

Cabling and Connections: Tested different cables and internet sources, even in different locations, and the problem persists.

Logs: Checked the logs, but found no relevant error or warning messages.

Torch: Used the Torch tool and observed that many packets are dropped during downloads, coinciding with the reduction in transfer rate.

Other Observations:

Disabling Services: Disabled unused services, but this did not resolve the issue.

Using Other Routers: Have not yet tested with a different MikroTik model or another brand.

Backup: No old backups, as the equipment was new and I evaluated that there was no need to save them before configuring.

Questions and Next Steps:

CPU Firmware: I would like to confirm if the RouterOS update could have changed the CPU version to ARM v7 and if this could be related to the problem.

Advanced Settings: Need guidance on possible advanced settings or adjustments I haven’t tried yet.

Suitability of RB3011: Is the RB3011 suitable for working with two 1 Gb links using failover and load balancing without experiencing this transfer rate limitation?Technical Support: Any additional suggestions from the community or need for direct contact with MikroTik technical support.

Thank you in advance for any help or guidance you can offer.

Hi,

It seems unlikely to be good for a 1G connection,
Apparently a single connection will only use 1 core. (To reduce out of order packets)

From:
https://mikrotik.com/product/RB3011UiAS-RM#fndtn-testresults

The commonly used 25 IP filter rules, and 512 byte packets lists 452Mbps.

Your actual performance can vary from this a lot, but you are potentially asking for up to 2Gbps
(when load balancing 2*1G links)

A RB5009 looks like a better match.

It is perhaps worthwhile trialing a Queue on the Lan interface (the one your PC is connected too)
to see if you can improve the performance of the RB3011, and by how much.

Note: putting incoming queue on interface is not ideal, but it does mean you can run it with fasttrack.
(It is good for outbound traffic to the WAN)

Putting queues on Global are better, and required for load balancing (would have 2 inbound queues)
but will need packet marking, and fasttrack bypassed for external traffic.

(You may need to do this with the RB5009, but it should have plenty of grunt to do it)

In Winbox:

Initially I would just change the interface queue to be a multi-queue-ethernet-default queue.
(From the interface Queues tab of the Queue List)
And see if you gain anything with that.

Then have a trial with a cake queue.

First You will need to create a new Queue Type (Under Queue Types Tab),

  • Use a near default cake queue, perhaps with NAT enabled (if using NAT)

Then under Queue Tree, create a new Queue with Parent of the ethernet port you are plugged into.

  • Set Queue Type, to the new queue type you created previously.
  • Set bucket size to 0.01 (smaller would be better at 1G, but makes cpu work harder, and Queues are fairly CPU thirsty already)
  • Set Max Limit to around 1G, likely need to reduce this during testing.
  • On Packet Marks set to no-mark

See how it goes.
Likely need to have resources tab open, to see what is happening while downloading.

I had a try with some of this, just to a local iperf3 server.
So very little latency unlike over the internet.

I found I had to disable the queue tree for best performance.
To hit near a gig download I had to have a large window size, or multiple streams.
Perhaps partly a limitation of the iperf3 server.
all tests were using tcp.

Hitting a gig over the internet likely would be more difficult due to higher latency.

In all cases one CPU on the 3011 was doing most of the work.

I did find one of the better queues was the synchronous-default (red) queue.
Though perhaps more useful for tcp.

In the past I have definitely found a queue on the downstream traffic has helped stabilize the internet.
(better speedtest results, and general use)

However the internet was quite a bit slower and the Router (hap AC2) was able to handle the available internet speed with some margin to spare.

I tried it running with 6.49.13, and that was much improved.

Unfortunately doesn’t have the cake queues, but the other queues I tried
seemed to handle 1G ok.
CPU still seemed to be largely locked to 1 core, and still needed multiple streams
or large window to get to 1G ish.

I realize this is an old thread, but I solved slow NAT performance on my RB3011 by removing the CPU heatsink's thermal pad and spacer. I applied thermal paste directly to the CPU.

I was getting bursts up to 800Mbs after a cold boot, but after running the speed test a few times the speed would stabilize around 350Mbs.

After removing the thermal pad and applying new thermal compound directly, I get sustained download speeds of ~900Mbs!

I have had a 3011 as my home gateway for years, uplink is 1Gb/s native, dual stack, IPv4/v6. (no ppp).
It does NAT and firewall (~75 rules combined). No queues. Several bridges and vlans, but negliglble traffic between vlans. MTU is globally 1500. BGP+OSPF, but just an handful of routes. DHCP. Has some wireguard vpns, but they rarely have traffic. Traffic is basically between two ports (upstream + downstream there's a switch). I have a second uplink but is 100Mb/s LTE and passive.

I get ~930Mb/s single download/upload with ~60% cpu. I can -almost- get bidirectional in the neighborhood of 800Mb/s each. I am on the latest stable 7.19 but have not noticed differences in quite some time.

Only thing worth of remark. Sometimes, for some reason, it boots in a weird state where it would max the cpu (one core) at around 250Mb/s. Goes back to normal after a second reboot.