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