[ Thursday 11 June 2009, 15h46, Radu-Adrian Feurdean ]
> 
> On Thu, 11 Jun 2009 14:53:26 +0200, "Arthur Fernandez"
> <z...@toile-libre.org> said:
> 
> > tout est dans la gestion des interrupts, il faut aussi utiliser de bons 
> > chipsets, et faire attention aux partages d'IRQ de la carte maman :)
> 
> Presque aussi important que le CPU.
> 
En realite, le CPU (avec la conf qui va bien, c'est a dire I/OAT DMA, 
kernel stateless) est autant utilise que pour le calcul des routes (la 
dessus CONFIG_IP_FIB_TRIE peut aider un peu, la duree de recherche des 
route devient stable) que pour la gestion des paquets, mais relativement 
peu pour autre chose.

D'ou l'interet d'utiliser du matos qui va supporter le RX polling, a la 
place de la gestion par interruption pour les paquets entrants.
On decharge alors le CPU d'une grande partie de la charge 
d'interruption, au prix d'une latence minimum theorique superieure, mais 
pas mesurable en production :)

Pour le nombre de coeurs, effectivement le puissance brute par coeur 
prime, le scheduler etait assez bon pour repartir le temps CPU, mais en 
SMP avoir un IO/APIC qui fonctionne bien a un interet: On peut ainsi le 
laisser repartir de lui meme les interruptions entre les CPU 
(smp_affinity). Autrement, et a defaut de le configurer a la main, un 
seul coeur est utilise pour les interruptions.
On evitera aussi les materiels moisis avec IRQ partagees, histoire de 
gerer la repartition via les IRQ PCI, et pas les IRQ systemes.

PS: Evidemment tout ca c'est pour du Linux 2.6, pour les *BSD il y a 
sans doute des mecanismes equivalents, mais je ne les connais pas.
-- 
Nicolas Trecourt <ntreco...@frontier.fr>
Administrateur systemes et reseaux
IRC:    irc://irc.freenode.net/~fosco
psyc:   psyc://psyc.wirefull.org/~fosco
jabber: xmpp:fo...@xmpp.wirefull.org
PGP Key fingerprint: BB18 54D5 2843 D23C 3069  CCED DEEE F150 B565 2199

Frontier Online - URL: http://www.frontier.fr

Attachment: signature.asc
Description: Digital signature

Répondre à