How to change CPU frequency in CCR2004-16G-2S+PC?

I just purchased CCR2004-PC as replacement to my previous CCR1009-PC device. In CCR1009-PC and CCR1009-RM there was 200 mhz difference between rackmount and desktop version (1000 vs 1200 mhz). With CCR2004 there’s 300 mhz difference. In CCR1009-PC I could change CPU frequency back to 1200 mhz using

/system health set cpu-frequency=1200mhz

How can I achieve similar result with CCR2004?

You cannot. The PC version is locked at 1200 MHz.

So it’s device that realistically achieves lower performance than CCR1009-PC at 1200 mhz which it’s supposed to replace?
Screenshot_20240709_141158.png
Screenshot_20240709_141231.png
And as a bonus we get no LCD screen, no beeper, no usb, no sd card slot and no smart card reader?
cool. Awesome even.

As always one should do his/her homework before purchasing. All the details are provided upfront by Mikrotik. The non-+PC CCR2004 has a 1700 MHz CPU. The +PC CPU had to be dialed back a little due to being passively cooled.

All that said, when you disider the CCR2004 is a 4 core device instead of 9, it performs quite nicely. My recollection is that the CCR2004 excels at single core performance. Also, TILE is dead so that’s a sinking platform anyway. Mikrotik has discontinued all their TILE devices. Can’t speak to all the other features you mention. I personally have no use for any of them. Again though, this is all documented up front so it’s not like Mikrotik deceived you.

always is important to check datasheet, specs etc, preferably,
before purchase
you will avoid a lot of regrets

comparison of both passive devices performance looks very simmilar, not an upgrade in some scenarios but enough if you need a replacement
passive-ccr-comparison.jpg

Yeah but spec sheet does not provide information whether device can be overclocked or not. All older MikroTiks did allow rising CPU clocks. It’s not specified in spec sheet that CCR1009 passive is able to run at 1200 mhz as well yet it can. And then it has higher performance than CCR2004 passive (due to its inability to match rackmount clocks). Basing on my past experience I had no reason to assume it’s not possible to adjust clock speed of CCR2004 to like 1400 at least.

My story is that I thought my CCR1009-PC died and ordered replacement CCR2004-PC unit. After few days of troubleshooting I managed to bring that CCR1009 back to life but CCR2004 already arrived. I decided that well… since I already have more recent device I may just as well just migrate to it. It will probably last longer…

But it turns out that CCR2004 is actually inferior device comparing to CCR1009-PC (considering that I’m running it at 1200 mhz) so it’s kinda ridiculous situation where it doesn’t make logical sense to migrate to new device… I hope I’ll be able to return that CCR2004…

So it’s your fault for expecting to be able to overclock a device. If you’re overclocking often, then you should know by now that some devices can be overclocked nicely but others can’t be overclocked at all … and without trying to do it (either yourself or by some other person which then shares experiences) you don’t know how it’ll go.

Mhz is not a measure of performance. The ARM64 in CCR2004 is far more powerful than the old TILEs.

You buy the PC version because you need either passive cooling or DC-input. If you need performance should choose the AC version.

The LCD display was just a waste of money and SD is not a serious storage medium.

Well I wouldn’t bring overclocking argument to the table at all if CCR2004-PC provided higher base performance out of the box than CCR1009-PC at 1200mhz in the first place. Basically my point is that with fairly basic config CCR1009-PC is faster (marginally but still) device than CCR2004-PC that is supposed to be its successor. So it’d be rational to expect it to be just plain faster. Period. It’s just not sane thing to assume that successor of device model will perform worse. It didn’t even come across my mind that such situation could exist in real world.

That said I checked pricing of CCR1009-7G-1C-1S+PC back in the day, corrected it by inflation and compared to CCR2004, coming to conclusion that in matter of fact CCR2004-PC is realistically almost 50% cheaper than CCR1009-PC was at the time (considering value of money) so… idk. I guess I can’t complain as much as I thought I can…


I know, I was comparing benchmark results not clock-to-clock. I was comparing CCR1009-RM benchmark results - which has 1200 mhz ootb because you can set CCR1009-PC to 1200mhz as well. That’s why I used that table for comparison to CCR2004-PC. So I basically compared best case CCR1009-PC to best case CCR2004-PC. And in such case CCR1009-PC is (at least according to benchmarks) faster device than CCR2004-PC.

