Le 2 oct. 07 à 00:05, Romain Tournier a écrit :
je connais mal le noyau linux, mais il me semble, que globalement sous
unix... les operations liés au reseau/firewall... ca ne sort pas du
noyau et que celui-ci a tendance a ne tourner que sur un seul
processeur... donc mieux vaut avoir 1 seul cpu mono-core tres puissant
plutot que pleins de core...

Je connais mal le noyau Linux également mais sous FreeBSD, par exemple, ce n'est plus vrai depuis la branche 5. Une très grosse partie du développement depuis 5/6 ans se focalise d'ailleurs sur ce point très précis (google FreeBSD, SMPng, fine-grained locking, etc.). Un exemple qui me revient (plus forcément vrai) c'était d'avoir un thread sur un processeur dédié à servir les interruptions des interfaces réseau tandis que le reste du traitement se passait ailleurs. Par contre, il y a d'autres phénomènes (serialization ?) qui rentrent en jeu, en particulier par rapport à une pile TCP/IP, qui font que la capacité de traitement n'augmente pas linéairement avec le nombre de processeurs. Sur les mailing-lists type freebsd-net ou freebsd-performance, on lit souvent qu'au-delà de deux coeurs pour du forwarding les bénéfices sont minces. Je ne retrouve pas les raisonnements à ce sujet.

Avec les moyens derrière Linux, je serai surpris que la situation soit différente.

ensuite, le bus de la machine (donc entre la/les cartes reseaux, le cpu
et la ram) a tendance a etre LE facteur bloquant dans l'utilisation de
PC pour des fins d'applicatif réseau sur les pc "moderne"

D'où l'attractivité des processeurs AMD avec la technologie HyperTransport (surtout pour faire des DMA), ou encore des bus PCI Express. Si on fait le calcul, c'est intéressant à partir de 1 Gbps de trafic à travers le routeur (33 MHz * 32 bits pour PCI soit ~1 Gbps pour tout le bus).

Pour prendre encore une fois l'exemple de FreeBSD, il y a un très bon article décrivant les différents goulots d'étranglement sur un PC moderne quand on veut "pousser" du paquet à toute vitesse :

http://people.freebsd.org/~andre/Optimizing%20the%20FreeBSD%20IP%20and %20TCP%20Stack.pdf

Conclusion: PCI Express c'est le pied.

pourquoi ne pas utiliser pf sur son os "natif" ?

Parce que ça ne suit pas vraiment en termes de pps et qu'on est loin de FreeBSD ou Linux en termes d'adaptation de la pile TCP/IP à du multi-processeur.

Pour des chiffres, voir : http://www.tancsa.com/blast.html

(potentiellement biaisé, c'est un dev FreeBSD)

Et pour le fait que PF est plus lent qu'IPFW sur FreeBSD, il y a ces chiffres : http://lists.freebsd.org/pipermail/freebsd-ipfw/2007-March/ 002888.html

Mais ça a plus d'un an et je n'en connais pas de plus récents.

Cordialement,

--eberkut
"Don't you know, Kompella, you got to Kompella"


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à