Chciałbym zakazać przerwań niektórych procesorów. Słyszałem o opcji IRQBALANCE_BANNED_CPUS. Widzę, że w tle mojej maszyny działa nierównowaga. Gdzie mogę edytować i jak skonfigurować tę opcję? Na przykład chcę wykluczyć cpus 2,3,4,5 z przerwań. Deskryptor argumentu to:
Zapewnia maskę cpus, którą nierównowaga powinna ignorować i nigdy nie przypisywać przerwaniom
Co to znaczy maska? A gdzie mam skonfigurować nierównowagę za pomocą tej opcji?
EDYCJA 1: Jak wiedzieć, że moja konfiguracja obowiązuje, innymi słowy, że moja jednostka centralna nie odbiera żadnych przerwań? Sprawdzam / proc / przerywa, ale niektóre liczby tam rosną.
EDYCJA 2: Teraz uruchomiłem komputer za pomocą IRQBALANCE_BANNED_CPUS = 3e, więc tylko procesor 0 NIE jest blokowany przed przerwaniami. Więc powinienem spodziewać się, że cpo0 otrzyma wiele przerwań, a inne procesory nie otrzymają przerwań, prawda? Oto moje / proc / interrupts. Pogrubione linie zmieniają się dla WSZYSTKICH cpus. Linie 22, 24, 35 i LOC zmieniają się.
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
EDYCJA 3: Wygląda na to, że opcja IRQBALANCE_BANNED_CPUS jest całkowicie Zignorowana na Ubuntu . Próbowałem zrestartować moją maszynę z 1, 3e i wszędzie pojawiały się przerwy. Właśnie kiedy wyłączam nierównowagę poprzez ustawienie ENABLED = 0, że dostaję czyste / proc / przerywa tylko na cpu0 i żadnych innych procesorach.
źródło
błąd braku równowagi uniemożliwia IRQBALANCE_BANNED_CPUS pracę na maszynach NUMA: http://code.google.com/p/irqbalance/issues/detail?id=43
Na razie 1.0.5 jest najnowszą wersją irqbalance i nie ma poprawki.
źródło
Musisz użyć 3c jak wyżej, aby to działało. Późniejsze wersje robią to automatycznie (przynajmniej w wersji 1.9 na debian / sid)
źródło
Dodanie do powyższych sugestii dotyczących rozwiązywania problemów z nierównowagą - Przydatne polecenie do przeglądania powinowactwa przerwań wynikających z przebiegu nierównowagi:
źródło