But honestly I guess I’m in general just salty because I’m very disappointed with how… well, disappointing CCR2004-PC is as device. Even if you compare it to like RB5009UG+S+IN that is over 50% cheaper. CCR2004-PC is very anemic yet expensive device in lineup (the same price as RM variant that has significantly higher performance AND dual PSU). If I remember correctly CCR1009-PC was also priced the same as CCR1009-RM but then it made sense - since you could set the same clock so it could essentially achieve the same performance and it was kind of the same hardware. Now it’s not. It’s significantly inferior to RM variant for the same price. So there’s plenty of reasons to be upset ngl, no matter which way you look at it - it’s underwhelming.
Underwhelming for value comparing to RB5009/RB4011,
underwhelming comparing to its RM counterpart,
underwhelming comparing to its predecessor.


Well yes. Maybe indeed I just got a little bit misguided by claim of “Up to 300% faster than the previous CCR1009 routers” without adding “And up to 57% slower than the previous CCR1009 routers”

Hmm. Now when I think about it - not all features are documented upfront. This is block diagram of CRS317:
https://i.mt.lv/cdn/product_files/CRS317-1G-16S_220904.png

It does not mention that this device does in fact have beeper (that I use). I have 3 of those switches and all of them feature beepers that I use for signaling issues with connectivity. So it’s not always trivial to find out whether certain device has certain features.

Also like… CCR1009 is discontinued anyways and there’s nothing else comparable really (with any features that I’m missing). So atm really all I can do is complain, cry in the corner and be sad about current situation. If I would be very stubborn I could probably buy RM variant and swap boards but that sounds like quite extreme dedication…

The spec section tells you it does.
Screenshot_20240709-135459.png

oh… okay. It used to be put on block diagrams in the past. That’s why I looked there.

https://i.mt.lv/cdn/product_files/CCR1009-7G-1C-1SplusPC_200618.png

But fair point.

I personally really enjoy my CCR2004 +PC router. It works wonderfully for my needs. I’d be really curious to see the difference in performance between devices for you if any. CPU/RAM usage, throughput, et. Data driven debate is my favorite since data doesn’t lie and doesn’t care about feelings.

Also I noticed that the CCR2004 has significantly more ports including an additional SFP+, double the RAM, more modern and efficient processor type - we’re not really comparing oranges to oranges in this instance.

RB5009UG is a very different device, it’s half the ports.

We find the CCR2004-PC very useful and performant. No issues at all.

interesting topic on how to blame others about your bad purchase decisions :laughing:

There are a lot of them on this forum. Bad hardware, bad performance, bugs… And then it turns out is a misconfiguration, bad cable, or device that wasn’t appropriate for the specific needs.

You may not remember that but you specifically told me to NOT buy CCR2004-PC. I just found this thread which I completely forgot about XD

Thread can be found here:
http://forum.mikrotik.com/t/ccr2004-1g-12s-2xs-are-there-any-before-you-buy-caveats/163377/1
EDIT: srr, it was @sirbryan who told to NOT get passively cooled one xD

As a result I have CCR1009-PC, CCR2004-PC and CCR2004-12S+ and instead of those two CCR2004’s I could probably just get CCR2116 for price of those and get better results XD (of course I only need one router)
08323b2f-7db7-45f9-8b5d-4e0831c8e42f.png
I’m not entirely blaming for bad purchase as choice because there’s nothing else really that I could/would buy instead (since I kinda need this form factor anyways). I’m just salty that CCR2004-PC doesn’t have higher performance. (I don’t think I would buy RB5009UG which seems to be the only alternative because I’m using two optical uplinks)

Since it’d be cool if this thread ended with some… more productive conclusion than hurr durr CCR2004-PC sucks I’ll try to perform some benchmarks for my use case before I return CCR2004-PC and post results here. CCR1009-PC vs CCR2004-PC vs CCR2004-12S+ (which should perform more or less the same as CCR2004-RM for my use case).

I really look forward to seeing the test results based on your use case. Perhaps the CCR2004+PC performance will surprise you considering the differences that have been noted and discussed above. The fact that you’ve taken your lumps from some of us and want to improve the tone of this thread is admirable and refreshing. Learning, even if through error, is fun!

Okay so I’m back.

