Eu gostaria de banir interrupções de certas CPUs. Eu ouvi sobre a opção IRQBALANCE_BANNED_CPUS. Vejo que o irqbalance está sendo executado no fundo da minha máquina. Onde vou editar e como configuro essa opção? Por exemplo, quero excluir o cpus 2,3,4,5 das interrupções. O descritor de argumento é:
Fornece uma máscara de cpus que o irqbalance deve ignorar e nunca atribui interrupções a
O que significa uma máscara? E onde eu configuro o irqbalance com essa opção?
EDIT1: Como saber que minha configuração está em vigor, em outras palavras, que minha CPU está recebendo interrupções NO? Estou verificando / proc / interrompe, mas alguns números estão aumentando lá.
EDIT2: Agora eu inicializei minha máquina com IRQBALANCE_BANNED_CPUS = 3e, portanto, apenas a CPU 0 NÃO é banida de interrupções. Então, eu deveria esperar ver cpo0 recebendo muitas interrupções e os outros cpus não recebendo interrupções, certo? Aqui está o meu / proc / interrompe. As linhas em negrito estão mudando para TODOS os cpus. As linhas 22, 24, 35 e LOC estão mudando.
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5
0: 26 0 0 0 0 0 IO-APIC-edge timer
1: 2 0 0 0 0 0 IO-APIC-edge i8042
6: 3 0 0 0 0 0 IO-APIC-edge floppy
8: 1 0 0 0 0 0 IO-APIC-edge rtc0
9: 0 0 0 0 0 0 IO-APIC-fasteoi acpi
12: 4 0 0 0 0 0 IO-APIC-edge i8042
14: 13556 0 0 0 0 0 IO-APIC-edge ata_piix
15: 0 0 0 0 0 0 IO-APIC-edge ata_piix
18: 0 0 0 0 0 0 IO-APIC-fasteoi ata_piix
19: 2 0 0 0 0 0 IO-APIC-fasteoi ohci1394
20: 3 0 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb6
21: 197 635 39 0 0 0 IO-APIC-fasteoi uhci_hcd:usb4, uhci_hcd:usb7, HDA Intel
22: 344 3506 0 702 0 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
24: 162 48 0 0 0 0 IO-APIC-fasteoi nvidia
35: 174 0 47 0 0 0 IO-APIC-fasteoi nvidia
53: 3517 0 0 0 0 0 PCI-MSI-edge eth0
NMI: 0 0 0 0 0 0 Non-maskable interrupts
LOC: 11007 8840 6480 5652 4272 3046 Local timer interrupts
SPU: 0 0 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 0 0 Performance monitoring interrupts
PND: 0 0 0 0 0 0 Performance pending work
RES: 292 169 217 125 122 126 Rescheduling interrupts
CAL: 86 280 254 292 293 291 Function call interrupts
TLB: 1147 1031 1348 616 177 322 TLB shootdowns
TRM: 0 0 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 0 0 Machine check exceptions
MCP: 2 2 2 2 2 2 Machine check polls
ERR: 5
MIS: 0
EDIT3: Parece que a opção IRQBALANCE_BANNED_CPUS está completamente IGNORADA no Ubuntu . Tentei reiniciar minha máquina com 1, 3e e tive interrupções por todo o lado. Apenas quando desabilito o irqbalance, definindo ENABLED = 0, recebo uma limpeza / proc / interrompe apenas na CPU0 e em nenhuma outra CPU.
fonte
um erro do irqbalance impede o IRQBALANCE_BANNED_CPUS de trabalhar em machinges NUMA: http://code.google.com/p/irqbalance/issues/detail?id=43
A partir de agora, a 1.0.5 é a versão mais recente do irqbalance e não possui a correção.
fonte
Você tem que usar 3c como acima para fazê-lo funcionar. Versões posteriores fazem isso automaticamente (pelo menos na versão 1.9 no debian / sid)
fonte
Adicionando às sugestões acima sobre solução de problemas do irqbalance - Um comando útil para visualizar as afinidades de interrupção resultantes da execução do irqbalance:
fonte