特定のCPUからの割り込みを禁止したいのですが。 IRQBALANCE_BANNED_CPUSオプションについて聞きました。マシンのバックグラウンドでirqbalanceが実行されているのがわかります。どこで編集に行き、そのオプションをどのように設定しますか?たとえば、割り込みからcpus 2、3、4、5を除外します。引数 descriptor は次のとおりです。
Irqbalanceが無視し、割り込みを割り当てないCPUのマスクを提供します
マスクとはどういう意味ですか?そして、そのオプションでirqbalanceをどこに設定しますか?
EDIT1:私の構成が有効であること、つまり私のCPUが割り込みを受け取っていないことを知る方法は?/proc/interruptsを確認していますが、いくつかの数値が増加しています。
EDIT2:これで、IRQBALANCE_BANNED_CPUS = 3eでマシンを起動したため、CPU 0のみが割り込み禁止になりません。だから私はcpo0が多くの割り込みを受け取り、他のcpusが割り込みを受け取っていないことを期待するべきですよね?これが私の/ proc/interruptsです。太字の行はすべてのCPUで変更されています。行22、24、35およびLOCは変更されます。
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:これはIRQBALANCE_BANNED_CPUSオプションがUbuntuで完全に無視されているようです。 1、3eでマシンを再起動してみたところ、割り込みが発生しました。 ENABLED = 0を設定してirqbalanceを無効にすると、cpu0だけでクリーンな/ proc/interruptsが取得され、他のCPUは取得されません。
irqbalanceバグにより、IRQBALANCE_BANNED_CPUSがNUMAマシンで機能しない: http://code.google.com/p/irqbalance/issues/detail?id=4
現在のところ、1.0.5は最新のirqbalanceリリースであり、修正はありません。
Irqbalanceの問題のトラブルシューティングに関する上記の提案に追加-irqbalanceの実行から生じる割り込みアフィニティを表示するための便利なコマンド:
find /proc/irq/ -name smp_affinity | xargs cat | less
それを機能させるには、上記の3cを使用する必要があります。以降のバージョンではこれが自動的に行われます(少なくともdebian/sidのv 1.9まで)