Yes it did. And in fact for my use case difference between 12S+ variant fall as low as 8% which while still makes me a little bit salty, is still considerable improvement from claimed 15% drop indicated by benchmarks on website. That was TL;DR version, now into details:

I don’t think I’ll give more than minimal attention to CCR1009 performance in this comparison because it got so obliterated by both CCR2004’s that I didn’t even really feel like testing it beyon initial run.

root@raid /h/lapsio [1]# iperf3 -c 192.168.8.81 -p 2000 -P 1 -t 300 -l 1M 
Connecting to host 192.168.8.81, port 2000
[  5] local 192.168.8.82 port 37920 connected to 192.168.8.81 port 2000
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   457 MBytes  3.83 Gbits/sec  818    489 KBytes       
[  5]   1.00-2.00   sec   441 MBytes  3.70 Gbits/sec  761   1014 KBytes       
[  5]   2.00-3.00   sec   460 MBytes  3.86 Gbits/sec  872    699 KBytes       
[  5]   3.00-4.00   sec   452 MBytes  3.80 Gbits/sec  987    926 KBytes       
[  5]   4.00-5.00   sec   451 MBytes  3.78 Gbits/sec  1101    909 KBytes       
[  5]   5.00-6.00   sec   457 MBytes  3.83 Gbits/sec  1459    760 KBytes       
[  5]   6.00-7.00   sec   457 MBytes  3.83 Gbits/sec  1366    865 KBytes       
[  5]   7.00-8.00   sec   431 MBytes  3.62 Gbits/sec  545   1.01 MBytes       
[  5]   8.00-9.00   sec   469 MBytes  3.93 Gbits/sec  853    760 KBytes       
[  5]   9.00-10.00  sec   429 MBytes  3.60 Gbits/sec  845    900 KBytes       
[  5]  10.00-11.00  sec   456 MBytes  3.82 Gbits/sec  1091    743 KBytes       
[  5]  11.00-12.00  sec   412 MBytes  3.46 Gbits/sec  654    690 KBytes       
[  5]  12.00-13.00  sec   474 MBytes  3.98 Gbits/sec  1206    594 KBytes       
[  5]  13.00-14.00  sec   474 MBytes  3.97 Gbits/sec  1382    839 KBytes       
[  5]  14.00-15.00  sec   453 MBytes  3.80 Gbits/sec  957    577 KBytes       
[  5]  15.00-16.00  sec   453 MBytes  3.80 Gbits/sec  989    979 KBytes       
^C[  5]  16.00-16.60  sec   292 MBytes  4.08 Gbits/sec  882    865 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-16.60  sec  7.34 GBytes  3.80 Gbits/sec  16768             sender
[  5]   0.00-16.60  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf3: interrupt - the client has terminated

Those are results well known to me, result that I have seen long before and results that were far from satisfying for me since my machines were always connected by 10G link. Yeah sure, CCR1009 was in fact able to hit 10G but it required using fastpath and that simply wasn’t an option in my setup. It’s 9000 jumbo result. With normal frames it barely exceeded 1G. It’s 100% single core use case and router was obviously hammered on single core to 100%. After that initial benchmark I copied core parts of config to CCR2004-12S+ and re-run the same tests with following result:

