I am using following TC rules to shape bandwidth and latency between any two containers in a cluster of containers.
tc qdisc add dev eth0 handle 1: root htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate 150Mbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 150Mbit
tc qdisc add dev eth0 parent 1:11 handle 10: netem delay 50ms
I am setting the BW to be around 150 Mbps over here. But I am observing it to be around 130 Mbps
I am using amazon ec2 instances as the host machine. The deviation from the expected to observed is around 10% to 20% (It varies from one instances to the other). Whereas the latency is shaped with more accuracy (less than 2%).
Is there a way to shape the bandwidth more accurately?