Existe-t-il une méthode pour simuler une latence élevée?


Réponses:


14

Vous pouvez le faire en utilisant netem. Depuis leur page d'accueil :

Émulation des retards du réseau étendu

Ceci est l'exemple le plus simple, il ajoute juste une quantité fixe de retard à tous les paquets sortant de l'Ethernet local.

# tc qdisc add dev eth0 root netem delay 100ms

Désormais, un simple test ping à héberger sur le réseau local devrait montrer une augmentation de 100 millisecondes. Le retard est limité par la résolution d'horloge du noyau (Hz). Sur la plupart des systèmes 2.4, l'horloge système fonctionne à 100 Hz, ce qui permet des retards par incréments de 10 ms. Sur 2.6, la valeur est un paramètre de configuration de 1000 à 100 Hz.

Les exemples ultérieurs modifient simplement les paramètres sans recharger le qdisc

Les réseaux étendus réels présentent une variabilité, il est donc possible d'ajouter une variation aléatoire.

# tc qdisc change dev eth0 root netem delay 100ms 10ms

Cela entraîne un retard supplémentaire de 100 ± 10 ms. La variation du retard du réseau n'est pas purement aléatoire, donc pour émuler qu'il existe également une valeur de corrélation.

# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%

Cela entraîne un délai supplémentaire de 100 ± 10 ms, l'élément aléatoire suivant dépendant de 25% du dernier. Ce n'est pas une vraie corrélation statistique, mais une approximation.

Distribution différée

En règle générale, le retard dans un réseau n'est pas uniforme. Il est plus courant d'utiliser quelque chose comme une distribution normale pour décrire la variation du retard. La discipline netem peut prendre un tableau pour spécifier une distribution non uniforme.

# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal

Les tables réelles (normal, pareto, paretonormal) sont générées dans le cadre de la compilation iproute2 et placées dans / usr / lib / tc; il est donc possible avec un certain effort de faire votre propre distribution sur la base de données expérimentales.


3
Génial - et tcexiste même sur les systèmes SLES et RHEL actuels.
Nils
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.