root@raid /h/lapsio [1]# iperf3 -c 192.168.8.81 -p 2000 -P 1 -t 300 -l 1M
Connecting to host 192.168.8.81, port 2000
[  5] local 192.168.8.82 port 47546 connected to 192.168.8.81 port 2000
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.11 GBytes  9.54 Gbits/sec   70   2.24 MBytes       
[  5]   1.00-2.00   sec  1.12 GBytes  9.61 Gbits/sec   10   2.53 MBytes       
[  5]   2.00-3.00   sec  1.11 GBytes  9.55 Gbits/sec   13   2.76 MBytes       
[  5]   3.00-4.00   sec  1.12 GBytes  9.60 Gbits/sec   10   2.06 MBytes       
[  5]   4.00-5.00   sec  1.13 GBytes  9.72 Gbits/sec    7   2.20 MBytes       
[  5]   5.00-6.00   sec  1.12 GBytes  9.61 Gbits/sec    2   2.48 MBytes       
[  5]   6.00-7.00   sec  1.13 GBytes  9.74 Gbits/sec    9   2.61 MBytes       
[  5]   7.00-8.00   sec  1.13 GBytes  9.71 Gbits/sec   11   2.73 MBytes       
[  5]   8.00-9.00   sec  1.12 GBytes  9.63 Gbits/sec    7   2.04 MBytes       
[  5]   9.00-10.00  sec  1.13 GBytes  9.70 Gbits/sec   14   2.19 MBytes       
[  5]  10.00-11.00  sec  1.12 GBytes  9.62 Gbits/sec    6   2.55 MBytes       
[  5]  11.00-12.00  sec  1.13 GBytes  9.68 Gbits/sec    5   2.76 MBytes       
[  5]  12.00-13.00  sec  1.12 GBytes  9.60 Gbits/sec   12   2.12 MBytes       
[  5]  13.00-14.00  sec  1.13 GBytes  9.70 Gbits/sec    6   2.28 MBytes       
[  5]  14.00-15.00  sec  1.12 GBytes  9.66 Gbits/sec    4   2.50 MBytes       
[  5]  15.00-16.00  sec  1.13 GBytes  9.69 Gbits/sec    6   2.69 MBytes       
[  5]  16.00-17.00  sec  1.12 GBytes  9.63 Gbits/sec    4   2.93 MBytes       
[  5]  17.00-18.00  sec  1.13 GBytes  9.70 Gbits/sec    9   2.24 MBytes       
[  5]  18.00-19.00  sec  1.11 GBytes  9.56 Gbits/sec   18   2.78 MBytes       
[  5]  19.00-20.00  sec  1.12 GBytes  9.58 Gbits/sec   89   2.76 MBytes       
[  5]  20.00-21.00  sec  1.13 GBytes  9.74 Gbits/sec   13   2.69 MBytes       
[  5]  21.00-22.00  sec  1.13 GBytes  9.69 Gbits/sec    6   2.85 MBytes       
[  5]  22.00-23.00  sec  1.14 GBytes  9.80 Gbits/sec    7   2.82 MBytes       
^C[  5]  23.00-23.63  sec   735 MBytes  9.80 Gbits/sec    3   2.74 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-23.63  sec  26.6 GBytes  9.67 Gbits/sec  341             sender
[  5]   0.00-23.63  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf3: interrupt - the client has terminated

Which was quite okay but felt like device is on the edge and indeed CPU usage looked like this:

[lapsio@CCR2004SWAG] /ip/firewall/nat> /system/resource/cpu/print 
Columns: CPU, LOAD, IRQ, DISK
#  CPU   LOAD  IRQ   DISK
0  cpu0  0%    0%    0%  
1  cpu1  0%    0%    0%  
2  cpu2  100%  100%  0%  
3  cpu3  0%    0%    0%

So being kinda worried that CCR2004-PC would fall below 10G if CCR2004-12S+ barely reaches it, I proceeded to test CCR2004-PC

