I'm trying to set up traffic throttling with wondershaper, using what seems to be a textbook solution --- wondershaper script --- as heartily recommended here and described here.
This does not work at all as expected. No matter what limitation I give it as input, the result is the same: almost blocking downstream HTTP traffic completely, to the point where surfing becomes impossible. This happens on three different Ubuntu 14.04 machines on three different locations/internet setups.
The problem seems to lie with the lines that are responsible for policing download traffic, i.e, running only the following part of the wondershaper script causes the same problem
########## downlink #############
# slow downloads down to somewhat less than the real speed to prevent
# queuing at our ISP. Tune to see how high you can set it.
# ISPs tend to have *huge* queues to make sure big downloads are fast
#
# attach ingress policer:
tc qdisc add dev $IFACE handle ffff: ingress
# filter *everything* to it (0.0.0.0/0), drop everything that's
# coming in too fast:
tc filter add dev $IFACE parent ffff: protocol ip prio 50 u32 match ip src \
0.0.0.0/0 police rate ${DSPEED}kbit burst 10k drop flowid :1
(This snippet seems to have been copied straight from the TC cookbook, so I don't know what could be wrong with it, and nevertheless it is definitely not working.)
I tried messing around with the "burst" value and the "rate" value of the filter, but to no avail. Even when these values are very high (100Mbit), traffic gets prohibitively slow.
Notably, if I only run the upstream traffic shaping part of Wondershaper (removing the above two lines from the script), it works great, and indeed bounds (upstream) traffic as intended.
EDIT: I now installed a Fedora VM, the problem occurs there too, exact same behavior. Either I'm overlooking something terribly simple, or this seemingly folklore technique doesn't work anymore, for some reason.