8 votes

Différences de performance du débit tcp de Localhost

J'ai utilisé psping pour mesurer les statistiques de bande passante sur localhost sur différents ordinateurs : ordinateurs portables, ordinateurs domestiques et serveurs . Ils se retrouvent tous entre 100 y 200 MB/s mais mon PowerPc au travail réussit à aller jusqu'à 800 Mo/s .

Qu'est-ce qui peut causer ces énormes différences en communiquant avec lui-même sur localhost ? Le PowerPc surpasse tous les autres appareils que j'ai testés. avec un facteur de 4 à 8 .

Configuration du PowerPc

  • Windows 7
  • Processeur Intel(R) Xeon(R) E3-1240 v3 @ 3.40GHz [Famille 6 Modèle 60 Stepping 3].
  • 3,78 GFLOPS/cœur
  • Symantec SEP

A Configuration de l'ordinateur domestique

  • Windows 8.1
  • Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz [Intel64 Family 6 Model 26 Stepping 5] 4
  • 2,64 GFLOPS/cœur
  • BitDefender

commande psping

psping -4 -b -l 8k -n 20000 localhost:1234

Quelques questions que je m'attends à recevoir et auxquelles j'aimerais répondre dès le départ.

Je suis peut-être loin du compte, mais cela vous montre ma compréhension actuelle des choses, n'hésitez pas à me mettre au courant.

  1. Antivirus
    J'ai désactivé le composant antivirus sur mon ordinateur personnel sans aucune différence notable. De plus, j'ai capturé une trace WPA (XperfScripts) et les modules qui ont le plus d'activité liée au CPU sont ntoskrnl.exe, netio.sys, tcpip.sys, ndis.sys et afd.sys. Le premier module AV qui entre en ligne de compte est avcuf32.dll, qui représente 0,17 % de l'activité totale du processeur.

  2. Localhost contre 127.0.0.1
    J'ai essayé les deux et obtenu les mêmes résultats sur tous les ordinateurs testés.

  3. Des pilotes à jour
    Les pilotes de mon ordinateur personnel sont à jour. Les pilotes du PowerPc sont gérés par notre personnel informatique et sont un peu en retard, mais pas tant que ça. (et le PowerPc est 4x plus rapide sur les tests de toute façon)

  4. netsh int tcp show global
    Il y a quelques différences entre les deux PC. État de déchargement de la cheminée y État de NetDMA sur mon ordinateur personnel sont désactivés alors que sur le PowerPc ils sont automatiques et activés.
    Je ne suis pas assez bon en réseau pour savoir si cela peut expliquer les différences, mais en lisant sur le sujet, je doute que ce soit le cas.


Modifier

Détails de la RAM PowerPC

  capacity speed memorytype totalwidth datawidth typedetail
  -------- ----- ---------- ---------- --------- ----------
4294967296  1600          0         64        64        128
4294967296  1600          0         64        64        128
4294967296  1600          0         64        64        128
4294967296  1600          0         64        64        128

Détails de la RAM Ordinateur domestique

    capacity speed memorytype totalwidth datawidth typedetail
  -------- ----- ---------- ---------- --------- ----------
2147483648  1333          1         72        64          2
4294967296  1333          1         72        64          2
2147483648  1333          1         72        64          2
4294967296  1333          1         72        64          2
2147483648  1333          1         72        64          2
4294967296  1333          1         72        64          2
   4194304    33         11          8         8       4096

7voto

harrymc Points 394411

Je crois que la raison pour laquelle le PowerPC sous Windows 7 est beaucoup plus rapide sur localhost c'est parce qu'il peut utiliser NetDMA.

L'article de Microsoft NetDMA (pilotes Windows) définit NetDMA comme :

L'interface NetDMA fournit une interface générique pour les transferts de mémoire à mémoire (DMA). d'accès direct à la mémoire (DMA). Bien que l'interface soit conçue pour copier les paquets reçus des cartes d'interface réseau (NIC) cartes d'interface réseau (NIC) hautes performances, vous pouvez également utiliser d'autres applications. Il n'y a pas de relation directe entre NetDMA et NDIS.

Quand on utilise le loopback localhost, il est logique que les opérations de copie de mémoire sont le principal facteur de débit, puisque les trames sont copiées depuis la mémoire de l'application source, puis entre les couches TCP et enfin vers la mémoire de l'application cible.

NetDMA peut avoir un impact, puisqu'il permet aux adaptateurs de réseau de transférer des données directement à votre application, réduisant ainsi peut-être le nombre de copies de mémoire même pour la triviale carte de bouclage.

L'activation de NetDMA peut se faire de deux manières :

  1. Entrez netsh int tcp set global netdma=enabled dans l'invite de commande (cmd) qui est exécuté en tant qu'administrateur, puis redémarrez.
  2. Regedit pour HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters et créez un nouvel élément DWORD nommé EnableTCPA avec la valeur 1, puis redémarrez.

Cependant, il y a deux conditions préalables à l'activation de NetDMA :

  1. L'article de Microsoft Activation de NetDMA a ceci :

NetDMA doit être activé dans le BIOS avant d'effectuer cette procédure. La prise en charge de NetDMA est souvent appelée prise en charge IOAT.

  1. L'article de Microsoft NetDMA (pilotes Windows) a cette note :

L'interface NetDMA n'est pas prise en charge par Windows 8 et les versions ultérieures.

Si l'on réunit ces deux conditions, on peut supposer que.., NetDMA est une fonction du BIOS, elle n'a pas été implémentée dans le système. UEFI qui est utilisé dans Windows 8/2012.

Microsoft devait donc améliorer le bouclage localhost d'une autre manière, notamment pour l'utilisation dans Hyper-V, et avait donc créé dans Windows 8/2012 la fonction Boucleur TCP rapide , défini comme suit :

La fonction TCP Loopback Fast Path est une nouvelle fonctionnalité introduite dans Windows Server 2012 et Windows 8. Si vous utilisez l'interface de bouclage TCP pour les communications interprocessus (IPC), vous serez peut-être intéressé par les performance améliorée, la prévisibilité améliorée et la latence réduite que le TCP Loopback Fast Path peut vous apporter. Cette fonctionnalité préserve la sémantique des sockets TCP et les capacités de la plate-forme, y compris la plate-forme de filtrage Windows (WFP). Windows Filtering Platform (WFP), et fonctionne à la fois sur les instances de systèmes d'exploitation virtualisées ou non.

L'interface de bouclage TCP offre un mécanisme IPC local simple pour les processus processus sur la même instance du système d'exploitation, et elle peut facilement être mécanisme IPC distant en changeant simplement l'adresse IP de destination. l'adresse IP de destination.

Malheureusement, le bouclage TCP rapide n'est pas transparent, ce qui oblige les applications à d'émettre un appel système WSAIoctl sur les sockets de l'émetteur et du récepteur, et n'est donc pas rétrocompatible avec les applications existantes de mesure de la bande passante telles que PsPing y PCATTCP .

Dans mes propres tests sur Windows 7, je n'ai pas percé tous les mystères entourant NetDMA, mais j'ai réussi à l'activer brièvement, avec l'avantage immédiat de doubler ma bande passante ma bande passante, mesurée par PsPing. Mais comme NetDMA n'a pas survécu à un redémarrage sur cet ordinateur, je ne recommande pas de dépendre de lui pour le débit, même sur les ordinateurs qui le supportent théoriquement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X