root@raid /h/lapsio# iperf3 -c 192.168.8.81 -p 2000 -P 1 -t 300 -l 1M
Connecting to host 192.168.8.81, port 2000
[  5] local 192.168.8.82 port 54428 connected to 192.168.8.81 port 2000
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.14 GBytes  9.80 Gbits/sec   34   1.91 MBytes       
[  5]   1.00-2.00   sec  1.15 GBytes  9.86 Gbits/sec   21   1.67 MBytes       
[  5]   2.00-3.00   sec  1.15 GBytes  9.86 Gbits/sec   16   1.70 MBytes       
[  5]   3.00-4.00   sec  1.15 GBytes  9.86 Gbits/sec   20   1.55 MBytes       
[  5]   4.00-5.00   sec  1.15 GBytes  9.84 Gbits/sec   22   1.19 MBytes       
[  5]   5.00-6.00   sec  1.15 GBytes  9.85 Gbits/sec   16   1.25 MBytes       
[  5]   6.00-7.00   sec  1.15 GBytes  9.87 Gbits/sec   23    987 KBytes       
[  5]   7.00-8.00   sec  1.15 GBytes  9.86 Gbits/sec   17   1.18 MBytes       
[  5]   8.00-9.00   sec  1.15 GBytes  9.86 Gbits/sec   22   1.73 MBytes       
[  5]   9.00-10.00  sec  1.15 GBytes  9.86 Gbits/sec   33   1.80 MBytes       
[  5]  10.00-11.00  sec  1.15 GBytes  9.87 Gbits/sec   15   1.62 MBytes       
[  5]  11.00-12.00  sec  1.15 GBytes  9.86 Gbits/sec   23   1.85 MBytes       
[  5]  12.00-13.00  sec  1.15 GBytes  9.87 Gbits/sec   21   1.75 MBytes       
[  5]  13.00-14.00  sec  1.15 GBytes  9.86 Gbits/sec   21   1.37 MBytes       
[  5]  14.00-15.00  sec  1.15 GBytes  9.86 Gbits/sec   19   1.74 MBytes       
[  5]  15.00-16.00  sec  1.15 GBytes  9.87 Gbits/sec   18   1.71 MBytes       
[  5]  16.00-17.00  sec  1.15 GBytes  9.87 Gbits/sec   21   1.72 MBytes       
[  5]  17.00-18.00  sec  1.15 GBytes  9.87 Gbits/sec   17   1.20 MBytes       
[  5]  18.00-19.00  sec  1.15 GBytes  9.86 Gbits/sec   48   1.71 MBytes       
[  5]  19.00-20.00  sec  1.15 GBytes  9.88 Gbits/sec   28   1.20 MBytes       
[  5]  20.00-21.00  sec  1.15 GBytes  9.87 Gbits/sec   26   1.22 MBytes       
[  5]  21.00-22.00  sec  1.15 GBytes  9.87 Gbits/sec   20   1.17 MBytes       
^C[  5]  22.00-22.23  sec   267 MBytes  9.78 Gbits/sec    9   1.23 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-22.23  sec  25.5 GBytes  9.87 Gbits/sec  510             sender
[  5]   0.00-22.23  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf3: interrupt - the client has terminated

Fallout-boy-excuse-me-wyf-meme-3.jpg
And I don’t f*cking get it. CPU load was also 99-100% but transfers were much more stable and higher despite lower CPU clocks. But that could be just result of PIPE thingy on 12S+ so I decided to go lower with MTU, to 1500:

CCR2004-12S+

root@raid /h/lapsio [1]# iperf3 -c 192.168.8.81 -p 2000 -P 1 -t 300 -l 1M
Connecting to host 192.168.8.81, port 2000
[  5] local 192.168.8.82 port 36282 connected to 192.168.8.81 port 2000
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   242 MBytes  2.03 Gbits/sec  104    419 KBytes       
[  5]   1.00-2.00   sec   242 MBytes  2.03 Gbits/sec   24    399 KBytes       
[  5]   2.00-3.00   sec   241 MBytes  2.02 Gbits/sec   53    462 KBytes       
[  5]   3.00-4.00   sec   242 MBytes  2.03 Gbits/sec   95    468 KBytes       
[  5]   4.00-5.00   sec   242 MBytes  2.03 Gbits/sec   79    414 KBytes       
[  5]   5.00-6.00   sec   241 MBytes  2.02 Gbits/sec   49    447 KBytes       
[  5]   6.00-7.00   sec   242 MBytes  2.03 Gbits/sec   54    365 KBytes       
[  5]   7.00-8.00   sec   241 MBytes  2.02 Gbits/sec   14    441 KBytes       
[  5]   8.00-9.00   sec   240 MBytes  2.01 Gbits/sec   25    495 KBytes       
[  5]   9.00-10.00  sec   243 MBytes  2.04 Gbits/sec   63    486 KBytes       
[  5]  10.00-11.00  sec   241 MBytes  2.02 Gbits/sec   11    385 KBytes       
[  5]  11.00-12.00  sec   242 MBytes  2.03 Gbits/sec   82    320 KBytes       
[  5]  12.00-13.00  sec   242 MBytes  2.03 Gbits/sec   63    438 KBytes       
[  5]  13.00-14.00  sec   240 MBytes  2.01 Gbits/sec   35    431 KBytes       
[  5]  14.00-15.00  sec   242 MBytes  2.03 Gbits/sec    7    438 KBytes       
[  5]  15.00-16.00  sec   241 MBytes  2.02 Gbits/sec   33    421 KBytes       
[  5]  16.00-17.00  sec   240 MBytes  2.01 Gbits/sec   65    431 KBytes       
[  5]  17.00-18.00  sec   241 MBytes  2.02 Gbits/sec   75    321 KBytes       
[  5]  18.00-19.00  sec   241 MBytes  2.02 Gbits/sec   64    337 KBytes       
[  5]  19.00-20.00  sec   240 MBytes  2.01 Gbits/sec    9    436 KBytes       
[  5]  20.00-21.00  sec   244 MBytes  2.05 Gbits/sec   20    450 KBytes       
^C[  5]  21.00-21.46  sec   112 MBytes  2.04 Gbits/sec   24    338 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-21.46  sec  5.06 GBytes  2.03 Gbits/sec  1048             sender
[  5]   0.00-21.46  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf3: interrupt - the client has terminated

