New autorps utility doesn't afraid of difficulties!
Autorps didn't work in systems with multiple NUMA-nodes or CPU sockets before, because it had been calculating cpu mask by total cpu count and wasn't aware of CPU/NUMA topology.
It has been rewritten in python. Now you can:
- Use it on single-queue NICs in multinuma systems. CPU socket/NUMA node to bind network packet processing will be chosen automatically (rss-ladder is able to do it too!) by reading
/sys/class/net/$NIC/device/numa_node
(fallback - 0). --force
it to work with multiqueue NIC.- Pass custom CPU mask.
--cpu-mask=fe
- Pass custom CPU list
--cpus 0 2 4 6
(in the end of options). - Test it before using by
--dry-run
: it will print something likeUsing mask 'fc0' for eth0-rx-0
. - Explicitely define socket to bind queues by
--socket=1
. Why would you ever need it? Because you may found out that moving this nic to external NUMA-node gives you better performance than put all your NIC's on the device's local NUMA-node (and you can't put NIC in this NUMA-node's PCI slot right now).
Also I accidentally drop .pylintrc in repo and fixed all small pep8 violations and other code smells that landscape.io was hiding with default settings.