One thing to check, make sure that interrupts are being processed by all the CPU's and not just one of them. For example -
CODE jes@cerberus[9:44pm]~> ps aufgx | grep irq
root 3 0.0 0.0 0 0 ? SWN Jun04 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? SWN Jun04 0:00 [ksoftirqd/1]
jes 24080 0.0 0.0 3952 632 pts/230 S 21:58 0:00 \_ grep irq
jes@cerberus[9:44pm]~> cat /proc/interrupts
CPU0 CPU1
0: 1431064056 0 IO-APIC-edge timer
2: 0 0 XT-PIC cascade
8: 0 0 IO-APIC-edge rtc
12: 76974 0 IO-APIC-edge i8042
14: 7766660 0 IO-APIC-edge ide0
15: 4705 0 IO-APIC-edge ide1
16: 15094470 122 IO-APIC-level ide2, ide3
19: 1691 0 IO-APIC-level ohci_hcd, ohci_hcd
24: 110654028 0 IO-APIC-level eth0
NMI: 119763 99595
LOC: 1430211941 1430213506
ERR: 0
MIS: 122
Look how all the interrupts are being handled by CPU0. Running IRQBalance will fix that.
CODE [root@cerberus root]# /usr/local/bin/irqbalance
[root@cerberus root]# ps aufgx | grep irq
root 3 0.0 0.0 0 0 ? SWN Jun04 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? SWN Jun04 0:00 [ksoftirqd/1]
root 24769 0.0 0.0 3952 632 pts/230 S 22:07 0:00 \_ grep irq
root 24719 0.0 0.0 2564 456 ? S 22:06 0:00 /usr/local/bin/irqbalance
[root@cerberus root]# find / > /dev/null
[root@cerberus root]# cat /proc/interrupts
CPU0 CPU1
0: 1431391262 262621 IO-APIC-edge timer
2: 0 0 XT-PIC cascade
8: 0 0 IO-APIC-edge rtc
12: 76974 0 IO-APIC-edge i8042
14: 7769043 2345 IO-APIC-edge ide0
15: 4758 0 IO-APIC-edge ide1
16: 15097139 2284 IO-APIC-level ide2, ide3
19: 1691 0 IO-APIC-level ohci_hcd, ohci_hcd
24: 110675282 0 IO-APIC-level eth0
NMI: 119772 99602
LOC: 1430801725 1430803289
ERR: 0
MIS: 122
Now both CPU's are handling interrupts, I did the "find" command to stress the disks a little.
-------------------------
The opinions expressed above do not represent those of Advanced Micro Devices or any of their affiliates.
http://www.shellprompt.net Unix & Oracle Web Hosting Provider powered by AMD Opterons