0

我想在我的虚拟机系统上对中断(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,我做错了吗?

4

2 回答 2

2

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

  1. 第一站irqbalance
  2. 现在,尝试(位模式:10 = 0x2 以十六进制表示)

echo 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000002 > /proc/irq/75/smp_affinity

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

于 2015-01-25T00:15:35.867 回答
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 之间变得平衡。

于 2015-04-08T08:35:23.517 回答