How to Distribute load across CPU Cores

Hello All,

I am not able to find a suitable document or post that will explain as to how best to distribute load across multiple cores of a CCR. I intend to use CCR1009 model with copper ports. I need only 3 ports out of this, one for WAN and two for LAN. These two LAN ports will be bonded (LACP) with MII for link monitoring and then connected to two separate switches (stack members) for resiliency.

My requirement is fairly simple. I am not looking to do any queues on the router for rate limiting / speed caps. That work will be done by wireless APs aided by FreeRadius. The CCR will be mainly doing NATting, plus a large dhcp scope (with lease time of 2 hour), DNS servers inside the dhcp scope will be two Raspberry Pi 4 based Pi-hole. The login splash pages will be hosted on the Radius server (with login.html in the CCR hotspot set up to divert the traffic to it). CCR hotspot will have the http and mac authentication (as I will catch the mac address on radius server on first authentication and add it to a SQL table on radius for subsequent authentication without login page). User accounts will be on the Radius / SQL as well.

I will for sure have some QoS / rules to ensure that I SIP / VOIP / DNS / ICMP / Speedtest.net in one queue and YouTube / Netflix etc on another, to give higher priority over regular http / http / email traffic that can withstand some delays.

So based on all this, load on the CCR should be low even if I have 500 concurrent devices, but given there is no switch chip and all ports being routed, are handled by CPU, so I will like to know how do I ensure that the CPU load is distributed ( even if it is not evenly). I do read that multiple firewall rules can make use of different cores, but it is not clear.

here are some interesting threads that talk about large number of vlans and firewalls configuration and still have low CPU utilization. But it is lacking details if the load is distributed or still on a single CPU thread.

http://forum.mikrotik.com/t/ccr-hotspot-performance/78779/1

http://forum.mikrotik.com/t/ccr1009-high-cpu-load/138830/1

Can I also solicit advice / guidance from @sindy and @mkx please?

Thanks

I’ve never had a CCR in my hands, so I cannot share any experience regarding load distribution on this model in particular.

In general, there is not much to advise regarding load distribution between cores, as it is done automatically, and it is done whenever possible (some tasks are single threaded by nature or handling them in a single thread has some significant positive effects).


I wonder how you intend to distinguish Youtube traffic from other Google HTTPS/QUIC traffic.

Thank you sindy for your inputs.

Good to know that multiple cores will auto get used for data plane. I was not worried about control plane traffic anyway whether that uses one core or more, but definitely I will like to have all cores or at least few cores for sure to be used for user traffic. I had read somewhere that says that manual intervention is needed and that v7 of ROS that has been in making for several years was needed to actually make use of SMP (though Linux for many many years have been auto utilizing multiple cores) and that CCR hardware architecture was designed to use v7 which is still not available.

As long as multiple CPU cores will be used without any manual intervention, I am relieved.

For prioritizing certain streaming traffic over others, I was hoping that there might be a way to use some regex and public address lists that can either be manually (and periodically updated) or auto-magically updated to give preference to such traffic. Just did a google search and I have not read this, but seems like this link may help (it is though of 2014). And may not be bad idea to simply prioritize anything going to Google. I will probably go over this link in couple of days after my home project of painting the interiors is over :).

https://gregsowell.com/?p=4665

Rethinking on the queues, will it help if I set up queue for traffic going downstream to the users, so that internet traffic does not simply came gushing thru only to be choked by the AP (that does not help then though I understand that slow upload of ACKs should cause Internet based servers to accordingly pace the traffic sent back to clients).

Thanks so much,