Re: linux kernel high "si" load on a 600 Mbps router
On Tue, Feb 23, 2010 at 12:58:49PM -0800, Florea Bogdan Florin wrote:
> We use a linux box for routing and traffic shaping (we have a few thousand ip addresses routed through this box) and the soft interrupt load is very high.
> We use linux kernel 220.127.116.11 on an Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz.
> Cpu1 serves an internal network interface, and Cpu3 serves a single physical network interface (with 2 vlans):
> Cpu0 : 0.4%us, 0.0%sy, 0.0%ni, 98.2%id, 0.0%wa, 0.0%hi, 1.4%si, 0.0%st
> Cpu1 : 0.7%us, 0.0%sy, 0.0%ni, 16.1%id, 0.0%wa, 0.3%hi, 82.9%si, 0.0%st
> Cpu2 : 0.0%us, 0.0%sy, 0.0%ni, 96.1%id, 0.0%wa, 0.0%hi, 3.9%si, 0.0%st
> Cpu3 : 0.0%us, 0.0%sy, 0.0%ni, 18.2%id, 0.0%wa, 0.7%hi, 81.2%si, 0.0%st
> Mem: 2051812k total, 816388k used, 1235424k free, 134232k buffers
> Swap: 6016300k total, 0k used, 6016300k free, 110356k cached
> Cpu0 and Cpu2 are idle most of the time.
> Is there any way to use multiple processors to handle software interrupts for the same network interface, so that the load be distributed across multiple processors ?
> Any other suggestions to ease the load are welcome.
Get NICs that support 'Receive Side Scaling' via multiple RX queues, or
apply Google's 'Receive Packet Steering' patch (this is likely to be
merged some time soon, but will not be in squeeze).
Also see this presentation:
I say we take off; nuke the site from orbit. It's the only way to be sure.