CCR2004-PC

root@raid /h/lapsio [1]# iperf3 -c 192.168.8.81 -p 2000 -P 1 -t 300 -l 1M
Connecting to host 192.168.8.81, port 2000
[  5] local 192.168.8.82 port 40322 connected to 192.168.8.81 port 2000
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   354 MBytes  2.97 Gbits/sec   47    440 KBytes       
[  5]   1.00-2.00   sec   348 MBytes  2.92 Gbits/sec   20    380 KBytes       
[  5]   2.00-3.00   sec   350 MBytes  2.94 Gbits/sec   50    457 KBytes       
[  5]   3.00-4.00   sec   352 MBytes  2.95 Gbits/sec   25    451 KBytes       
[  5]   4.00-5.00   sec   351 MBytes  2.94 Gbits/sec   18    444 KBytes       
[  5]   5.00-6.00   sec   352 MBytes  2.95 Gbits/sec   36    443 KBytes       
[  5]   6.00-7.00   sec   354 MBytes  2.97 Gbits/sec   13    379 KBytes       
[  5]   7.00-8.00   sec   350 MBytes  2.94 Gbits/sec   19    450 KBytes       
[  5]   8.00-9.00   sec   353 MBytes  2.96 Gbits/sec   49    324 KBytes       
[  5]   9.00-10.00  sec   358 MBytes  3.00 Gbits/sec   58    443 KBytes       
[  5]  10.00-11.00  sec   353 MBytes  2.96 Gbits/sec   29    519 KBytes       
[  5]  11.00-12.00  sec   358 MBytes  3.00 Gbits/sec   23    436 KBytes       
[  5]  12.00-13.00  sec   358 MBytes  3.00 Gbits/sec   28    477 KBytes       
[  5]  13.00-14.00  sec   352 MBytes  2.95 Gbits/sec   18    478 KBytes       
[  5]  14.00-15.00  sec   344 MBytes  2.89 Gbits/sec   60    444 KBytes       
[  5]  15.00-16.00  sec   360 MBytes  3.02 Gbits/sec   25    460 KBytes       
[  5]  16.00-17.00  sec   353 MBytes  2.96 Gbits/sec   27    452 KBytes       
[  5]  17.00-18.00  sec   358 MBytes  3.00 Gbits/sec   36    526 KBytes       
[  5]  18.00-19.00  sec   351 MBytes  2.94 Gbits/sec   29    436 KBytes       
^C[  5]  19.00-19.69  sec   244 MBytes  2.96 Gbits/sec   36    423 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-19.69  sec  6.79 GBytes  2.96 Gbits/sec  646             sender
[  5]   0.00-19.69  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf3: interrupt - the client has terminated

Bruh.

After some digging around I realized that it’s most likely down to difference between RouterOS version. Both devices were with factory ROS version but since CCR2004-PC was much more recent, it had 7.12 while CCR2004-12+ had something like 7.5 or 7.8 I don’t remember. Anyhow - after upgrading both routers performance of CCR2004-12+ significantly improved. Results with 9k jumbo now were almost 1:1 the same as CCR2004-PC and 1500 frames results flipped:

CCR2004-12S+

