2012/11/28 [WHD-RS] Benjamin SCHILZ <benja...@whd-rs.com>:
> Bonjour à tous,
>
> Je m’interroge sur la distribution des I/O réseaux sur un serveur Linux
> (Debian 6.0.6 ; 2.6.32-5-amd64) :
>
>
> Les I/O sont toutes envoyées sur un cœur. Le truc que j’arrive pas à saisir
> c’est que sur d’autres serveurs avec la même version de noyau, driver réseau
> (e1000e) et le même genre de cartes réseaux (Intel sur CM Supermicro) ce
> n’est pas le cas :
>
> #cat /proc/interrupts
>            CPU0       CPU1       CPU2       CPU3
> 53:    2136695    2136042    2138009    2137537   PCI-MSI-edge      eth0
> 54:   42655676   42656495   42654333   42654706   PCI-MSI-edge      eth1
>

Bonjour,

C'est lié au nombre de coeurs et à l'architecture physique de la carte
mère. J'ai constaté qu'au delà de 4 coeurs, les interruptions sont
wirées sur un coeur et plus distribuées (pour les fans, lire ce qui
concerne l'io-apic dans le noyau).

irqbalance est à oublier, vu qu'il cherche l'économie d'énergie et pas
la performance apparemment. Enfin, il ne fonctionne tout simplement
pas quand on renomme les cartes (si ça ne commence pas par eth il est
perdu). Perso j'ai fait des scripts dans le ifup.d qui redistribue les
IRQs réseau en round-robin sur tous mes coeurs (je les matche avec une
regex).

Il peut y avoir un intérêt à mettre plus de cartes en LACP par
exemple, même si pas beaucoup de débit, pour utiliser tous les coeurs
(je pense à un LB en DSR par exemple); et à des cartes genre intel ou
broadcom qui ont 8 files txrx avec chacune une interruption.

Cordialement,
-- 
Aurélien Guillaume
_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

Répondre à