2015-01-15 2 views
1

내 가상 시스템에서 인터럽트 (irq 75)의로드 균형을 조정하려고합니다. 64 비트 레드햇 5.8, 커널 2.6.18이 있습니다. 가상 컴퓨터에는 8 개의 CPU가 있습니다.리눅스에서 smp 선호도 설정

나는 실행하면 :

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

은 내가 IRQ 75 만 CPU0을 사용하는 것을 보았다. 그럼 난 IRQ 75

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

의 smp_affinity을 변경하지만 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 서비스가 자동으로 중지됩니다. –

답변

1

값은 일반적으로 현재

  1. 첫번째 중지 irqbalance
  2. 를 64 비트, 비트 마스크의 진수 표현 인 시도 (비트 패턴 : 진수 표현 10 = 0x2로)

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

코어 프로세서가 2 개있는 경우이 방법이 효과적입니다.

0

당신이 VM웨어를 사용하는 경우, 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에서 균형을 이뤘습니다.