Я использую tc
с ядром 2.6.38.8 для трафика формирование. Ограничение пропускной способности работает, добавление задержки работает, но при формировании полосы пропускания с задержкой достигнутая пропускная способность всегда намного ниже предела, если предел >1,5 Мбит/с или около того.
Пример:
tc qdisc del dev usb0 root
tc qdisc add dev usb0 root handle 1: tbf rate 2Mbit burst 100kb latency 300ms
tc qdisc add dev usb0 parent 1:1 handle 10: netem limit 2000 delay 200ms
Выдает задержку (от ping) 201 мс, но пропускную способность всего 1,66 Мбит/с (от iperf). Если убрать задержку, то пропускная способность будет ровно 2 Мбит/с. Если я указываю пропускную способность 1 Мбит/с и RTT 200 мс, все работает. Я также пробовал ipfw + dummynet, что дает аналогичные результаты.
Я пытался использовать пересборку ядра с HZ=1000
в Kconfig — это не решило проблему. Другие идеи?