linux网络接口irq smp_affinity

时间:2015-03-14 22:11:04

标签: linux networking linux-kernel interrupt

我正在进行网络性能测试,并意识到8 cpus上的接口中断处理不平衡。所以我想让它们更加平衡。

我只是设置文件:

echo 11 > /proc/irq/16/smp_affinity
echo 22 > /proc/irq/17/smp_affinity
echo 44 > /proc/irq/18/smp_affinity
echo 88 > /proc/irq/19/smp_affinity

其中16 17 18和19是我的四个IRQ no我的网络接口。

[root@localhost ~]# cat /proc/interrupts | grep ens
  16:      30490          0      16838     427032        379          0      10678          0   IO-APIC-fasteoi   vmwgfx, ens34, ens42
  17:     799858          0      68176          0      78056          0      44715          0   IO-APIC-fasteoi   ioc0, ens35, ens43, ens39
  18:       2673          0       6149          0       7651          0       5585          0   IO-APIC-fasteoi   uhci_hcd:usb2, snd_ens1371, ens40, ens44
  19:     145769    1431206          0          0          0          0        305          0   IO-APIC-fasteoi   ehci_hcd:usb1, ens41, ens45, ens33

但遗憾的是,我仍然发现IRQ在CPU上并不均衡:

Tasks: 263 total,   2 running, 261 sleeping,   0 stopped,   0 zombie
%Cpu0  :  7.5 us, 10.0 sy,  0.0 ni, 65.3 id,  0.0 wa,  0.4 hi, 16.7 si,  0.0 st
%Cpu1  :  9.7 us, 15.0 sy,  0.0 ni, 59.1 id,  0.0 wa,  0.0 hi, 16.2 si,  0.0 st
%Cpu2  : 11.7 us, 21.6 sy,  0.0 ni, 66.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  : 10.4 us, 16.6 sy,  0.0 ni, 66.0 id,  0.0 wa,  0.0 hi,  6.9 si,  0.0 st
%Cpu4  : 10.9 us, 24.5 sy,  0.0 ni, 64.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  : 11.8 us, 29.4 sy,  0.0 ni, 58.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  9.0 us, 19.8 sy,  0.0 ni, 71.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  : 11.5 us, 22.6 sy,  0.0 ni, 65.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

那么,为什么IRQ不会出现在所有CPU上呢?

如何平衡所有CPU的irq处理?

0 个答案:

没有答案