Nous hébergeons une application sur un serveur distant. Nous devons le tester avec une bande passante réseau limitée (pour les utilisateurs avec un mauvais accès Internet).
Puis-je limiter ma bande passante Internet? Par exemple: 128 Ko par seconde.
Cette question se concentre sur les solutions à l'échelle du système ou à l'échelle du conteneur sous Linux. Voir Limitation de l'utilisation de la bande passante Internet d'un shell spécifique pour des solutions spécifiques au processus ou à la session.
Vous pouvez limiter la bande passante réseau sur l'interface à l'aide de la commande appelée tc
Page de manuel disponible sur http://linux.die.net/man/8/tc
Pour un script simple, essayez wondershaper .
Un exemple d'utilisation de tc: tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540
Comme indiqué dans la réponse précédente, Wondershaper fait le travail facilement. J'inclus les informations du lien ci-dessus par Jwalanta Shrestha
apt-get install wondershaper
wondershaper - Un outil simple pour limiter la bande passante d'une interface particulière.
$ Sudo wondershaper {interface} {down} {up}
les {down} et {up} sont la bande passante en kpbs
Ainsi, par exemple, si vous souhaitez limiter la bande passante de l'interface eth1 à 256 kbps en liaison descendante et 128 kbps en liaison montante,
$ Sudo wondershaper eth1 256 128
Pour effacer la limite,
$ Sudo wondershaper clear eth1
La limitation des ressources réseau en fonction de certains critères fait l'objet de QoS . Il existe plusieurs façons de contrôler le trafic des utilisateurs sur les systèmes Linux.
Il y a un bon How-to about techniques avancées de routage et contrôle du trafic sur Linux par Bert Hubert.
Si vous avez déjà une configuration Apache quelque part, vous pouvez utiliser mod_bw
, qui fonctionne également sur les connexions proxy (c'est-à-dire qu'Apache transmet tout simplement au serveur approprié, mais ralentit les réponses.)
Vous pouvez également utiliser le module iptables hashlimit. Voici un exemple simple:
iptables -A FORWARD -m hashlimit --hashlimit-above 512kb/sec --hashlimit-burst 1mb --hashlimit-mode srcip, dstip --hashlimit-name bwlimit -j DROP
Cette règle limite le trafic passant par la chaîne FORWARD à 512 Ko/s avec une salve de 1 Mo pour chaque paire source et destination.
Consultez la section hashlimit du manuel iptables pour plus d'informations.
Dummynet fait ce que vous voulez et plus encore, vous pouvez même contrôler la latence, la perte aléatoire de paquets et bien plus encore.