Pourquoi est-ce que je n'obtiens que 300 à 400 Mbit / s sur mon réseau à 1000 Mbit / s?

17

Ma configuration est la suivante:

Ordinateur portable <--> Routeur <--> Bureau

Ils prennent tous en charge Gigabit Ethernet. J'utilise le benchmark 'iperf' TCP / IP sur l'ordinateur portable et le bureau, et je n'ai jamais obtenu plus de 400 Mbit / s de débit brut. L'ordinateur portable est un Intel Core 2 Duo 2 GHz fonctionnant sous Windows XP, le bureau est un Intel Core 2 quad 2,4 GHz exécutant Windows 7. Que puis-je regarder pour maximiser la vitesse du réseau entre eux? Paramètres logiciels? Un moyen de savoir si mon câble n'est pas conforme aux spécifications? Comment savoir si le contrôleur Gigabit Ethernet de l'un des appareils n'est tout simplement pas capable d'atteindre la vitesse maximale?

davr
la source

Réponses:

11

1 Gbit / s est le maximum théorique de cette connexion.

Beaucoup de choses peuvent affecter cela.

Attendez-vous à une baisse des performances de vos cartes réseau intégrées, car ce seront probablement (en fonction des descriptions de périphériques "Ordinateur portable" et "Bureau") des adaptateurs basés sur l'hôte qui s'appuient sur le processeur pour traiter le trafic réseau. Par conséquent, la vitesse sera affectée par le processeur faisant d'autres choses (comme le transfert des données des disques durs vers le sous-système réseau par exemple).

En outre, en fonction de ce qu'est le «routeur», il peut essayer de traiter les données lors de leur passage d'un port LAN à un port LAN, de sorte que ses vitesses de traitement peuvent également affecter les vitesses de transfert de données, quelle que soit la vitesse de ses «ports» sont.

Si j'étais vous, mon prochain test serait de me procurer un câble de raccordement croisé CAT6 `` juste assez long '' et de câbler le portable directement au PC (vous pourrez peut-être vous en sortir avec un câble droit, car de nombreuses cartes réseau prennent en charge automatiquement -croisement ces jours-ci).

De cette façon, vous (au moins) pouvez assez facilement éliminer ou identifier le routeur (et / ou le câblage existant) comme un goulot d'étranglement.

Ƭᴇcʜιᴇ007
la source
Voir en.wikipedia.org/wiki/… pour deux brochages possibles pour faire un câble croisé gigabit.
eleven81
De bonnes informations à coup sûr. Dans ce cas, si l'utilisateur n'est pas habitué à fabriquer un câble et que l'objectif est d'éliminer les ralentissements possibles, il est probablement préférable d'utiliser un câble fabriqué en usine. Rien de bien pire qu'un sertissage lâche. ;)
Ƭᴇcʜιᴇ007
14
Juste pour info, avec Gigabit Ethernet, les câbles croisés ne sont plus nécessaires. Tous les contrôleurs Gigabit Ethernet doivent être capables de détecter automatiquement le câble, vous pouvez donc utiliser un câble standard pour vous connecter ensemble à des périphériques Ethernet Gigabit. Je vais essayer de connecter mon ordinateur portable directement au bureau et voir s'il y a une différence.
davr
@davr pourriez-vous avoir du succès?
ebrahim.mr
8

iperf utilise une taille de fenêtre assez petite par défaut.

Augmentez la fenêtre ou exécutez-la en mode UDP et elle saturera facilement une connexion à 1 Gbit / s.

