| 3 | |
| 4 | == GPO Wiki == |
| 5 | - To find ppl: http://groups.geni.net/syseng/wiki/ContactInfo#CurrentGPOpeople |
| 6 | - New Experiment Tutorial Template: http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/Template/ExerciseLayout |
| 7 | - |
| 8 | |
| 9 | == Traffic Control == |
| 10 | - tc qdisc |
| 11 | {{{ |
| 12 | tc qdisc add dev eth2 root handle 1:0 netem delay 100ms loss 5% |
| 13 | tc qdisc add dev eth2 parent 1:0 tbf rate 20mbit buffer 20000 limit 16000 |
| 14 | }}} |
| 15 | It seems that tc qdisc tbf does not work well (in terms of controlling the throughput of TCP flows) on ovs when ovs switch is connected with a controller. [[BR]] |
| 16 | Instead, we use ovs-vsctl: |
| 17 | {{{ |
| 18 | ovs-vsctl set Interface eth2 ingress_policing_rate=1000 |
| 19 | ovs-vsctl set Interface eth2 ingress_policing_burst=100 |
| 20 | }}} |
| 21 | The above sets the ingress rate to be in 900kbps-1100kbps. [[BR]] |
| 22 | To set it back to no rate control, use: |
| 23 | {{{ |
| 24 | ovs-vsctl set Interface eth2 ingress_policing_rate=0 |
| 25 | }}} |
| 26 | |
| 27 | It is a little bit tricky to configure delay/loss on an OpenVZ virtual machine [[BR]] |
| 28 | Step 1: find our qdisc family number by executing "sudo /sbin/tc qdisc", a sample output could be like the following: |
| 29 | {{{ |
| 30 | [shufeng@center ~]$ sudo /sbin/tc qdisc |
| 31 | qdisc htb 270: dev mv6.47 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 |
| 32 | qdisc netem 260: dev mv6.47 parent 270:1 limit 1000 |
| 33 | qdisc htb 150: dev mv6.41 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 |
| 34 | qdisc netem 140: dev mv6.41 parent 150:1 limit 1000 |
| 35 | qdisc htb 190: dev mv6.43 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 |
| 36 | qdisc netem 180: dev mv6.43 parent 190:1 limit 1000 |
| 37 | qdisc htb 230: dev mv6.45 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 |
| 38 | qdisc netem 220: dev mv6.45 parent 230:1 limit 1000 |
| 39 | }}} |
| 40 | Now if the ethernet card you want to change is mv6.43, you can find from following line: |
| 41 | {{{ |
| 42 | qdisc htb 190: dev mv6.43 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 |
| 43 | qdisc netem 180: dev mv6.43 parent 190:1 limit 1000 |
| 44 | }}} |
| 45 | As a result, you change the delay/loss by executing the following: |
| 46 | {{{ |
| 47 | sudo /sbin/tc -s qdisc change dev mv6.43 parent 190:1 handle 180: netem limit 1000 delay 100ms loss 5% |
| 48 | sudo /sbin/tc -s qdisc change dev mv6.43 parent 190:1 handle 180: netem limit 1000 |
| 49 | }}} |