Slow-ish upload speeds on CCR2004-16G-2S+

Hi,

My ISP offers me 4 gigabit fiber (symmetric). This comes into the house into a box that turns it into a RJ45 port.
This is connected to one of the SFP+ ports on the router through a transceiver. Then there’s another SFP+ port on the router that goes to my main switch.

When I try to do a speedtest from a client, I get about 3900 mbit/s download, but only 500 mbit/s upload, which is supposed to be a lot more.

I have a PPPoE client set up as my ISP requires this.
Not sure what other information I need to provide, please let me know what and I will be happy to provide it.

Update with extra information:
The SFP+ modules used: MikroTik S+RJ10 SFP+10G Copper Ethernet Transceiver
RouterOS version: v7.15.3

What upload are you supposed to have?
Symmetric?

Also, you can check the CPU usage of the router using the Profile option under Tools in Winbox or Console

Yes it’s supposed to be symmetric.
I did a speedtest and watched the CPU usage. During the download test the highest I see is 26.4, during upload the highest I see is 3.5.

What kind of SFP Module are you running?
An ISP Provided one?

Which RouterOS Version are you running?

Sadly, I don’t have much experience with FTTH with Mikrotik hardware.

The SFP+ module is a MikroTik S+RJ10 SFP+10G Copper Ethernet Transceiver if I recall correctly (it’s the same module on all ends).

Running RouterOS v7.15.3

All ends you mean from the CCR2004 to the ONT?

Also, do you have R1 or R2 of the Modules?
If you got R2, what’s the temperature of the module?

EDIT: Both R1 and R2 run quite hot with 2.7W (2.4W according to Brochure).
R2 just has additional Temperature and Voltage Monitoring on the Module

As I was preparing to reply to you my link on the LAN side started to go up and down constantly.
There’s a patch cable that goes from my router to a TP-link switch. The transceiver on the TP-link switch was so hot I could barely touch it to get it out. I think that side may be overheating and another issue I need to troubleshoot first.

They are R2 modules from what I can see.

According to the wiki, they got an operating temperature of 0 to 70°C (https://wiki.mikrotik.com/wiki/S%2BRJ10_general_guidance)

But with passively cooled devices, you can top that easily.

enable fasttrack

I have now solved the temperature issue (purchased a LC cable with the correct transceivers).

How would I go about trying to enable fasttrack and see if that works?

It’s a firewall filter rule … like this one:

/ip/firewall/filter
add chain=forward action=fasttrack-connection connection-state=established,related comment="defconf: fasttrack"

Since firewall filters are processed top-to-bottom, this rule has to be above similar rule with action=accept to be effective.

Sadly fast-track for IPv6 doesn’t exist.

Mind that fasttrack rule helps when throughput is limited due to CPU being used to the limit. If your router uses low CPU (e.g. less than 50% average with none of cores peaking to 100%) for moving traffic, then fasttrack won’t improve speeds as the bottleneck is elsewhere (e.g. your initial bottleneck was overheated SFP+ module).

In your particular case you may be near (or at) the limit due to PPPoE requirement. ROS handles PPPoE encapsulation/decapsulation on single core … could be that both directions with same core and in this case full-duplex speed might suffer (as compared to speed when only one direction is heavily used). Fast-track has nothing to do with this issue as fast-track is (mostly) L3 feature

It seems like a fasttrack rule is already in place (the default one, I just noticed it in the firewall rule list) and the packets/bytes counters do go up when running a speedtest.
It’s odd as the download speed results to ~3700 mbit/s, and the upload is ~678 mbit/s which is a significant difference. I was just wondering whether there was anything I could do about it.

I did watch the CPU usuage when doing a speedtest and it’s not like it is hitting 100% on the upload part of the test, it’s around 20 during download and doesn’t even hit 10 during the upload.

If observing CPU usage under system resources … that one is average and single-core tasks won’t trigger it to go very high (depending on number of CPU cored in your device). It’s better to run CPU profiler to see, if one of CPU cores gets pegged and which process causes it.

Also got 2004 at work and had to use fastrack or it couldn’t do more then 1000ish mbit on pppoe .

So make sure your fastrack rule is properly set.

I’ve added a fasttrack rule using this:

/ip/firewall/filter
add chain=forward action=fasttrack-connection connection-state=established,related comment="defconf: fasttrack"

The results are that without it, the download speed is about 2400 mbit/s. WIth this rule in place, the download speed is 4000 mbit/s.
The upload speed however, is mostly unchanged at around 600 mbit/s, which makes no sense to me.

I also don’t see any high CPU usage, this is a screenshot while doing the upload part of a speedtest (I assume this is what you meant with profiler?):

Yup. But select “CPU: all” to see if one single core gets maxed out (CPU: total gives averages, which are useless in this case).