关于CPU负载均衡,为啥有的分了,有的没分

safedead
关于CPU负载均衡,为啥有的分了,有的没分

more /proc/interrupts
           CPU0       CPU1       CPU2       CPU3      
  0:    1719484    1721745    1720518    1723081    IO-APIC-edge  timer
  1:         96        112        117        103    IO-APIC-edge  i8042
  8:          4          9          6          4    IO-APIC-edge  rtc
  9:          0          0          0          0   IO-APIC-level  acpi
50:   11536742          0          0          0         PCI-MSI  eth0
58:       9166          0          0          0         PCI-MSI  eth1
169:     407095     406348     407101     405638   IO-APIC-level  ioc0
177:          0          0          0          0   IO-APIC-level  uhci_hcd, uhci
_hcd, ehci_hcd
185:          0          0          0          0   IO-APIC-level  uhci_hcd, uhci
_hcd
193:          0          0          0          0   IO-APIC-level  libata
225:     309290     307379     307845     306765   IO-APIC-level  eth2
NMI:    6884522    6884462    6884461    6884460
LOC:    6884448    6884443    6884428    6884442
ERR:          0
MIS:          0

内核2.6.9-55.0.2.ELsmp
CPU是XEON 5405

从proc信息看,网卡eth0全部跑在CPU0上,
硬盘控制器ioc0则均匀分配在4个CPU上
网卡eth2也均匀分配在4个CPU上

网卡eth0是PCI-e的82563eb
网卡eth2是PCI-X的82545GM
是82563eb不支持CPU负载均衡吗?

eth0相关的应用只有一个程序(多线程TCP)
eth2相关的应用也只有一个程序(单线程UDP)

f7zz
cpu亲和性(affinity)问题,,

网卡在大流量的情况转换为NAPI模式时,一个CPU以pool方式轮询接收数据,由softirq触发的下半部也在同一个CPU上执行,,所以导致其他CPU是空转的。