2015-01-15 29 views
1

我想在我的虛擬機系統上平衡中斷(irq 75)。它有64位Redhat 5.8,內核2.6.18。虛擬機中有8個CPU。linux中的smp關聯設置

當我運行:

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

我看到IRQ 75只使用CPU0。然後,我改變了對smp_affinity IRQ 75.

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

但我看到了IRQ 75只使用CPU0 againg中斷。

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

CPU之間沒有irq平衡。我想將所有中斷(irq 75)分配給所有的CPU,我做錯了什麼?

+0

也許你應該只是運行'irqbalance' ... – twalberg

+0

我也試過這個,但沒有任何改變。有趣的是,當我運行「服務irqbalance開始」時,幾秒鐘後irqbalance service自動停止。 –

回答

1

的值是位掩碼的十六進制表示,通常爲64位

  1. 第一停止irqbalance
  2. 現在,嘗試(比特模式:以十六進制表示法10 = 0×2)

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

這應該工作,如果你有2個核心處理器。

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之間的負載變得平衡。