user23307
la source
Je n'y ai pas pensé, je vais essayer.
davr
1
Vous ne le saturerez pas avec du matériel de qualité grand public. Le CPU est généralement limité par le bus PCI ou PCI-Express. c'est-à-dire que le processeur ne peut pas déplacer les données de la RAM vers la carte réseau assez rapidement. Le matériel de qualité serveur semble faire mieux. Je sais, je suis programmeur et j'ai essayé de faire exactement cela. Se rapprocher mais maintenant limité par mon propre matériel.
Matt H
1
travaillé pour moi, me cognais la tête pendant une heure en essayant de comprendre pourquoi Windows iperf me donne 250 Mbits / sec et Ubuntu démarré sur la même machine me donne 925 Mbits / sec. s'avère iperf sur windows par défaut à 8k tcp window size et à 88k window size on linux.
Omry
@Omry, iperf sur windows est un chien sous plusieurs angles. J'ai surtout abandonné et ne lance que iperf sous linux
Mike Pennington
4

Jeff Atwood a une bonne analyse de la raison pour laquelle le débit réel d'un réseau Gigabit est plus proche, dans ses calculs, de 30 Mo / s. (grand 'B', pas petit 'b')

... vous ne devriez certainement pas vous attendre à la mise à l'échelle parfaite que nous avons obtenue en passant de 10baseT à 100baseT. Sans aucun ajustement majeur, vous n'obtiendrez qu'une fraction de l'amélioration de la bande passante décuplée que vous pourriez attendre

JMD
la source
Cet outil "pcattcp" qu'il utilise est un morceau de merde. Mon netbook linux 900 MHz (qui est probablement aussi rapide que sa machine l'était en 2005) fait 300 Mo / s en boucle.
user23307
Oui, iperf offre des performances notablement meilleures en boucle que pcattcp. Je m'en tiendrai à iperf pour les tests pour l'instant, sauf si j'entends parler d'autre chose qui est mieux.
davr
1
De plus, je dépasse déjà ses 240 Mo, et cet article a 5 ans, donc ce n'est plus aussi pertinent, je pense, vu que la technologie aurait dû considérablement progresser depuis lors.
davr
Eh bien, étant donné que l'interface de bouclage est virtuelle (rien n'est même transféré sur la carte réseau), vous vous attendez à de bien meilleures performances (fondamentalement, c'est un processus à traiter et aucun disque dur n'est touché). J'obtiens 8,09 Gbits / s (1035 Mo / s) via l'interface de bouclage.
Matt H
3

Si tout est gigabit, vous pouvez essayer d' activer les trames jumbo . Un de mes amis l'a fait avec son ordinateur personnel et a remarqué une énorme augmentation du débit. Cependant, il existe certains inconvénients pour les applications à faible latence comme VOIP, comme mentionné dans l'article.

Rob
la source
L'augmentation ne devrait pas être dramatique pour la plupart des applications. Tout cela signifiera moins de surcharge de protocole TCP ou UDP par paquet. De plus, pour de meilleurs résultats, vos commutateurs / routeurs doivent également prendre en charge les trames jumbo. Je doute de sa volonté.
Matt H
Pour tout résultat, vos commutateurs doivent prendre en charge les trames jumbo. Il n'y a aucun moyen pour un périphérique uniquement L2 de renvoyer une erreur ICMP `` Paquet trop gros '' pour indiquer à votre machine qu'il doit utiliser une taille de paquet plus petite.
cpt_fink
1

Avez-vous dit que vous utilisez un routeur? est-ce un routeur de qualité grand public (pas de commutateur)?

Je dirais que c'est probablement votre goulot d'étranglement. Pour le vérifier, branchez l'ordinateur portable directement sur le bureau. Configurez votre ordinateur portable et votre ordinateur de bureau pour utiliser une adresse IP statique comme 192.168.1.10 (ordinateur portable), 192.168.1.11 (ordinateur de bureau).

Cela devrait permettre à l'ordinateur portable de parler directement au bureau. Exécutez iperf entre eux et rapportez le résultat ici.

Cela devrait fonctionner car la plupart des cartes réseau modernes peuvent détecter automatiquement les fils de transmission / réception contrairement à l'ancien temps où vous deviez construire un câble croisé.

