J'ai testé une ligne pour sa qualité de lien avec iperf
. La vitesse mesurée (port UDP 9005) était de 96Mbps, ce qui est bien, car les deux serveurs sont connectés à 100Mbps à l'internet. Par contre, le taux de perte de datagrammes était de 3,3 à 3,7%, ce que je trouvais un peu trop. En utilisant un protocole de transfert à grande vitesse, j'ai enregistré les paquets des deux côtés avec tcpdump
. J'ai ensuite calculé la perte de paquets : 0,25 % en moyenne. Quelqu'un a-t-il une explication, d'où peut venir cette grande différence ? Qu'est-ce qu'une perte de paquets acceptable à votre avis ?
Réponses
Trop de publicités?J'ai connu des pertes de données importantes avec iPerf en mode UDP, le processeur n'étant pas capable de suivre. Pour une raison quelconque, iPerf en mode UDP semble être beaucoup plus intensive en CPU que iPerf avec TCP. Constatez-vous les mêmes pourcentages de perte lorsque vous réglez iPerf sur la moitié du débit ?
Pour répondre à votre deuxième question, à savoir quel niveau de perte de paquets est acceptable, cela dépend vraiment de l'application que vous utilisez et du volume de trafic que vous avez. Vraiment, il ne devrait pas y avoir de perte si vous êtes en dessous de votre limite de bande passante. Pour la plupart des choses, je ne me plaindrais probablement pas trop de 0,25 %, mais c'est quand même beaucoup de perte si vous fonctionnez à des taux vraiment élevés.
[EDIT 1] Quelques autres réflexions que j'ai eues sur le sujet :
- Essayez d'incrémenter les taux de iPerf. S'il y a un problème systémique quelque part, il est probable que vous aurez le même pourcentage de perte, quel que soit le taux. Si vous êtes à la limite de votre matériel, ou si votre fournisseur fait une sorte de ROUGE Dans ce cas, il n'y aura probablement aucune perte jusqu'à un certain taux, puis des pertes de plus en plus importantes au fur et à mesure que l'on dépasse ce taux.
- Faites votre mesure tcpdump de la session iPerf, juste pour vérifier que vos tests sont exacts.
- Essayez iPerf avec TCP. Cela ne signalera pas les pertes, mais si vous obtenez des pertes, la connexion ne pourra pas monter très haut en charge. Comme la latence a également une incidence, assurez-vous de tester un point d'extrémité avec une latence aussi faible que possible.
- En fonction de l'équipement dont vous disposez à l'intérieur de votre connexion, assurez-vous d'en être aussi proche que possible. Par exemple, si vous avez plusieurs commutateurs entre votre système de test et le routeur de périphérie, optez pour un commutateur directement connecté.
- Si vous avez un commutateur géré, vérifiez les statistiques de celui-ci pour vous assurer que la perte ne se produit pas à cet endroit. J'ai rencontré des commutateurs moins chers qui commencent à perdre du trafic lorsque vous approchez les 100 Mbps de trafic UDP (il s'agit surtout de vieux commutateurs non gérés).
- Essayez d'effectuer des iPerfs simultanés depuis deux clients différents vers deux hôtes différents, afin d'être sûr que la limite n'est pas due au processeur ou à une carte NIC locale bon marché.
Avec TCP, il y a des mécanismes pour maximiser l'utilisation d'un flux, avec UDP, il n'y en a pas. Chaque application doit donc créer ses propres mécanismes, et chaque application utilise probablement une approche différente pour y parvenir. Probablement, Iperf autorisera plus de paquets perdus parce qu'il essaie d'atteindre la bande passante maximale disponible sans se soucier de savoir si l'information est reçue ou non. L'autre application essaiera probablement de ne pas perdre beaucoup de paquets, et réduira le taux de paquets au débit disponible dans la connexion.