Created
September 6, 2011 04:37
-
-
Save trongthanh/1196596 to your computer and use it in GitHub Desktop.
Emulate slow Internet connection speed on localhost with netem (Ubuntu)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Refer: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem#Delaying_only_some_traffic | |
#Refer: http://www.bomisofmab.com/blog/?p=100 | |
#Refer: http://drija.com/linux/41983/simulating-a-low-bandwidth-high-latency-network-connection-on-linux/ | |
#Setup the rate control and delay | |
sudo tc qdisc add dev lo root handle 1: htb default 12 | |
sudo tc class add dev lo parent 1:1 classid 1:12 htb rate 56kbps ceil 128kbps | |
sudo tc qdisc add dev lo parent 1:12 netem delay 200ms | |
#Remove the rate control/delay | |
sudo tc qdisc del dev lo root | |
#To see what is configured on an interface, do this | |
sudo tc -s qdisc ls dev lo | |
#Replace lo with eth0/wlan0 to limit speed from wide lan |
I'm getting the following error when running both the above commands
RTNETLINK answers: Operation not permitted
@ismdcf, do sudo
Works great!!Thanks!!!
OMG. I literally forgot I created this gist and missed so many comments here because Gist previously never notify owner. Today is the first time I receive notifications from Gist. Thanks for the comments, folks.
With some usability addition:
#!/bin/bash
# Refer: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem#Delaying_only_some_traffic
# Refer: http://www.bomisofmab.com/blog/?p=100
# Refer: http://drija.com/linux/41983/simulating-a-low-bandwidth-high-latency-network-connection-on-linux/
# Refer: https://gist.github.com/trongthanh/1196596
case "$1" in
start)
# Setup the rate control and delay
sudo tc qdisc add dev lo root handle 1: htb default 12
sudo tc class add dev lo parent 1:1 classid 1:12 htb rate 3000kbps ceil 6000kbps
sudo tc qdisc add dev lo parent 1:12 netem delay 15ms
;;
stop)
# Remove the rate control/delay
sudo tc qdisc del dev lo root
;;
status)
# To see what is configured on an interface, do this
tc -s qdisc ls dev lo
;;
*)
echo "usage: $0 <start|stop|status>"
;;
esac
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank you very much! This was of great help to me!
I used it for emulating slow internet to test how some requests behave in Ionic / AngularJS mobile app.
In my case it was different values: enp3s0 or wlp2s0. You can check you're own possible values using ifconfig if you're on Ubuntu.