Si vous voyez une augmentation marquée, votre routeur est le coupable. Certains d'entre eux ont des commutateurs à l'arrière, d'autres peuvent réellement router entre les ports. Beaucoup de ces routeurs sont de terribles interprètes. Si vous trouvez que c'est le problème, si j'étais vous, je mettrais à niveau le routeur (ce qui est probablement très bien pour une utilisation Internet) ou vous achèteriez un commutateur GigE et le mettriez en cascade sur le commutateur du routeur. Branchez votre ordinateur portable et votre bureau sur le commutateur. De cette façon, ils contourneront le routeur pour se parler.

Assurez-vous de changer votre ordinateur portable et de bureau en DHCP lorsque vous avez terminé l'expérience.

Pour vous donner une idée, vous devriez obtenir je pense que 650Mbit / s et plus. iperf n'utilise le disque dur que si vous le lui dites. Il s'agit donc de mémoire à mémoire ou de tester réellement le réseau.

L'un des autres goulots d'étranglement est en fait la vitesse à laquelle votre CPU peut transférer des données de la mémoire vers la carte réseau. Les réseaux qui sont sur PCI express semblent mieux fonctionner. Je pense que les ordinateurs portables sont généralement construits à peu de frais ces jours-ci, donc si vous ne voyez pas beaucoup plus que cela, cela pourrait être l'autre goulot d'étranglement.

De plus, les commutateurs grand public ne peuvent souvent faire face qu'à la commutation de 1 Go entre deux ports, tandis que les commutateurs gérés haut de gamme peuvent commuter à la vitesse du fil sur tous les ports simultanément. C'est en partie la raison pour laquelle ils coûtent tellement plus cher.

Matt H
la source
1

Nous avons effectué de nombreux tests et cela se résumait au système d'exploitation.

Si nous passons d'Ubuntu 11.04 à Ubuntu 11.04 (comme avec les machines CentOS pour Linux), le débit est ~ 938-941 MBits / s constant. Si nous passons de Windows 7 x64 SP1 Ultimate à Ubuntu 11.04, cela varie de ~ 440 à 475 Mbits / s. Si nous passons de Windows 2008 R2SP1 x64 à Ubuntu 11.04, la vitesse mesure ~ 435-635 MBits / s.

Comme vous pouvez le voir, les machines basées sur Linux utilisent pleinement les liaisons Gigabit par rapport à Windows. Nous étudions actuellement les paramètres de Windows qui entraîneraient le même débit que Linux sur le même matériel. Les limitations du disque dur ne sont pas un facteur car cela est en mémoire. Pour mémoire, les machines que nous avons utilisées avaient des disques à 7200 tr / min avec SATA 3.0. Ubuntu 11.04 (ou base Linux) et Windows ont tous deux dépassé la vitesse théorique de ces liaisons SATA.

Accends
la source
Merci pour l'info, veuillez mettre à jour votre réponse si vous trouvez des paramètres qui affectent la vitesse sur Windows
davr
cela me fait me demander si iperf n'est pas la seule partie de Windows qui utilise par défaut une taille de paquet plus petite que Linux, voir superuser.com/a/95587/16966
matt wilkie
0

Les vitesses de transfert ne sont aussi bonnes que le maillon le plus faible de la chaîne. Ce n'est peut-être pas la vitesse du réseau mais la vitesse d'écriture / lecture de vos disques durs.

Vous pouvez télécharger le logiciel RamDisk et créer un RamDisk sur les deux ordinateurs. Placez-y un fichier de taille décente et effectuez un transfert sur le réseau entre les RamDisks. Cela devrait vous montrer la vitesse réelle de votre réseau qui ne sera pas gênée par les vitesses de votre disque dur.

Marcin
la source
2
C'est pourquoi j'ai mentionné «iperf», mais je suppose que ce n'est pas si courant qu'un outil. Fondamentalement, il teste directement la vitesse du réseau, sans lire / écrire sur le disque dur, ce n'est donc pas là le goulot d'étranglement. Je me rends bien compte que le disque dur peut être un goulot d'étranglement dans l'utilisation du monde réel.
davr
0