root@raid /h/lapsio# iperf3 -c 192.168.8.81 -p 2000 -P 1 -t 30 -l 1M
Connecting to host 192.168.8.81, port 2000
[  5] local 192.168.8.82 port 57904 connected to 192.168.8.81 port 2000
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   303 MBytes  2.54 Gbits/sec   95    396 KBytes       
[  5]   1.00-2.00   sec   300 MBytes  2.52 Gbits/sec   70    416 KBytes       
[  5]   2.00-3.00   sec   302 MBytes  2.53 Gbits/sec   69    402 KBytes       
[  5]   3.00-4.00   sec   298 MBytes  2.50 Gbits/sec   26    403 KBytes       
[  5]   4.00-5.00   sec   301 MBytes  2.52 Gbits/sec   46    402 KBytes       
[  5]   5.00-6.00   sec   300 MBytes  2.52 Gbits/sec   86    403 KBytes       
[  5]   6.00-7.00   sec   300 MBytes  2.52 Gbits/sec   71    409 KBytes       
[  5]   7.00-8.00   sec   300 MBytes  2.52 Gbits/sec   47    393 KBytes       
[  5]   8.00-9.00   sec   299 MBytes  2.51 Gbits/sec   31    441 KBytes       
[  5]   9.00-10.00  sec   300 MBytes  2.52 Gbits/sec   25    436 KBytes       
[  5]  10.00-11.00  sec   300 MBytes  2.52 Gbits/sec   48    447 KBytes       
[  5]  11.00-12.00  sec   301 MBytes  2.52 Gbits/sec   72    448 KBytes       
[  5]  12.00-13.00  sec   300 MBytes  2.52 Gbits/sec   87    407 KBytes       
[  5]  13.00-14.00  sec   299 MBytes  2.51 Gbits/sec   59    392 KBytes       
[  5]  14.00-15.00  sec   301 MBytes  2.52 Gbits/sec   61    389 KBytes       
[  5]  15.00-16.00  sec   300 MBytes  2.52 Gbits/sec   25    328 KBytes       
[  5]  16.00-17.00  sec   299 MBytes  2.51 Gbits/sec   58    334 KBytes       
[  5]  17.00-18.00  sec   300 MBytes  2.52 Gbits/sec   61    366 KBytes       
[  5]  18.00-19.00  sec   300 MBytes  2.52 Gbits/sec   29    417 KBytes       
[  5]  19.00-20.00  sec   300 MBytes  2.52 Gbits/sec   53    441 KBytes       
[  5]  20.00-21.00  sec   299 MBytes  2.51 Gbits/sec   36    440 KBytes       
[  5]  21.00-22.00  sec   299 MBytes  2.51 Gbits/sec   48    406 KBytes       
[  5]  22.00-23.00  sec   298 MBytes  2.50 Gbits/sec   36    397 KBytes       
[  5]  23.00-24.00  sec   299 MBytes  2.51 Gbits/sec   85    436 KBytes       
[  5]  24.00-25.00  sec   300 MBytes  2.52 Gbits/sec   46    392 KBytes       
[  5]  25.00-26.00  sec   299 MBytes  2.51 Gbits/sec   51    396 KBytes       
[  5]  26.00-27.00  sec   299 MBytes  2.51 Gbits/sec   33    433 KBytes       
[  5]  27.00-28.00  sec   298 MBytes  2.50 Gbits/sec   56    477 KBytes       
[  5]  28.00-29.00  sec   300 MBytes  2.52 Gbits/sec   57    328 KBytes       
[  5]  29.00-30.00  sec   299 MBytes  2.51 Gbits/sec   22    426 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-30.00  sec  8.78 GBytes  2.52 Gbits/sec  1589             sender
[  5]   0.00-30.00  sec  8.78 GBytes  2.51 Gbits/sec                  receiver

CCR2004-PC

