Bonjour a tous,
Je suis en train de travailler sur un projet Gigabit ethernet et, alors que la limite théorique de débit en UDP sur du Gigabit est aux allentour de 114Mo/s, j'ai une frontière bien déterminée à 90Mo/s.
Quelqu'un est il au courrant de cette limitation et sait il comment la contourner ??
Je tourne sur un Athlon 64 2,2Ghz avec 2 Go de Ram, Red Hat Enterprise 4, Noyau 2.6.9-42
Merci !
# Il y a plusieurs limites possible.
Posté par Nicolas Boulay (site web personnel) . Évalué à 5.
Depuis la puissance des PC a été multiplié par 3. Donc la limitation peut venir de la carte réseau elle-même (buffer trop petit pour limiter les couts, etc...), du réglage de la pile ip (genre le MUA ou un truc qui change la taille typique d'un buffer et donc qui permet d'avaler les latences plus facilement), de l'engorgement du bus PCI (souvent la carte mère dispose de plusieurs bus partagé sur les slots, il vaut mieux éviter de mettre la carte à coté du controleur disque dure, ).
Ensuite, il y a le problème du driver de la carte elle même qui peut être plus ou moins bien réussi.
"La première sécurité est la liberté"
[^] # Re: Il y a plusieurs limites possible.
Posté par Guillaume JOLI . Évalué à 1.
La carte réseau est en pci et pas intégré directement à la carte mère, j'utilise le driver basic r8169 du noyau 2.6.9 (qui apparament n'est pas excelent, j'ai parfois des kernel panics !!)
Le probleme, c'est que les dernieres version du drivers ne sont pas compatible avec mon noyau, j'ai essayé en vain de le porter mais visiblement pas mal de fonctions du kernel on changé depuis...
:(
[^] # Re: Il y a plusieurs limites possible.
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
"La première sécurité est la liberté"
# A priori non
Posté par dguihal . Évalué à 3.
Pour envisager une réponse, je dirai que ca peut venir de trois goulets :
ton CPU pas assez puissant (un vmstat devrait te le dire)
Ton bus PCI qui sature : 33 MHz * 4 octets -> 132 Mo/s a partager entre tous tes périphériques PCI, y compris tes disques.
Ta carte réseau qui sature, en effet si c'est une carte intégrée a ta carte mère, la qualité n'est peut-être pas au top.
Un article trouvé ici donne une limite réelle proche de celle que tu trouves 700 Mb/s en UDP soit 87,5 Mo/s:
http://www-sop.inria.fr/mistral/personnel/Christophe.Retiere(...)
[^] # Re: A priori non
Posté par Guillaume JOLI . Évalué à 1.
VMSTAT me retourne:
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 53920 145180 1646204 0 0 4 4 70 13 0 0 100 0
Ma carte reseau n'est pas intégrée à la CM mais bon c'est pas du 3COM non plus, c'est un chip RT8169 qui a mon avis est vraiment sans plus.
En tout cas merci pour le liens qui est interessant ;)
[^] # Re: A priori non
Posté par dguihal . Évalué à 1.
J'aurai du être plus précis, la première ligne retournée par vmstat est toujours fausse, il faut que tu fasses un
vmstat 5 10
pendant que tu balances ta charge réseau pour connaitre ta charge CPU. cette commande demande a vmstat de faire 10 échantillonnages espacés de 5 secondes
les valeurs qui t'intéressent sont :
- us : Temps CPU consommé par les processus en espace utilisateur
- sy : Temps CPU consommé par les processus en espace noyau
- id : Temps CPU passé à ne rien faire
- wa : Temps CPU consommé en attente ( attente d'E/S ty)piquement )
man vmstat pour en savoir plus.
si id s'approche de 0 c'est que ton CPU est à bloc
[^] # Re: A priori non
Posté par Guillaume JOLI . Évalué à 1.
La charge CPU est au max à 45% (ID = 55) et je perds des trames. J'ai augmenté les buffer, mais a ces vitesses, ca devient chaud quand meme...
Je me demande quand meme si ca ne vient pas d'une limitation du bus PCI car je tourne sur un chipset PCI/PCIx de chez ULI qui n'est certaiement pas optimal...
# dumbo
Posté par TazForEver . Évalué à 1.
[^] # Re: dumbo
Posté par Guillaume JOLI . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.