tc
トラフィック シェーピングにカーネル 2.6.38.8 を使用しています。帯域幅を制限すると機能し、遅延を追加すると機能しますが、両方の帯域幅を遅延でシェーピングすると、制限が 1.5 Mbps を超える場合、達成される帯域幅は常に制限よりもはるかに低くなります。
例:
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 Mbps (iperf から) です。遅延をなくすと、帯域幅は正確に 2 Mbps になります。1 Mbps と 200 ミリ秒の RTT の帯域幅を指定すると、すべてが機能します。同様の結果が得られる ipfw + dummynet も試しました。
Kconfigでカーネルを再構築してみましたがHZ=1000
、問題は解決しませんでした。他のアイデア?