linux网络接口irq smp_亲和性

linux网络接口irq smp_亲和性,linux,networking,linux-kernel,interrupt,Linux,Networking,Linux Kernel,Interrupt,我正在做网络性能测试,并意识到接口的中断处理在8个CPU上是不平衡的。所以我想让它们更加平衡 我只是设置了文件: 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编号 [root@l

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

我只是设置了文件:

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编号

[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处理?

您是否关闭了
irqbalance
守护进程?你的系统是什么,它是单插座主板还是NUMA;您的网卡是什么(它使用的芯片),它是如何连接到系统的,您是如何使用网络的?irqbalance的用途是什么?它正在运行。我的系统是CentOS Linux 7.0.1406版:3.10.0-123.el7.x86_64,vmware guest.Chinaxing,-它是定期重新平衡中断亲和力的程序。如果您设置了手动irq确认,请在测试前尝试禁用它。另外,您应该从非虚拟化的情况开始,而不是从vmware guest开始,而是从主机操作系统开始。vmware网络驱动程序中可能存在问题。您真正的网卡是什么?它是如何连接到虚拟机的?什么是主机操作系统?主机操作系统是centos,我使用网桥模式连接到虚拟机。真实网卡会影响vmware来宾主机的网卡吗?顺便问一下,它是否受到vmware的嘲笑(因此没有亲戚)。我更改/sys/class/net/$if/queue/rx-0/rx_CPU可能会有一些影响,那么,这些位置的影响是什么?