root@raid /h/lapsio# iperf3 -c 192.168.8.81 -p 2000 -P 1 -t 30 -l 1M
Connecting to host 192.168.8.81, port 2000
[  5] local 192.168.8.82 port 48710 connected to 192.168.8.81 port 2000
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   282 MBytes  2.36 Gbits/sec   17    315 KBytes       
[  5]   1.00-2.00   sec   281 MBytes  2.36 Gbits/sec   48    416 KBytes       
[  5]   2.00-3.00   sec   277 MBytes  2.32 Gbits/sec   20    379 KBytes       
[  5]   3.00-4.00   sec   268 MBytes  2.25 Gbits/sec   51    372 KBytes       
[  5]   4.00-5.00   sec   275 MBytes  2.31 Gbits/sec   72    382 KBytes       
[  5]   5.00-6.00   sec   281 MBytes  2.36 Gbits/sec   49    396 KBytes       
[  5]   6.00-7.00   sec   283 MBytes  2.37 Gbits/sec   39    334 KBytes       
[  5]   7.00-8.00   sec   276 MBytes  2.32 Gbits/sec   92    416 KBytes       
[  5]   8.00-9.00   sec   276 MBytes  2.32 Gbits/sec   28    383 KBytes       
[  5]   9.00-10.00  sec   279 MBytes  2.34 Gbits/sec   27    417 KBytes       
[  5]  10.00-11.00  sec   274 MBytes  2.30 Gbits/sec   44    399 KBytes       
[  5]  11.00-12.00  sec   278 MBytes  2.33 Gbits/sec   28    390 KBytes       
[  5]  12.00-13.00  sec   276 MBytes  2.32 Gbits/sec   37    457 KBytes       
[  5]  13.00-14.00  sec   274 MBytes  2.30 Gbits/sec   60    448 KBytes       
[  5]  14.00-15.00  sec   286 MBytes  2.40 Gbits/sec   42    437 KBytes       
[  5]  15.00-16.00  sec   272 MBytes  2.28 Gbits/sec   63    479 KBytes       
[  5]  16.00-17.00  sec   272 MBytes  2.28 Gbits/sec   44    411 KBytes       
[  5]  17.00-18.00  sec   286 MBytes  2.40 Gbits/sec   87    451 KBytes       
[  5]  18.00-19.00  sec   272 MBytes  2.28 Gbits/sec   72    404 KBytes       
[  5]  19.00-20.00  sec   272 MBytes  2.28 Gbits/sec   84    386 KBytes       
[  5]  20.00-21.00  sec   280 MBytes  2.35 Gbits/sec   20    437 KBytes       
[  5]  21.00-22.00  sec   281 MBytes  2.36 Gbits/sec   36    428 KBytes       
[  5]  22.00-23.00  sec   288 MBytes  2.42 Gbits/sec   35    529 KBytes       
[  5]  23.00-24.00  sec   282 MBytes  2.37 Gbits/sec   51    454 KBytes       
[  5]  24.00-25.00  sec   270 MBytes  2.27 Gbits/sec   68    368 KBytes       
[  5]  25.00-26.00  sec   280 MBytes  2.35 Gbits/sec   35    397 KBytes       
[  5]  26.00-27.00  sec   274 MBytes  2.30 Gbits/sec   25    392 KBytes       
[  5]  27.00-28.00  sec   282 MBytes  2.37 Gbits/sec   46    505 KBytes       
[  5]  28.00-29.00  sec   268 MBytes  2.25 Gbits/sec   68    496 KBytes       
[  5]  29.00-30.00  sec   275 MBytes  2.31 Gbits/sec   62    469 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-30.00  sec  8.12 GBytes  2.33 Gbits/sec  1450             sender
[  5]   0.00-30.00  sec  8.12 GBytes  2.33 Gbits/sec                  receiver

So it seems that CCR2004-12S+ was quite quirky device that suffered some significant performance issues. Though I’m kind of sad that CCR2004-PC has lower performance with most recent ROS version and performs noticably worse than with factory image - I believe it may be just related to all-round performance rebalancing and optimizing more common use cases than mine.

Overall I’m observing 2.3 Gbps vs 2.5 Gbps difference between CCR2004-12S+ and CCR2004-PC which is not all that bad. It’d be cool if it was smaller difference but I guess it is what it is. It still obliterates CCR1009. So I guess I won’t be returning it after all. Instead I’m gonna proceed to cry why it’s not 2.5 Gbps in use case that isn’t even my actual use case because I apparently have 9k jumbo everywhere in network so… welp.

I honsetly thought it’s not gonna reach 10G in full software with no fasttrack or anything and I thought I’ll have to go for CCR2116. So it’s quite pleasant surprise. Now I’m gonna go for bunch of Intel E810 and pursue 100G in full software XD

Dude, this was an awesome post!! So much data!!! I had faith the newer architecture would outperform the older tile-based models but it’s hard to really compare without real world testing. As far as the performance between the two CCR2004 models, remember that the +PC is running at 1200 MHz while the other is running at 1700 MHz. So it makes sense that it would edge out the +PC model by a bit. Still pretty great performance by the +PC. ROS is very actively under development still so it’s entirely possible that further optimizations and improvements will be made. There have been a number of tweaks to the switch performance in the devices, as well as throughput and stability. I also wonder if you could eek out additional performance with tweaks to your configuration - assuming you might have some inefficiencies (like redundant firewall rules etc). But all in all, it looks like you’ve been won over even if you are a little bit salty in some aspects?