Question

Pourquoi plusieurs connexions de la même hôte meilleur débit que de multiples connexions à partir de différents hôtes?

Je soupçonne est lié noyau quelque chose (Linux), mais une confirmation aiderait beaucoup.

Plus de détails que j'ai 1 processus de réception, nous allons l'appeler R. Il accepte les connexions entrantes et reçoit des données en utilisant select ().

I ai 3 processus expéditeur S1, S2, S3. Ils se connectent à R et envoient des données à un débit fixe, c.-à-200Mbit par seconde chacun.

Si S1, S2 et S3 sont sur la même machine, pour obtenir de meilleurs résultats que d'avoir chacun d'entre eux sur une autre machine. (R se trouve dans les deux cas sur une autre machine)

Exemple R sur host0, S1, S2, S3 sur host2, R reçoit à 600Mbit / s

R sur host0, S1 sur host1, S2 sur host2, S3 sur host3, R reçoit à 480Mbit / s

Cela semble contre-intuitif pour moi, je pensais le contraire puisque dans le second cas, les expéditeurs ne doivent pas partager la carte réseau et le processeur (pas que le processeur ou la carte réseau attendre à des goulots d'étranglement ...)

[Les hôtes ci-dessus sont des noeuds d'un cluster Linux à l'aide d'un commutateur Gigabit full-duplex dédié. Ils sont en cours d'exécution 2.6.24-24 générique (sous Ubuntu, je suppose)]

Était-ce utile?

La solution

Ceci est probablement parce que quand les expéditeurs sont sur une seule machine, les paquets sortants sont joliment mis en attente et envoyés un à-un-temps (juste en vertu du fait qu'ils vont tous par une carte réseau).

Alors que dans le cas de plusieurs émetteurs-, deux machines seront envoient souvent des paquets en même temps, et il est alors au commutateur de réseau pour les file d'attente. Cela se manifeste à l'envoi TCP comme un temps d'attente nerveux -. Parfois un paquet sera mis directement à travers le récepteur, d'autres fois il faudra attendre un ou deux paquets des autres émetteurs à l'intérieur des files d'attente de commutation

Je pense que la gigue de temps d'attente sur son propre serait suffisant pour frapper beaucoup de votre bande passante - rappelez-vous que pour maintenir 200Mbps avec des fenêtres TCP standard, vous avez besoin d'un minimum aller-retour en temps de 2,6 ms, ce qui est assez serré .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top