Linux中的smp亲和设置

时间:2015-01-15 12:21:34

标签: linux affinity irq smp

我想在我的虚拟机系统上对中断(irq 75)进行负载平衡。它有64位redhat 5.8,内核2.6.18。虚拟机中有8个CPU。

当我跑步时:

cat /proc/interrupts
 75:       9189   0   0   0   0   0   0   0   IO-APIC-level   eth0

我看到IRQ 75仅用于CPU0。然后我改变了irq 75的smp_affinity。

echo ff > /proc/irq/75/smp_affinity
cat /proc/irq/75/smp_affinity
00000000,00000000,00000000,00000000,00000000,00000000,00000000,000000ff

但是我看到irq 75的中断仅使用CPU0。

 75:     157228   0   0   0   0   0   0   0   IO-APIC-level  eth0

CPU之间没有irq平衡。我想将所有中断(irq 75)分配给所有CPU,我做错了吗?

2 个答案:

答案 0 :(得分:2)

该值以位掩码的十六进制表示,通常为64位

  1. 第一站irqbalance
  2. 现在,尝试(位模式:10 = 0x2,十六进制表示)
  3. echo 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000002 > /proc/irq/75/smp_affinity

    如果您有2个核心处理器,这应该可行。

答案 1 :(得分:0)

如果您使用的是vmware,将以太网驱动程序更改为VMXNET3,则会出现以下中断:

cat /proc/interrupts | grep eth3
57:          0          0          0          0          5  101198492          0          0   PCI-MSI-edge      eth3-rxtx-0
58:          0          0          0          0          0          2   82962355          0   PCI-MSI-edge      eth3-rxtx-1
59:          0          0          0          0          0          0          1  112986304   PCI-MSI-edge      eth3-rxtx-2
60:  120252394          0          0          0          0          0          0          1   PCI-MSI-edge      eth3-rxtx-3
61:          1  118585532          0          0          0          0          0          0   PCI-MSI-edge      eth3-rxtx-4
62:          0          1  151440277          0          0          0          0          0   PCI-MSI-edge      eth3-rxtx-5
63:          0          0          1   94639274          0          0          0          0   PCI-MSI-edge      eth3-rxtx-6
64:          0          0          0          1   63577471          0          0          0   PCI-MSI-edge      eth3-rxtx-7
65:          0          0          0          0          0          0          0          0   PCI-MSI-edge      eth3-event-8

你会有不同的" rxtx"队列,每个队列分配给一个CPU。 在我的情况下,负载在所有CPU之间变得平衡。