Help me understand this CPU usage

Hi all,

I recently enabled about 400 simple queues with one or more /32s set as the target as my WAN interface set as the destination (no packet-marks, no parent), on a CCR1009. It handled the load I threw at it fine (each queue is for a wireless service with a max-rate between 5Mbps and 15Mbps, traffic got up to about 400Mbps).

Attached is the CPU usage of the router during peak traffic usage. As you can see, the majority of the load is on two cores. Before the addition of the queues, CPU distribution was similar except most of the load was on a single core, which leads me to believe the queueing is happening primarily on 1 core.

I’m primarily wondering how simple queues will scale as more are added. Will the load be distributed across additional cores as I add more simple queues? Or, will I continue to see this kind of load distribution? I’m concerned that if I upgrade to the CCR1036 or CCR1072, which I plan to as part of an expansion project, I’ll end up being limited by one or two cores.

I’m wondering if I’ve configured the queues sub-optimally by setting the destination to an interface…

Thanks for any insight.
ccr1009-cpu.png

hello, I believe that a configuration with a pcq queue would be more suitable to balance the bandwidth see:
http://forum.mikrotik.com/t/pcq-limit-total-limit-settings/12002/1

Attached is what most recent CPU usage during peak traffic looks like.

It turns out this was due to my firewall setup. I’ve changed it to do more matching on interfaces instead of address lists. It looks Simple Queues are processed with multiple cores just fine.

I’m still unsure how PCQ would handle it, as I’ve there are limitations with it when it comes to multi-threaded processing. But I’m interested in finding out. I am concerned that bottleneck will be the mangle rules needed to mark appropriate packets for each service level. Will test one of these days and if I find out anything interesting, will post the results.
ccr-cpu.png