Move all eth0 IRQ processing to CPU2 instead of CPU1 which is the
default. CPU1 will continue handling all the USB interrupts which
also include USB-Ethernet adapter interrupts.
This significantly lowers the softirq load on CPU1 (from 99% to
less than 10%)
irqbalance could do the same and you can still run irqbalance
because the /etc/init.d/irq-eth-pin script will add the eth0 to
the ban list of irqbalance
See interrupt load with
while true; do clear; cat /proc/interrupts; sleep 1; done