Я использую 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 - это не устранило проблему. Другие идеи?