[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Balanceo de interrupciones entre procesadores



Un saludo a la lista:

Superviso un par de servidores con debian wheezy que más o menos tienen
la misma configuración y me he encontrado con lo siguiente:

El servidor que es un xeon con dos núcleos balancea bien las
interrupciones. Sin embargo, en el servidor que tiene un i3 con cuatro
núcleos me he encontrado con esto:

#v+
$ cat /proc/interrupts 
          CPU0     CPU1     CPU2     CPU3       
  0:       899        0        0        0   IO-APIC-edge timer
  1:         8        0        0        0   IO-APIC-edge i8042
  7:         0        0        0        0   IO-APIC-edge parport0
  8:         1        0        0        0   IO-APIC-edge rtc0
  9:         0        0        0        0   IO-APIC-fasteoi acpi
 12:       147        0        0        0   IO-APIC-edge i8042
 16:  29599545        0        0        0   IO-APIC-fasteoi ehci_hcd:usb1
 19:   7441332        0        0        0   IO-APIC-fasteoi ata_piix, ata_piix
 23:        28        0        0        0   IO-APIC-fasteoi ehci_hcd:usb2
 43:   7861552        0        0        0   PCI-MSI-edge eth1
 44:   7088536        0        0        0   PCI-MSI-edge eth0
 45:   7061791        0        0        0   PCI-MSI-edge eth2
 46:   5961572        0        0        0   PCI-MSI-edge eth3
 47:       173        0        0        0   PCI-MSI-edge snd_hda_intel
 48:         2        0        0        0   PCI-MSI-edge i915
[...]
#v-

Vamos, que todas las interrupciones las está gestionando un procesador.
He ido a mirar en /proxc/irq/*/smp_affinity, pero está a "f", o sea,
que teóricamente deberían gestionar las interrupciones entre los cuatro:

#v+
# cat /proc/irq/43/smp_affinity
f
#v-

He estado leyendo esto:

http://www.alexonlinux.com/smp-affinity-and-proper-interrupt-handling-in-linux

y me ha parecido entender hacia el final del artículo que algunas
configuraciones del kernel, pueden provocar que al final el primer
procesador sea el que se encargue de todo, como es mi caso. Habla en
particular de que esté activa la opción CONFIG_HOTPLUG_CPU, que en
debian lo está.

¿Sabe alguien algo al respecto? Tiene esto una solución que no sea
asignarle una eth a cada cpu (eso sí he visto que funciona): los accesos
a disco no los voy a poder repartir de ninguna forma.

¿Es casualidad que en el xeon funcionen bien las cosas y en el i3 no? En
principio ambos tienen la misma configuración del kernel.

Un saludo.

-- 
   Los grandes hombres solemos ser modestos.
                  --- Juan de Mairena --


Reply to: