I've got several SMP machines, some running CentOS 4.3 and some running Fedora Core 4. All machine are kept fully updated. A few are Pentium3-based and a few are Pentium4-based. They are all running the irqbalance daemon.
The distribution of interrupts across CPUs is indeed kept balanced, yet even after months of uptime ps shows no CPU use whatsoever by irqbalance. This from a program that is supposed to wake up every 10 (?) seconds and examine the interrupt counts. Given that there is an IRQ balancing scheme in the kernel, I have to wonder if irqbalance is actually being used.
The man page for this program consists of a single-sentence description of what the program does. Nice.
Does irqbalance really do anything on contemporary Red Hat-based systems?
Thanks.
My experience is that when switching CPUs for the IRQ Interrupts, it introduces a delay. In other words, each time it switches CPUs, I would lose interrupts.
I am using CentOS for Telephony purposes, so eached dropped interrupts is a potential problem.
The first thing that I do on any CentOS box, is disable irqbalance and set them CPUs manually.
-> Behalf Of Steven -> Subject: [CentOS] Re: Does irqbalance actually do anything? -> -> My experience is that when switching CPUs for the IRQ Interrupts, it -> introduces a delay. -> In other words, each time it switches CPUs, I would lose interrupts. -> -> I am using CentOS for Telephony purposes, so eached dropped interrupts is -> a potential problem. -> -> The first thing that I do on any CentOS box, is disable irqbalance and -> set them CPUs manually. -> -> -- -> -- -> Steven ->
Would you please show and tell what you mean by "set the cpus manually" after disabling irqbalance.
Thanks in advance!
- rh
I have the following in my rc.local file: -------------------- setpci -v -s 00:1f.1 LATENCY_TIMER=4 setpci -v -s 02:0e.0 LATENCY_TIMER=4 setpci -v -s 0b:07.0 LATENCY_TIMER=4 setpci -v -s 0c:08.0 LATENCY_TIMER=4 setpci -v -s 10:0d.0 LATENCY_TIMER=0 setpci -v -s 06:02.0 LATENCY_TIMER=ff
echo 1 > /proc/irq/201/smp_affinity echo 1 > /proc/irq/217/smp_affinity echo 0 > /proc/irq/209/smp_affinity echo 1 > /proc/irq/14/smp_affinity ---------------------
The last 4 lines set the CPU for the 4 PCI cards that I have with the most activity. My TDM Card, 2 NICs and a Raid Controller.
It is a dual proc machine, so 0 is one CPU and 1 is the other.
If you do these commands while irqbalance is still running, they will just get undone a few seconds later. irqbalance does the same as above, it just edits these files after determining the load on each CPU.