Hi Andrew,
Is the traffic a single stream or are there multiple ones? I am under
the impression that with multiple streams incoming processing will get
distributed (except for interrupts). Also, I thought stack would
switch from interrupts to polling under heavy load (if data has
already arrived).
I'm trying to understand the limitations, if any, based on instruction
set, NIC type, etc.
Thanks
Steffen
Andrew Wenlang Zhu wrote On 10/16/06 23:03,:
Hi,
I have a four-CPU system with two G-NICs. The system acts as an
application gateway, and the traffic comes from one NIC and goes out
through the other one. The throughput rate is about 600M. The OS is
Solaris Express SNV-46 on Intel platform.
Through mpstat, I find CPU utilization is unbalanced. One CPU is about
90% busy, and the rest three is about 50%. For the one with 90%, mpstat
shows its "intr" about 24798, while the other three is about 2000. The
most of time spending on "sys".
I use Dtrace and find the most frequently calls are for networking I/O.
It appears that Solaris sends all NIC interrupts from both NICs to a
single CPU. I tried to use "ndd -set /dev/ip ip_squeue_fanout 1", but
seems no much changes. Do I need to reboot to make the fanout effective?
HP-UX can bind one NIC to a particular CPU, so that the CPU will take
care of all I/Os for the NIC to get a good data locality, while the
burden of serving interrupts can be shared among several CPUs.
Does Solaris has a similar thing? Or how to make network load balanced
cross several CPUs to alleviate the CPU bottleneck and achieve a higher
overall throughput?
Thanks,
Andrew
_______________________________________________
networking-discuss mailing list
[email protected]
_______________________________________________
networking-discuss mailing list
[email protected]