Sun Mar 12, 2017 5:30 pm
The RPS is software IRQ load balancer.
It's helpful when your ethernet card have 1 Rx/Tx queue and IRQ, and you wanna spread incoming packets through 4-8-16 cores.
If you use ESXi and vmxnet3, which have 4 TX innterrupts, and 4 RX interrupts, just disable RPS, and use multi-queue-ethernet default for best load balance/performance.
If you don't see enough IRQs for your card, then you may use RPS to spread load accros cores.
I also found disabling RPS in esxi+vmxnet3 gets less cpu load, because drivers, hypervisor and interface queues are already SMP optimized.
RPS is good for older eth drivers, or PCI passthrough and using eth cards which don't use msi-x and multiqueuing.
You can get more CPU usage and less performance, if you use RPS for interfaces which already have CPU load balancing by hypervisor, so loadbalancing tasks have to be done multiple times by SW.