John R Pierce
2013-May-21 04:48 UTC
[CentOS] How to load balance interrupts of a NIC on the PCI-MSI-edge driver in CentOS? :(
On 5/20/2013 9:53 PM, Alex Flex wrote:> a.) Could anyody please help me with a solution so that iam able to > balance equally the interrupts on both cores? > b.) Is there anyway to actually assign more interrupts to this IRQ (25) > or is that something that the kernel discretly takes care of?afaik, IRQs from a single device have to be handled serially, you can't have more than one active IRQ at the same time. so there's really no point in distributing them across multiple CPU cores. let the other cores handle user space and other sorts of IOs. SYN flooding is a pathological condition thats not going to happen under regular workloads, how does your system handle actual network traffic when it approaches network saturation ? -- john r pierce 37N 122W somewhere on the middle of the left coast
Alex Flex
2013-May-21 04:53 UTC
[CentOS] How to load balance interrupts of a NIC on the PCI-MSI-edge driver in CentOS? :(
Hello CentOS !
Iam trying to configure a Dual Core 1.6Ghz AMD E-350 machine to be able
NIC (eth0) interrupts the most efficient way possible so that I can be
able to handle the large number of random source packets per second.
Currently running CentOS 6.4 2.6.32-358.6.2.el6.x86_64, i made some load
testing with a random sourced syn flood to the NIC of this machine and
found out according to top all the CPU interrupts are being sent to
CPU0, thus saturating it and keeping the second core 100% idle because
of this the amount of PPS handled is low (50k /sec). So.. below the
output of /proc/interrupts, and also the output of the SMP affinity file
which already contains "3" which I expect it tells the kernel to load
balance the interrupts between the two cores and its not happening.
Questions:
a.) Could anyody please help me with a solution so that iam able to
balance equally the interrupts on both cores?
b.) Is there anyway to actually assign more interrupts to this IRQ (25)
or is that something that the kernel discretly takes care of?
Thanks
Alex
[root at node2 ~]# cat /proc/irq/25/smp_affinity
3
Btw I also tried setting this value to "2" and "1" to get to
choose
which core it handles, and that did work but again the problem is I can
only use one core at a time and not balance!
[root at node2 ~]# cat /proc/interrupts
CPU0 CPU1
0: 229 9838 IO-APIC-edge timer
1: 0 2 IO-APIC-edge i8042
8: 0 1 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
12: 0 4 IO-APIC-edge i8042
14: 0 0 IO-APIC-edge pata_atiixp
15: 0 0 IO-APIC-edge pata_atiixp
16: 4 650 IO-APIC-fasteoi snd_hda_intel
17: 0 0 IO-APIC-fasteoi ehci_hcd:usb1,
ehci_hcd:usb2,
ehc i_hcd:usb3
18: 0 4 IO-APIC-fasteoi ohci_hcd:usb4,
ohci_hcd:usb5,
ohc i_hcd:usb6,
ohci_hcd:usb7
19: 7 2754 IO-APIC-fasteoi ahci
24: 0 31 PCI-MSI-edge snd_hda_intel
25: 1 876343 PCI-MSI-edge eth0