Hello I’ve recently upgraded to HAP AC2 and i dont know why i cant take advantage of all the cpu cores. I have 27 mangle rules from the how to qos your network 2020 edition guide http://forum.mikrotik.com/t/using-routeros-to-qos-your-network-2020-edition/66683/1 and i also have 50 filter rules for my vlans. My cpu max out at 30% at 200mbps across my vlans.
MikroTik should use a Producer-Consumer model for creating and processing jobs or work-packages → https://en.wikipedia.org/wiki/Producer–consumer_problem
It seems the CPUs are instead statically bound to some fixed tasks. But IMO this better should be done in a dynamic fashion with the above job distribution and processing model. A new job should be processed by the CPU with the least load at that moment.
It depends on traffic pattern. Generally ROS uses same CPU core to process all packets belonging to same connection. This helps to keep in-order delivery (TCP prefers in-order delivery, UDP might choke on out-of-order packet delivery). But also limits throughput. If you’re testing using single connection, then this is more or less it - (unless you optimize your firewall/mangling/qos, your experience indicates that you have heavy packet processing in place and you may have to consider router with faster CPU, such as RB4011 or CCR2004.
OTOH, if you see this kind of behaviour when router is dealing with multiple connections (preferably different pairs of machines talking to each other), then this is ROS bug indeed, load should be better spread over all available CPU cores.