Pas une réponse directe à votre question mais récemment nous avons obtenu le résultat suivant avec iperfentre deux boîtiers Linux (8 cœurs, 2,66 GHz chacun):

------------------------------------------------------------
Client connecting to 192.168.74.15, TCP port 5001
TCP window size:  192 KByte (default)
------------------------------------------------------------
[  3] local 192.168.74.25 port 54016 connected with 192.168.74.15 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec

avec MTU = 1500 (c'est-à-dire sans utiliser de trames jumbo). Cela devrait vous donner une idée des performances possibles en principe.

Les cartes réseau (sortie lspci) sont:

82571EB Gigabit Ethernet Controller

sur les deux côtés.

Vous voudrez peut-être vérifier la charge du processeur sur le serveur et en particulier sur le côté client et voir si elle est proche de 100%. Même si je dois dire que sur notre système, le cœur le plus occupé est à 80% (83%) inactif du côté du récepteur (émetteur) tandis que les 7 autres semblent être 100% inactifs (vérifié avec mpstat).

Cela fonctionne iperfsans l' -uoption, c'est-à-dire qu'il utilise TCP.

Andre Holzner
la source
Je pense que vous devriez obtenir> 500 ou 600 mbits / s sur du matériel de bureau âgé de 1 à 2 ans.
Matt H
-4

davr, Contrairement au Fibre Channel et aux technologies similaires qui utilisent des schémas sophistiqués d'allocation de bande passante, Ethernet est un protocole d'écoute et de squawk. Ethernet écoute d'abord si quelqu'un transmet actuellement, sinon attendez sinon envoyez. Le problème est que si deux ou plusieurs correspondants souhaitant émettre écoutent en même temps, ils enverront également en même temps! Cela entraînera des collisions et des retransmissions. Les commutateurs sophistiqués éliminent beaucoup de cela, mais pas tous.

Avec Ethernet, vous devez vous attendre à voir environ 30 à 40 pour cent de bande passante (on dirait que vous obtenez ceci ... Je peux me tromper sur le # exact, cela dépend beaucoup de la qualité du commutateur et etc.) avant que de nombreuses collisions commencent à se produire, avec la technologie Fabric. quelque chose comme 80%. Ethernet est bon marché, la fibre optique ne l'est pas. . . Je ne sais pas ce que fait l'Ethernet 4G pour contourner ce problème. . . il pourrait avoir une «structure» de réseau plus semblable à celle du Fibre Channel et des amis. Il s'agit d'une simplification excessive, mais elle est essentiellement correcte.

TheEruditeTroglodyte
la source
2
Ouais, je n'utilise pas de hub «stupide». Je pense que la plupart des gens de nos jours utiliseront des commutateurs ou des routeurs intelligents qui gèrent les périphériques de connexion directement entre eux, éliminant les collisions. De plus, mon test implique seulement deux appareils connectés à un seul routeur, donc les collisions ne seraient pas un problème dans mon cas particulier.
davr
davr - excuse pendant que je joue l'avocat des diables pendant un moment. . . Qu'est-ce qui empêche vos deux hôtes d'essayer de parler en même temps? De plus, vous n'avez pas mentionné le type de données transmises. . . est-ce presque exclusivement TCP ou y a-t-il beaucoup de streaming de données (audio, vidéo, etc.)? Les deux ordinateurs diffusent-ils des données simultanément ou existe-t-il une relation client / serveur plus précise?
TheEruditeTroglodyte
2
J'utilise un programme d'analyse comparative TCP / IP spécial où un seul ordinateur envoie et l'autre écoute. Mais même ainsi, Ethernet est en duplex intégral ... si vous n'avez que deux machines, elles peuvent à la fois s'envoyer et recevoir une bande passante complète en même temps.
davr